head	1.13;
access;
symbols
	pkgsrc-2026Q3:1.11.0.2
	pkgsrc-2026Q3-base:1.11
	pkgsrc-2026Q2:1.10.0.6
	pkgsrc-2026Q2-base:1.10
	pkgsrc-2026Q1:1.10.0.4
	pkgsrc-2026Q1-base:1.10
	pkgsrc-2025Q4:1.10.0.2
	pkgsrc-2025Q4-base:1.10
	pkgsrc-2025Q3:1.9.0.2
	pkgsrc-2025Q3-base:1.9
	pkgsrc-2025Q2:1.8.0.2
	pkgsrc-2025Q2-base:1.8
	pkgsrc-2025Q1:1.7.0.4
	pkgsrc-2025Q1-base:1.7
	pkgsrc-2024Q4:1.7.0.2
	pkgsrc-2024Q4-base:1.7
	pkgsrc-2024Q3:1.6.0.4
	pkgsrc-2024Q3-base:1.6
	pkgsrc-2024Q2:1.6.0.2
	pkgsrc-2024Q2-base:1.6
	pkgsrc-2024Q1:1.5.0.16
	pkgsrc-2024Q1-base:1.5
	pkgsrc-2023Q4:1.5.0.14
	pkgsrc-2023Q4-base:1.5
	pkgsrc-2023Q3:1.5.0.12
	pkgsrc-2023Q3-base:1.5
	pkgsrc-2023Q2:1.5.0.10
	pkgsrc-2023Q2-base:1.5
	pkgsrc-2023Q1:1.5.0.8
	pkgsrc-2023Q1-base:1.5
	pkgsrc-2022Q4:1.5.0.6
	pkgsrc-2022Q4-base:1.5
	pkgsrc-2022Q3:1.5.0.4
	pkgsrc-2022Q3-base:1.5
	pkgsrc-2022Q2:1.5.0.2
	pkgsrc-2022Q2-base:1.5
	pkgsrc-2022Q1:1.4.0.2
	pkgsrc-2022Q1-base:1.4
	pkgsrc-2021Q4:1.2.0.2
	pkgsrc-2021Q4-base:1.2
	pkgsrc-2021Q3:1.1.0.32
	pkgsrc-2021Q3-base:1.1
	pkgsrc-2021Q2:1.1.0.30
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.28
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.26
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.24
	pkgsrc-2020Q3-base:1.1
	pkgsrc-2020Q2:1.1.0.22
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.18
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.20
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.16
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.14
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.12
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.10
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.8
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.6
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.4
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.2
	pkgsrc-2017Q4-base:1.1;
locks; strict;
comment	@# @;


1.13
date	2026.11.10.09.23.50;	author adam;	state Exp;
branches;
next	1.12;
commitid	vsS1vLTb6VvNAT2H;

1.12
date	2026.10.16.19.44.19;	author adam;	state Exp;
branches;
next	1.11;
commitid	z8jatkdHAjoiPJZG;

1.11
date	2026.06.28.15.41.42;	author wiz;	state Exp;
branches;
next	1.10;
commitid	hjtQh9zHnnKc1ALG;

1.10
date	2025.10.09.07.58.02;	author wiz;	state Exp;
branches;
next	1.9;
commitid	t4nMY0Dt3rBjSRdG;

1.9
date	2025.07.05.11.44.17;	author wiz;	state Exp;
branches;
next	1.8;
commitid	B2KLCDAZOmgedy1G;

1.8
date	2025.04.14.12.50.20;	author adam;	state Exp;
branches;
next	1.7;
commitid	8TsTIciFx6sDd1RF;

1.7
date	2024.11.11.07.29.07;	author wiz;	state Exp;
branches;
next	1.6;
commitid	1fBDq3LwS98NncxF;

1.6
date	2024.06.13.05.15.58;	author adam;	state Exp;
branches;
next	1.5;
commitid	ffxaO74SFWEovMdF;

1.5
date	2022.04.29.23.17.52;	author wiz;	state Exp;
branches;
next	1.4;
commitid	ZIiQ2a0okB6br9CD;

1.4
date	2022.01.05.15.41.26;	author wiz;	state Exp;
branches;
next	1.3;
commitid	FQ77UruBIUsgzsnD;

1.3
date	2022.01.04.20.55.04;	author wiz;	state Exp;
branches;
next	1.2;
commitid	CYyhdK9qtoffkmnD;

1.2
date	2021.11.01.21.05.56;	author wiz;	state Exp;
branches;
next	1.1;
commitid	VL8VYnuZmgxDs8fD;

1.1
date	2017.09.29.21.20.16;	author joerg;	state Exp;
branches;
next	;
commitid	V50D4VRDlmgXy89A;


desc
@@


1.13
log
@py-ramlfications: updated to 0.3.0

