head	1.4;
access;
symbols
	pkgsrc-2026Q3:1.3.0.12
	pkgsrc-2026Q3-base:1.3
	pkgsrc-2026Q2:1.3.0.10
	pkgsrc-2026Q2-base:1.3
	pkgsrc-2026Q1:1.3.0.8
	pkgsrc-2026Q1-base:1.3
	pkgsrc-2025Q4:1.3.0.6
	pkgsrc-2025Q4-base:1.3
	pkgsrc-2025Q3:1.3.0.4
	pkgsrc-2025Q3-base:1.3
	pkgsrc-2025Q2:1.3.0.2
	pkgsrc-2025Q2-base:1.3
	pkgsrc-2025Q1:1.2.0.8
	pkgsrc-2025Q1-base:1.2
	pkgsrc-2024Q4:1.2.0.6
	pkgsrc-2024Q4-base:1.2
	pkgsrc-2024Q3:1.2.0.4
	pkgsrc-2024Q3-base:1.2
	pkgsrc-2024Q2:1.2.0.2
	pkgsrc-2024Q2-base:1.2
	pkgsrc-2024Q1:1.1.0.52
	pkgsrc-2024Q1-base:1.1
	pkgsrc-2023Q4:1.1.0.50
	pkgsrc-2023Q4-base:1.1
	pkgsrc-2023Q3:1.1.0.48
	pkgsrc-2023Q3-base:1.1
	pkgsrc-2023Q2:1.1.0.46
	pkgsrc-2023Q2-base:1.1
	pkgsrc-2023Q1:1.1.0.44
	pkgsrc-2023Q1-base:1.1
	pkgsrc-2022Q4:1.1.0.42
	pkgsrc-2022Q4-base:1.1
	pkgsrc-2022Q3:1.1.0.40
	pkgsrc-2022Q3-base:1.1
	pkgsrc-2022Q2:1.1.0.38
	pkgsrc-2022Q2-base:1.1
	pkgsrc-2022Q1:1.1.0.36
	pkgsrc-2022Q1-base:1.1
	pkgsrc-2021Q4:1.1.0.34
	pkgsrc-2021Q4-base:1.1
	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.4
date	2026.11.10.09.23.50;	author adam;	state Exp;
branches;
next	1.3;
commitid	vsS1vLTb6VvNAT2H;

1.3
date	2025.04.14.12.50.20;	author adam;	state Exp;
branches;
next	1.2;
commitid	8TsTIciFx6sDd1RF;

1.2
date	2024.06.13.05.15.58;	author adam;	state Exp;
branches;
next	1.1;
commitid	ffxaO74SFWEovMdF;

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


desc
@@