0.3.0 (2026-10-25)

Added:

- RAML 1.0 support, dispatched automatically from the ``#%RAML`` header
  at the existing ``parse()``/``load()``/``validate()`` entry points:

    * data types with inheritance, facets, and type expressions
      (named types, arrays ``T[]``, unions ``A | B``)
    * ``annotationTypes`` declarations and annotations applied on
      resources and methods
    * ``uses`` libraries with dotted ``LibName.member`` references,
      including libraries used by other libraries
    * typed fragments (DataType, Trait, ResourceType, Library,
      SecurityScheme, DocumentationItem), parsed standalone or included
    * Overlay and Extension documents with RAML 1.0 merge semantics;
      overlays may not change behavioral aspects of their target
    * security scheme updates (RAML 1.0 OAuth 2.0 grants and ``null``
      ``securedBy`` for optional security)
    * the RAML 1.0 parameter functions ``!uppercase``, ``!lowercase``,
      ``!lowercamelcase``, ``!uppercamelcase``, ``!lowerunderscorecase``,
      ``!upperunderscorecase``, ``!lowerhyphencase`` and
      ``!upperhyphencase`` (``<<name | !uppercase>>``); RAML 0.8
      documents keep only ``!singularize`` and ``!pluralize``

- Version-routed validation: RAML 1.0-only constructs are rejected in
  0.8 documents and vice versa, and RAML 1.0 rules (unresolvable type
  references, annotation value conformance) report located errors that
  are collected rather than failing at the first one.

Changed:

- Python 3.10+ is now the minimum supported version; Python 2 era
  compatibility shims have been removed.
- Dependencies modernized (PyYAML 6.x, current attrs).
- A RAML 0.8 resource assigned a resource type with ``type:`` now gets
  that type's required (non-``?``) methods, including those of the
  type's own ``type:``, as resource nodes. A resource that only declared
  ``type:`` used to produce a single node with ``method=None``; it now
  produces one node per inherited method, so ``len(api.resources)``
  grows for such APIs. Methods the resource declares itself keep their
  order and come first.
- Validation follows the RAML specification where it was stricter:
  RAML 1.0 documents without ``baseUri`` validate (the spec makes it
  OPTIONAL); RAML 0.8 documents without ``baseUri`` validate when the
  config sets ``production = False`` (a missing ``production`` still
  requires it); APIs without resources validate; ``baseUriParameters``
  accept any named-parameter type, not only ``string``.
- A placeholder name must match the parameter exactly: ``<<item-x>>``
  is no longer treated as the parameter ``item``.

Fixed:

- RAML 0.8 resource type/trait inheritance edge cases, including
  optional (``?``) properties.
- ``!include`` resolution (nested includes, relative paths, and
  missing-file errors).
- ``<<resourcePathName>>`` is the rightmost path segment for nested
  resources (``widget`` for ``/root/widget``, previously ``root/widget``)
  and is now also substituted when ``type:`` is a plain name.
- Resource type and trait parameters (e.g. ``<<resourceType>>``) are
  substituted in inherited scalar values such as ``description``.
- Inheriting a scalar value through a resource type that has its own
  ``type:`` no longer raises ``TypeError``, and cyclic ``type:`` chains
  no longer raise ``RecursionError``.
- ``ramlfications tree -vv``/``-vvv`` lists form parameters declared
  under a form ``body`` (``ResourceNode.form_params`` is unchanged).
- A resource declared with no value (``/empty:``) parses as a resource
  without properties instead of raising ``AttributeError``.
- RAML 1.0 ``<<resourcePathName>>`` skips path segments that contain a
  URI parameter (``users`` for ``/users/{id}``), as the RAML 1.0 spec
  defines; RAML 0.8 keeps the rightmost segment (``{id}``).
- Parameters a resource type passes to its own ``type:`` (e.g.
  ``type: {base: {thing: <<item>>}}``) are substituted in what it
  inherits from that type.
- A ``documentation`` value that is not a list, and unknown facets in a
  RAML 1.0 type declaration, raise ``InvalidRAMLStructureError`` instead
  of ``AssertionError`` / ``TypeError``.
- ``absolute_uri`` is a string (the resource path) when the API has no
  ``baseUri``; it used to be a one-element list.
- URI/base URI parameter handling (implicit template parameters and
  explicit overrides).
- Passing a config file without a ``[main] validate`` option to
  ``parse()`` or ``ramlfications tree -c`` no longer turns validation
  off; such files now validate, as documented.  To turn validation off,
  set ``validate = False`` (the older spelling ``validation`` is still
  accepted when ``validate`` is not set).
- ``ramlfications tree -V``/``--validate`` now validates the file even
  when the config file turns validation off; the flag used to be
  ignored.