1.4
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
@@@comment $NetBSD: PLIST,v 1.3 2025/04/14 12:50:20 adam Exp $
bin/ramlfications-${PYVERSSUFFIX}
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
${PYSITELIB}/ramlfications/__init__.py
${PYSITELIB}/ramlfications/__init__.pyc
${PYSITELIB}/ramlfications/__init__.pyo
${PYSITELIB}/ramlfications/__main__.py
${PYSITELIB}/ramlfications/__main__.pyc
${PYSITELIB}/ramlfications/__main__.pyo
${PYSITELIB}/ramlfications/config.py
${PYSITELIB}/ramlfications/config.pyc
${PYSITELIB}/ramlfications/config.pyo
${PYSITELIB}/ramlfications/data/supported_mime_types.json
${PYSITELIB}/ramlfications/errors.py
${PYSITELIB}/ramlfications/errors.pyc
${PYSITELIB}/ramlfications/errors.pyo
${PYSITELIB}/ramlfications/loader.py
${PYSITELIB}/ramlfications/loader.pyc
${PYSITELIB}/ramlfications/loader.pyo
${PYSITELIB}/ramlfications/models/__init__.py
${PYSITELIB}/ramlfications/models/__init__.pyc
${PYSITELIB}/ramlfications/models/__init__.pyo
${PYSITELIB}/ramlfications/models/annotations.py
${PYSITELIB}/ramlfications/models/annotations.pyc
${PYSITELIB}/ramlfications/models/annotations.pyo
${PYSITELIB}/ramlfications/models/base.py
${PYSITELIB}/ramlfications/models/base.pyc
${PYSITELIB}/ramlfications/models/base.pyo
${PYSITELIB}/ramlfications/models/data_types.py
${PYSITELIB}/ramlfications/models/data_types.pyc
${PYSITELIB}/ramlfications/models/data_types.pyo
${PYSITELIB}/ramlfications/models/examples.py
${PYSITELIB}/ramlfications/models/examples.pyc
${PYSITELIB}/ramlfications/models/examples.pyo
${PYSITELIB}/ramlfications/models/extensions.py
${PYSITELIB}/ramlfications/models/extensions.pyc
${PYSITELIB}/ramlfications/models/extensions.pyo
${PYSITELIB}/ramlfications/models/libraries.py
${PYSITELIB}/ramlfications/models/libraries.pyc
${PYSITELIB}/ramlfications/models/libraries.pyo
${PYSITELIB}/ramlfications/models/parameters.py
${PYSITELIB}/ramlfications/models/parameters.pyc
${PYSITELIB}/ramlfications/models/parameters.pyo
${PYSITELIB}/ramlfications/models/raml.py
${PYSITELIB}/ramlfications/models/raml.pyc
${PYSITELIB}/ramlfications/models/raml.pyo
${PYSITELIB}/ramlfications/models/resource_types.py
${PYSITELIB}/ramlfications/models/resource_types.pyc
${PYSITELIB}/ramlfications/models/resource_types.pyo
${PYSITELIB}/ramlfications/models/resources.py
${PYSITELIB}/ramlfications/models/resources.pyc
${PYSITELIB}/ramlfications/models/resources.pyo
${PYSITELIB}/ramlfications/models/root.py
${PYSITELIB}/ramlfications/models/root.pyc
${PYSITELIB}/ramlfications/models/root.pyo
${PYSITELIB}/ramlfications/models/schemas.py
${PYSITELIB}/ramlfications/models/schemas.pyc
${PYSITELIB}/ramlfications/models/schemas.pyo
${PYSITELIB}/ramlfications/models/security.py
${PYSITELIB}/ramlfications/models/security.pyc
${PYSITELIB}/ramlfications/models/security.pyo
${PYSITELIB}/ramlfications/models/traits.py
${PYSITELIB}/ramlfications/models/traits.pyc
${PYSITELIB}/ramlfications/models/traits.pyo
${PYSITELIB}/ramlfications/parser/__init__.py
${PYSITELIB}/ramlfications/parser/__init__.pyc
${PYSITELIB}/ramlfications/parser/__init__.pyo
${PYSITELIB}/ramlfications/parser/base.py
${PYSITELIB}/ramlfications/parser/base.pyc
${PYSITELIB}/ramlfications/parser/base.pyo
${PYSITELIB}/ramlfications/parser/fragments.py
${PYSITELIB}/ramlfications/parser/fragments.pyc
${PYSITELIB}/ramlfications/parser/fragments.pyo
${PYSITELIB}/ramlfications/parser/mixins.py
${PYSITELIB}/ramlfications/parser/mixins.pyc
${PYSITELIB}/ramlfications/parser/mixins.pyo
${PYSITELIB}/ramlfications/parser/parameters.py
${PYSITELIB}/ramlfications/parser/parameters.pyc
${PYSITELIB}/ramlfications/parser/parameters.pyo
${PYSITELIB}/ramlfications/parser/parser.py
${PYSITELIB}/ramlfications/parser/parser.pyc
${PYSITELIB}/ramlfications/parser/parser.pyo
${PYSITELIB}/ramlfications/parser/types.py
${PYSITELIB}/ramlfications/parser/types.pyc
${PYSITELIB}/ramlfications/parser/types.pyo
${PYSITELIB}/ramlfications/tree.py
${PYSITELIB}/ramlfications/tree.pyc
${PYSITELIB}/ramlfications/tree.pyo
${PYSITELIB}/ramlfications/utils/__init__.py
${PYSITELIB}/ramlfications/utils/__init__.pyc
${PYSITELIB}/ramlfications/utils/__init__.pyo
${PYSITELIB}/ramlfications/utils/annotations.py
${PYSITELIB}/ramlfications/utils/annotations.pyc
${PYSITELIB}/ramlfications/utils/annotations.pyo
${PYSITELIB}/ramlfications/utils/common.py
${PYSITELIB}/ramlfications/utils/common.pyc
${PYSITELIB}/ramlfications/utils/common.pyo
${PYSITELIB}/ramlfications/utils/examples.py
${PYSITELIB}/ramlfications/utils/examples.pyc
${PYSITELIB}/ramlfications/utils/examples.pyo
${PYSITELIB}/ramlfications/utils/libraries.py
${PYSITELIB}/ramlfications/utils/libraries.pyc
${PYSITELIB}/ramlfications/utils/libraries.pyo
${PYSITELIB}/ramlfications/utils/nodelist.py
${PYSITELIB}/ramlfications/utils/nodelist.pyc
${PYSITELIB}/ramlfications/utils/nodelist.pyo
${PYSITELIB}/ramlfications/utils/overlays.py
${PYSITELIB}/ramlfications/utils/overlays.pyc
${PYSITELIB}/ramlfications/utils/overlays.pyo
${PYSITELIB}/ramlfications/utils/parameter.py
${PYSITELIB}/ramlfications/utils/parameter.pyc
${PYSITELIB}/ramlfications/utils/parameter.pyo
${PYSITELIB}/ramlfications/utils/parser.py
${PYSITELIB}/ramlfications/utils/parser.pyc
${PYSITELIB}/ramlfications/utils/parser.pyo
${PYSITELIB}/ramlfications/utils/tags.py
${PYSITELIB}/ramlfications/utils/tags.pyc
${PYSITELIB}/ramlfications/utils/tags.pyo
${PYSITELIB}/ramlfications/utils/types.py
${PYSITELIB}/ramlfications/utils/types.pyc
${PYSITELIB}/ramlfications/utils/types.pyo
${PYSITELIB}/ramlfications/validate/__init__.py
${PYSITELIB}/ramlfications/validate/__init__.pyc
${PYSITELIB}/ramlfications/validate/__init__.pyo
${PYSITELIB}/ramlfications/validate/data_types.py
${PYSITELIB}/ramlfications/validate/data_types.pyc
${PYSITELIB}/ramlfications/validate/data_types.pyo
${PYSITELIB}/ramlfications/validate/decorators.py
${PYSITELIB}/ramlfications/validate/decorators.pyc
${PYSITELIB}/ramlfications/validate/decorators.pyo
${PYSITELIB}/ramlfications/validate/nodes.py
${PYSITELIB}/ramlfications/validate/nodes.pyc
${PYSITELIB}/ramlfications/validate/nodes.pyo
${PYSITELIB}/ramlfications/validate/parameters.py
${PYSITELIB}/ramlfications/validate/parameters.pyc
${PYSITELIB}/ramlfications/validate/parameters.pyo
${PYSITELIB}/ramlfications/validate/raml10.py
${PYSITELIB}/ramlfications/validate/raml10.pyc
${PYSITELIB}/ramlfications/validate/raml10.pyo
${PYSITELIB}/ramlfications/validate/root.py
${PYSITELIB}/ramlfications/validate/root.pyc
${PYSITELIB}/ramlfications/validate/root.pyo
${PYSITELIB}/ramlfications/validate/utils.py
${PYSITELIB}/ramlfications/validate/utils.pyc
${PYSITELIB}/ramlfications/validate/utils.pyo
@