- Placeholders next to each other are substituted independently:
  ``<<thing>>-<<resourcePathName>>`` gives ``gizmo-widgets`` instead of
  losing everything after ``gizmo``.
- ``!singularize`` and ``!pluralize`` leave a value that already has the
  requested form unchanged (``/user`` with ``!singularize`` used to give
  ``False``, and ``/users`` with ``!pluralize`` gave ``user``).
- An unknown parameter function, or a RAML 1.0 function in a RAML 0.8
  document, raises ``InvalidRAMLStructureError`` naming the function
  instead of ``AttributeError``/``TypeError``.
- A parameter function applied to a number or boolean value (for example
  ``thing: 5`` with ``<<thing | !uppercase>>``) transforms its text form
  instead of raising ``AttributeError``/``TypeError``.
@
text
@# $NetBSD: Makefile,v 1.12 2026/10/16 19:44:19 adam Exp $

DISTNAME=	ramlfications-0.3.0
PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
CATEGORIES=	textproc python
MASTER_SITES=	${MASTER_SITE_PYPI:=r/ramlfications/}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://ramlfications.readthedocs.io/
COMMENT=	Python RAML parser
LICENSE=	apache-2.0

TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
DEPENDS+=	${PYPKGPREFIX}-attrs>=0:../../devel/py-attrs
DEPENDS+=	${PYPKGPREFIX}-click>=0:../../devel/py-click
DEPENDS+=	${PYPKGPREFIX}-inflect>=0:../../lang/py-inflect
DEPENDS+=	${PYPKGPREFIX}-jsonref>=0:../../textproc/py-jsonref
DEPENDS+=	${PYPKGPREFIX}-markdown2>=0:../../textproc/py-markdown2
DEPENDS+=	${PYPKGPREFIX}-termcolor>=0:../../devel/py-termcolor
DEPENDS+=	${PYPKGPREFIX}-xmltodict>=0:../../textproc/py-xmltodict
DEPENDS+=	${PYPKGPREFIX}-yaml>=0:../../textproc/py-yaml
TEST_DEPENDS+=	${PYPKGPREFIX}-mock>=0:../../devel/py-mock
TEST_DEPENDS+=	${PYPKGPREFIX}-test-mock>=0:../../devel/py-test-mock
TEST_DEPENDS+=	${PYPKGPREFIX}-test-localserver>=0:../../devel/py-test-localserver

USE_LANGUAGES=	# none

PY_RENAME_BINARIES=	ramlfications

PYTHON_VERSIONS_INCOMPATIBLE=	311

.include "../../lang/python/wheel.mk"
.include "../../mk/bsd.pkg.mk"
@


1.12
log
@Forget Python 3.10
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2026/06/28 15:41:42 wiz Exp $
d3 1
a3 1
DISTNAME=	ramlfications-0.2.2
a4 1
PKGREVISION=	1
d14 11
a24 12
DEPENDS+=	${PYPKGPREFIX}-attrs-[0-9]*:../../devel/py-attrs
DEPENDS+=	${PYPKGPREFIX}-click-[0-9]*:../../devel/py-click
DEPENDS+=	${PYPKGPREFIX}-inflect-[0-9]*:../../lang/py-inflect
DEPENDS+=	${PYPKGPREFIX}-jsonref-[0-9]*:../../textproc/py-jsonref
DEPENDS+=	${PYPKGPREFIX}-markdown2-[0-9]*:../../textproc/py-markdown2
DEPENDS+=	${PYPKGPREFIX}-six-[0-9]*:../../lang/py-six
DEPENDS+=	${PYPKGPREFIX}-termcolor-[0-9]*:../../devel/py-termcolor
DEPENDS+=	${PYPKGPREFIX}-xmltodict-[0-9]*:../../textproc/py-xmltodict
DEPENDS+=	${PYPKGPREFIX}-yaml-[0-9]*:../../textproc/py-yaml
TEST_DEPENDS+=	${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock
TEST_DEPENDS+=	${PYPKGPREFIX}-test-mock-[0-9]*:../../devel/py-test-mock
TEST_DEPENDS+=	${PYPKGPREFIX}-test-localserver-[0-9]*:../../devel/py-test-localserver
d28 2
a31 4
post-install:
	cd ${DESTDIR}${PREFIX}/bin && \
	${MV} ramlfications ramlfications-${PYVERSSUFFIX} || ${TRUE}

@


1.11
log
@*: limit Python versions due to py-numpy dropping Python 3.11 support
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2025/10/09 07:58:02 wiz Exp $
d30 1
a30 1
PYTHON_VERSIONS_INCOMPATIBLE=	310 311
@


1.10
log
@*: remove reference to (removed) Python 3.9
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2025/07/05 11:44:17 wiz Exp $
d30 1
a30 1
PYTHON_VERSIONS_INCOMPATIBLE=	310
@


1.9
log
@*: some more recursive Python restrictions on Python 3.11+

Reported in SmartOS bulk build
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2025/04/14 12:50:20 adam Exp $
d30 1
a30 1
PYTHON_VERSIONS_INCOMPATIBLE=	39 310
@


1.8
log
@Fix PLIST after py-setuptools update; bump depends and revision
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2024/11/11 07:29:07 wiz Exp $
d30 2
@


1.7
log
@py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2024/06/13 05:15:58 adam Exp $
d5 1
d14 1
a14 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
a29 2
PYTHON_VERSIONS_INCOMPATIBLE=	27

@


1.6
log
@py-ramlfications: updated to 0.2.2

Release v0.2.2
adding a new version of yml to publish package and updating the spec…

Release v0.2.1
fixing details unsolved from last merging

Release v0.2.0
Fix for populating parameters in resources
Initial "draft" of OOP parsing
Initial models organization
ramlfications.models.data_types: add missing import
Convert readthedocs links for their .org -> .io migration for hosted projects
Upgrade tox to fix py35
support 1.0 securitySchemes as a map
Data type support
Add raml org data testing
Address issue with self.node artifacts ...
Drop support for 2.6 and 3.3; add support for 3.6; clean up travis.yml
test requires fix
data type examples
allow types to be defined by bare type expressions
Merging the updates from past dev branch with new small changes that allow us to work properly with most recent dependencies
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2022/04/29 23:17:52 wiz Exp $
a13 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
@


1.5
log
@*: mark dependencies of py-test-localserver as not-for-python-2.x
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2022/01/05 15:41:26 wiz Exp $
d3 1
a3 1
DISTNAME=	ramlfications-0.1.9
a4 1
PKGREVISION=	2
d9 1
a9 1
HOMEPAGE=	https://ramlfications.readthedocs.org/
d13 16
a28 6
TEST_DEPENDS+=		${PYPKGPREFIX}-attrs-[0-9]*:../../devel/py-attrs
TEST_DEPENDS+=		${PYPKGPREFIX}-jsonref-[0-9]*:../../textproc/py-jsonref
TEST_DEPENDS+=		${PYPKGPREFIX}-markdown-[0-9]*:../../textproc/py-markdown
TEST_DEPENDS+=		${PYPKGPREFIX}-termcolor-[0-9]*:../../devel/py-termcolor
TEST_DEPENDS+=		${PYPKGPREFIX}-test-localserver-[0-9]*:../../devel/py-test-localserver
TEST_DEPENDS+=		${PYPKGPREFIX}-xmltodict-[0-9]*:../../textproc/py-xmltodict
d32 3
a34 1
USE_PKG_RESOURCES=	yes
d36 1
a36 1
.include "../../lang/python/egg.mk"
@


1.4
log
@python: egg.mk: add USE_PKG_RESOURCES flag

This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.

Set this flag for packages that need it and bump PKGREVISION.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2022/01/04 20:55:04 wiz Exp $
d15 2
a18 1
TEST_DEPENDS+=		${PYPKGPREFIX}-jsonref-[0-9]*:../../textproc/py-jsonref
d21 1
a21 1
PYTHON_VERSIONED_DEPENDENCIES+=	markdown:test
a25 1
.include "../../lang/python/versioned_dependencies.mk"
@


1.3
log
@*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2021/11/01 21:05:56 wiz Exp $
d5 1
a5 1
PKGREVISION=	1
d22 2
@


1.2
log
@*: convert py-markdown users to versioned_dependencies.mk
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2017/09/29 21:20:16 joerg Exp $
d5 1
@


1.1
log
@Add py-ramlfications-0.1.9:

ramlfications is an Apache 2.0-licensed reference implementation of a
RESTful API Modeling Language (RAML) parser in Python intended to be used
for parsing API definitions (e.g. for static documentation-generation).
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2017/09/06 15:24:33 adam Exp $
d13 7
a19 7
# Test dependencies
BUILD_DEPENDS+=		${PYPKGPREFIX}-attrs-[0-9]*:../../devel/py-attrs
BUILD_DEPENDS+=		${PYPKGPREFIX}-termcolor-[0-9]*:../../devel/py-termcolor
BUILD_DEPENDS+=		${PYPKGPREFIX}-test-localserver-[0-9]*:../../devel/py-test-localserver
BUILD_DEPENDS+=		${PYPKGPREFIX}-jsonref-[0-9]*:../../textproc/py-jsonref
BUILD_DEPENDS+=		${PYPKGPREFIX}-markdown2-[0-9]*:../../textproc/py-markdown2
BUILD_DEPENDS+=		${PYPKGPREFIX}-xmltodict-[0-9]*:../../textproc/py-xmltodict
d22 1
@