1.3
log
@Fix PLIST after py-setuptools update; bump depends and revision
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.2 2024/06/13 05:15:58 adam Exp $
a6 1
${PYSITELIB}/${WHEEL_INFODIR}/licenses/AUTHORS.rst
a14 3
${PYSITELIB}/ramlfications/_helpers.py
${PYSITELIB}/ramlfications/_helpers.pyc
${PYSITELIB}/ramlfications/_helpers.pyo
a69 3
${PYSITELIB}/ramlfications/parser.py
${PYSITELIB}/ramlfications/parser.pyc
${PYSITELIB}/ramlfications/parser.pyo
d76 3
a93 3
${PYSITELIB}/ramlfications/utils.py
${PYSITELIB}/ramlfications/utils.pyc
${PYSITELIB}/ramlfications/utils.pyo
d97 3
d106 3
d112 3
d142 3
@


1.2
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
@@comment $NetBSD: PLIST,v 1.1 2017/09/29 21:20:16 joerg Exp $
a2 2
${PYSITELIB}/${WHEEL_INFODIR}/AUTHORS.rst
${PYSITELIB}/${WHEEL_INFODIR}/LICENSE
d7 2
@


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 9
a9 8
@@comment $NetBSD$
bin/ramlfications
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
${PYSITELIB}/${EGG_INFODIR}/requires.txt
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
a15 3
${PYSITELIB}/ramlfications/_decorators.py
${PYSITELIB}/ramlfications/_decorators.pyc
${PYSITELIB}/ramlfications/_decorators.pyo
d29 45
a73 3
${PYSITELIB}/ramlfications/parameters.py
${PYSITELIB}/ramlfications/parameters.pyc
${PYSITELIB}/ramlfications/parameters.pyo
d77 18
a94 6
${PYSITELIB}/ramlfications/parser_utils.py
${PYSITELIB}/ramlfications/parser_utils.pyc
${PYSITELIB}/ramlfications/parser_utils.pyo
${PYSITELIB}/ramlfications/raml.py
${PYSITELIB}/ramlfications/raml.pyc
${PYSITELIB}/ramlfications/raml.pyo
d101 45
a145 3
${PYSITELIB}/ramlfications/validate.py
${PYSITELIB}/ramlfications/validate.pyc
${PYSITELIB}/ramlfications/validate.pyo
@

