ramlfications: RAML reference implementation in Python
======================================================
.. image:: https://img.shields.io/pypi/v/ramlfications.svg?style=flat-square
:target: https://pypi.python.org/pypi/ramlfications/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/status/ramlfications.svg?style=flat-square
:target: https://pypi.python.org/pypi/ramlfications/
:alt: Development Status
.. image:: https://img.shields.io/pypi/l/ramlfications.svg?style=flat-square
:target: https://github.com/spotify/ramlfications/blob/master/LICENSE
:alt: License
.. image:: https://codecov.io/github/spotify/ramlfications/coverage.svg?branch=master
:target: https://codecov.io/github/spotify/ramlfications?branch=master
:alt: Current coverage
.. image:: https://img.shields.io/pypi/pyversions/ramlfications.svg?style=flat-square
:target: https://pypi.python.org/pypi/ramlfications/
:alt: Supported Python versions
.. begin
Note: this project has been discontinued at Spotify and will be transferred to a new maintainer, we are currently finishing the transfer of this repository and the associated pypi package.
Requirements and Installation
=============================
User Setup
----------
The latest stable version can be found on PyPI_, and you can install via pip_::
$ pip install ramlfications
``ramlfications`` runs on Python 3.10+, and PyPy. Linux , OS X and Windows are supported. Currently, only RAML 0.8 is supported, but there are plans_ to support 1.0.
Continue onto `usage`_ to get started on using ``ramlfications``.
Developer Setup
---------------
If you'd like to contribute or develop upon ``ramlfications``, be sure to read `How to Contribute`_
first.
You can see the progress of ``ramlfications`` on our public `project management`_ page.
System requirements:
^^^^^^^^^^^^^^^^^^^^
- C Compiler (gcc/clang/etc.)
- If on Linux - you'll need to install Python headers (e.g. ``apt-get install python-dev``)
- Python 3.10+, or PyPy
- virtualenv_
Here's how to set your machine up::
$ git clone git@github.com:jdiegodcp/ramlfications
$ cd ramlfications
$ virtualenv env
$ source env/bin/activate
(env) $ pip install -r dev-requirements.txt
Run Tests
^^^^^^^^^
If you'd like to run tests for all supported Python versions, you must have all Python versions
installed on your system. I suggest pyenv_ to help with that.
To run all tests::
(env) $ tox
To run a specific test setup (options include: ``py310``, ``py311``, ``py312``, ``pypy``,
``flake8``, ``verbose``, ``manifest``, ``docs``, ``setup``, ``setupcov``)::
(env) $ tox -e py310
To run tests without tox::
(env) $ py.test
(env) $ py.test --cov ramlfications --cov-report term-missing
Build Docs
^^^^^^^^^^
Documentation is build with Sphinx_, written in rST, uses the `Read the Docs`_ theme with
a slightly customized CSS, and is hosted on `Read the Docs site`_.
To rebuild docs locally, within the parent ``ramlfications`` directory::
(env) $ tox -e docs
or::
(env) $ sphinx-build -b docs/ docs/_build
Then within ``ramlfications/docs/_build`` you can open the index.html page in your browser.
Project History
^^^^^^^^^^^^^^^
Ramlfications was originally created by Spotify engineer github.com/econchick, but is currently not in use at Spotify. The project was discontinued
in April 2022 and transferred to an external maintainer.
Still have issues?
^^^^^^^^^^^^^^^^^^
Feel free to drop by ``#ramlfications`` on Freenode (`webchat`_) or ping via `Twitter[X]`_.
"jdiegodcp" is the maintainer, a.k.a `jdiegodcp`_ on GitHub.
.. _pip: https://pip.pypa.io/en/latest/installing.html#install-pip
.. _PyPI: https://pypi.python.org/project/ramlfications/
.. _virtualenv: https://virtualenv.pypa.io/en/latest/
.. _pyenv: https://github.com/yyuu/pyenv
.. _Sphinx: http://sphinx-doc.org/
.. _`Read the Docs`: https://github.com/snide/sphinx_rtd_theme
.. _`Read the Docs site`: https://ramlfications.readthedocs.io
.. _`usage`: https://ramlfications.readthedocs.io/en/latest/usage.html
.. _`How to Contribute`: https://ramlfications.readthedocs.io/en/latest/contributing.html
.. _`webchat`: http://webchat.freenode.net?channels=%23ramlfications&uio=ND10cnVlJjk9dHJ1ZQb4
.. _`jdiegodcp`: https://github.com/jdiegodcp
.. _`Twitter[X]`: https://twitter.com/jdiegodcp
.. _`project management`: https://github.com/jdiegodcp/ramlfications/projects/1
.. _plans: https://github.com/spotify/ramlfications/issues/54
Changelog
=========
0.1.9 (2015-12-24)
------------------
Happy holidays!
- Fix resource type inheritance (`Issue 23`_ & `Issue 47`_)
- Preserve order of ``baseUriParameters`` and ``uriParameters`` in API root and resource nodes (`Issue 37`_)
- Fix missing URI parameters if not defined/declared inline (`Issue 56`_)
- Fix how arguments are passed into pytest in ``setup.py`` (`PR 55`_ - thank you `matiasb`_!)
0.1.8 (2015-10-07)
------------------
- Fix incorrect/incomplete behavior optional properties of Resource Types (`Issue 44`_).
- Fix ``protocols`` inheritance (`Issue 44`_).
- Partial fix for `Issue 23`_ - incorrect resource type inheritance
* When a resource type is defined with one method that is optional and is applied to a resource that does *not* have that method defined, the resource’s method should not inherit from the optional method
* When a resource inherits a resource type but explicitly defines named parameters, the named parameters in the resource should overwrite those that are inherited
0.1.7 (2015-08-20)
------------------
Added:
- Support for parsing ``$ref`` s in included JSON schemas (`Issue 4`_). Thank you `benhamill`_, `nvillalva`_, and `jhl2343`_!
- Collect all validation errors (rather than just erroring out on the first one) (`Issue 21`_). Thank you `cerivera`_!
0.1.6 (2015-08-03)
------------------
Added:
- `waffle.io`_ page to documentation for project management overview
Fixed:
- Parse errors when RAML file would have empty mappings (`Issue 30`_)
- Switch ``yaml.Loader`` to ``yaml.SafeLoader`` (`Issue 26`_)
- Update documentation to reflect rearrangement of errors (`Issue 27`_)
- Remove ``default`` parameter from being required for ``baseURIParameters`` (`Issue 29`_)
- Pin mock library for tox tests (`Issue 22`_)
- Experimenting with speeding up pypy tests within tox on Travis
0.1.5 (2015-06-05)
------------------
Fixed:
- Configuration parsing for validation/production. Thanks `vrajmohan`_!
- Parsing of response bodies (fixes `Issue 12`_). Thanks `Igor`_!
0.1.4 (2015-05-27)
------------------
Added:
- Support for recursive ``!includes`` in RAML files (0.1.3 would handle the error, now actually supports it. Thanks `Ben`_ for your `PR`_!).
0.1.3 (2015-05-14)
------------------
Added:
- New ``#ramlfications`` channel on `freenode`_ (web chat link)! Come chat, I'm lonely.
- Documentation for configuration and the ``update`` command.
Fixed:
- Handle recursive/cyclical ``!includes`` in RAML files for now (`PR`_)
- Encoding issues from upgrading to tox 2.0
- ``tests/test_utils.py`` would create ``ramlfications/data/supported_mime_types.json``; now mocked out.
0.1.2 (2015-04-21)
------------------
Fixed:
- pypy 2.5.x would fail a parser test because order of list was not expected
0.1.1 (2015-04-21)
------------------
New:
- Added ability to parse IANA-supported MIME media types
- Added ``update`` command for user to update IANA-supported MIME types if/when needed
0.1.0a1 (2015-04-18)
--------------------
Initial alpha release of ``ramlfications``\!
.. _`PR`: https://github.com/spotify/ramlfications/pull/8
.. _`freenode`: http://webchat.freenode.net?channels=%23ramlfications&uio=ND10cnVlJjk9dHJ1ZQb4
.. _`Ben`: https://github.com/benhamill
.. _`vrajmohan`: https://github.com/spotify/ramlfications/pull/16
.. _`Issue 12`: https://github.com/spotify/ramlfications/issues/12
.. _`Igor`: https://github.com/spotify/ramlfications/pull/13
.. _`Issue 30`: https://github.com/spotify/ramlfications/issues/30
.. _`Issue 26`: https://github.com/spotify/ramlfications/issues/26
.. _`Issue 27`: https://github.com/spotify/ramlfications/issues/27
.. _`Issue 29`: https://github.com/spotify/ramlfications/issues/29
.. _`Issue 22`: https://github.com/spotify/ramlfications/issues/22
.. _`waffle.io`: https://waffle.io/spotify/ramlfications
.. _`Issue 4`: https://github.com/spotify/ramlfications/issues/4
.. _`benhamill`: https://github.com/benhamill
.. _`nvillalva`: https://github.com/nvillalva
.. _`jhl2343`: https://github.com/jhl2343
.. _`Issue 21`: https://github.com/spotify/ramlfications/issues/21
.. _`cerivera`: https://github.com/cerivera
.. _`Issue 44`: https://github.com/spotify/ramlfications/issues/44
.. _`Issue 23`: https://github.com/spotify/ramlfications/issues/23
.. _`matiasb`: https://github.com/matiasb
.. _`PR 55`: https://github.com/spotify/ramlfications/pull/55
.. _`Issue 47`: https://github.com/spotify/ramlfications/issues/47
.. _`Issue 37`: https://github.com/spotify/ramlfications/issues/37
.. _`Issue 56`: https://github.com/spotify/ramlfications/issues/56
Raw data
{
"_id": null,
"home_page": "https://ramlfications.readthedocs.io",
"name": "ramlfications",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "raml,rest",
"author": "Lynn Root",
"author_email": "lynn@spotify.com",
"download_url": "https://files.pythonhosted.org/packages/c0/c2/a81405ecdc6c28dbd36a6268134f5fa8282969a25cec139e560f2d4ca107/ramlfications-0.2.2.tar.gz",
"platform": null,
"description": "ramlfications: RAML reference implementation in Python\n======================================================\n\n.. image:: https://img.shields.io/pypi/v/ramlfications.svg?style=flat-square\n :target: https://pypi.python.org/pypi/ramlfications/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/status/ramlfications.svg?style=flat-square\n :target: https://pypi.python.org/pypi/ramlfications/\n :alt: Development Status\n\n.. image:: https://img.shields.io/pypi/l/ramlfications.svg?style=flat-square\n :target: https://github.com/spotify/ramlfications/blob/master/LICENSE\n :alt: License\n\n.. image:: https://codecov.io/github/spotify/ramlfications/coverage.svg?branch=master\n :target: https://codecov.io/github/spotify/ramlfications?branch=master\n :alt: Current coverage\n\n.. image:: https://img.shields.io/pypi/pyversions/ramlfications.svg?style=flat-square\n :target: https://pypi.python.org/pypi/ramlfications/\n :alt: Supported Python versions\n\n\n.. begin\n\nNote: this project has been discontinued at Spotify and will be transferred to a new maintainer, we are currently finishing the transfer of this repository and the associated pypi package. \n\n\nRequirements and Installation\n=============================\n\nUser Setup\n----------\n\nThe latest stable version can be found on PyPI_, and you can install via pip_::\n\n $ pip install ramlfications\n\n``ramlfications`` runs on Python 3.10+, and PyPy. Linux , OS X and Windows are supported. Currently, only RAML 0.8 is supported, but there are plans_ to support 1.0.\n\nContinue onto `usage`_ to get started on using ``ramlfications``.\n\n\nDeveloper Setup\n---------------\n\nIf you'd like to contribute or develop upon ``ramlfications``, be sure to read `How to Contribute`_\nfirst.\n\nYou can see the progress of ``ramlfications`` on our public `project management`_ page.\n\nSystem requirements:\n^^^^^^^^^^^^^^^^^^^^\n\n- C Compiler (gcc/clang/etc.)\n- If on Linux - you'll need to install Python headers (e.g. ``apt-get install python-dev``)\n- Python 3.10+, or PyPy\n- virtualenv_\n\nHere's how to set your machine up::\n\n $ git clone git@github.com:jdiegodcp/ramlfications\n $ cd ramlfications\n $ virtualenv env\n $ source env/bin/activate\n (env) $ pip install -r dev-requirements.txt\n\n\nRun Tests\n^^^^^^^^^\n\nIf you'd like to run tests for all supported Python versions, you must have all Python versions\ninstalled on your system. I suggest pyenv_ to help with that.\n\nTo run all tests::\n\n (env) $ tox\n\nTo run a specific test setup (options include: ``py310``, ``py311``, ``py312``, ``pypy``,\n``flake8``, ``verbose``, ``manifest``, ``docs``, ``setup``, ``setupcov``)::\n\n (env) $ tox -e py310\n\nTo run tests without tox::\n\n (env) $ py.test\n (env) $ py.test --cov ramlfications --cov-report term-missing\n\n\nBuild Docs\n^^^^^^^^^^\n\nDocumentation is build with Sphinx_, written in rST, uses the `Read the Docs`_ theme with\na slightly customized CSS, and is hosted on `Read the Docs site`_.\n\nTo rebuild docs locally, within the parent ``ramlfications`` directory::\n\n (env) $ tox -e docs\n\nor::\n\n (env) $ sphinx-build -b docs/ docs/_build\n\nThen within ``ramlfications/docs/_build`` you can open the index.html page in your browser.\n\n\nProject History\n^^^^^^^^^^^^^^^\n\nRamlfications was originally created by Spotify engineer github.com/econchick, but is currently not in use at Spotify. The project was discontinued \nin April 2022 and transferred to an external maintainer. \n\n\nStill have issues?\n^^^^^^^^^^^^^^^^^^\n\nFeel free to drop by ``#ramlfications`` on Freenode (`webchat`_) or ping via `Twitter[X]`_.\n\"jdiegodcp\" is the maintainer, a.k.a `jdiegodcp`_ on GitHub.\n\n\n.. _pip: https://pip.pypa.io/en/latest/installing.html#install-pip\n.. _PyPI: https://pypi.python.org/project/ramlfications/\n.. _virtualenv: https://virtualenv.pypa.io/en/latest/\n.. _pyenv: https://github.com/yyuu/pyenv\n.. _Sphinx: http://sphinx-doc.org/\n.. _`Read the Docs`: https://github.com/snide/sphinx_rtd_theme\n.. _`Read the Docs site`: https://ramlfications.readthedocs.io\n.. _`usage`: https://ramlfications.readthedocs.io/en/latest/usage.html\n.. _`How to Contribute`: https://ramlfications.readthedocs.io/en/latest/contributing.html\n.. _`webchat`: http://webchat.freenode.net?channels=%23ramlfications&uio=ND10cnVlJjk9dHJ1ZQb4\n.. _`jdiegodcp`: https://github.com/jdiegodcp\n.. _`Twitter[X]`: https://twitter.com/jdiegodcp\n.. _`project management`: https://github.com/jdiegodcp/ramlfications/projects/1\n.. _plans: https://github.com/spotify/ramlfications/issues/54\n\nChangelog\n=========\n\n0.1.9 (2015-12-24)\n------------------\n\nHappy holidays!\n\n- Fix resource type inheritance (`Issue 23`_ & `Issue 47`_)\n- Preserve order of ``baseUriParameters`` and ``uriParameters`` in API root and resource nodes (`Issue 37`_)\n- Fix missing URI parameters if not defined/declared inline (`Issue 56`_)\n- Fix how arguments are passed into pytest in ``setup.py`` (`PR 55`_ - thank you `matiasb`_!)\n\n\n0.1.8 (2015-10-07)\n------------------\n\n- Fix incorrect/incomplete behavior optional properties of Resource Types (`Issue 44`_).\n- Fix ``protocols`` inheritance (`Issue 44`_).\n- Partial fix for `Issue 23`_ - incorrect resource type inheritance\n\n * When a resource type is defined with one method that is optional and is applied to a resource that does *not* have that method defined, the resource\u2019s method should not inherit from the optional method\n * When a resource inherits a resource type but explicitly defines named parameters, the named parameters in the resource should overwrite those that are inherited\n\n0.1.7 (2015-08-20)\n------------------\n\nAdded:\n\n- Support for parsing ``$ref`` s in included JSON schemas (`Issue 4`_). Thank you `benhamill`_, `nvillalva`_, and `jhl2343`_!\n- Collect all validation errors (rather than just erroring out on the first one) (`Issue 21`_). Thank you `cerivera`_!\n\n\n0.1.6 (2015-08-03)\n------------------\n\nAdded:\n\n- `waffle.io`_ page to documentation for project management overview\n\nFixed:\n\n- Parse errors when RAML file would have empty mappings (`Issue 30`_)\n- Switch ``yaml.Loader`` to ``yaml.SafeLoader`` (`Issue 26`_)\n- Update documentation to reflect rearrangement of errors (`Issue 27`_)\n- Remove ``default`` parameter from being required for ``baseURIParameters`` (`Issue 29`_)\n- Pin mock library for tox tests (`Issue 22`_)\n- Experimenting with speeding up pypy tests within tox on Travis\n\n0.1.5 (2015-06-05)\n------------------\n\nFixed:\n\n- Configuration parsing for validation/production. Thanks `vrajmohan`_!\n- Parsing of response bodies (fixes `Issue 12`_). Thanks `Igor`_!\n\n0.1.4 (2015-05-27)\n------------------\n\nAdded:\n\n- Support for recursive ``!includes`` in RAML files (0.1.3 would handle the error, now actually supports it. Thanks `Ben`_ for your `PR`_!).\n\n0.1.3 (2015-05-14)\n------------------\n\nAdded:\n\n- New ``#ramlfications`` channel on `freenode`_ (web chat link)! Come chat, I'm lonely.\n- Documentation for configuration and the ``update`` command.\n\nFixed:\n\n- Handle recursive/cyclical ``!includes`` in RAML files for now (`PR`_)\n- Encoding issues from upgrading to tox 2.0\n- ``tests/test_utils.py`` would create ``ramlfications/data/supported_mime_types.json``; now mocked out.\n\n0.1.2 (2015-04-21)\n------------------\n\nFixed:\n\n- pypy 2.5.x would fail a parser test because order of list was not expected\n\n0.1.1 (2015-04-21)\n------------------\n\nNew:\n\n- Added ability to parse IANA-supported MIME media types\n- Added ``update`` command for user to update IANA-supported MIME types if/when needed\n\n0.1.0a1 (2015-04-18)\n--------------------\nInitial alpha release of ``ramlfications``\\!\n\n\n.. _`PR`: https://github.com/spotify/ramlfications/pull/8\n.. _`freenode`: http://webchat.freenode.net?channels=%23ramlfications&uio=ND10cnVlJjk9dHJ1ZQb4\n.. _`Ben`: https://github.com/benhamill\n.. _`vrajmohan`: https://github.com/spotify/ramlfications/pull/16\n.. _`Issue 12`: https://github.com/spotify/ramlfications/issues/12\n.. _`Igor`: https://github.com/spotify/ramlfications/pull/13\n.. _`Issue 30`: https://github.com/spotify/ramlfications/issues/30\n.. _`Issue 26`: https://github.com/spotify/ramlfications/issues/26\n.. _`Issue 27`: https://github.com/spotify/ramlfications/issues/27\n.. _`Issue 29`: https://github.com/spotify/ramlfications/issues/29\n.. _`Issue 22`: https://github.com/spotify/ramlfications/issues/22\n.. _`waffle.io`: https://waffle.io/spotify/ramlfications\n.. _`Issue 4`: https://github.com/spotify/ramlfications/issues/4\n.. _`benhamill`: https://github.com/benhamill\n.. _`nvillalva`: https://github.com/nvillalva\n.. _`jhl2343`: https://github.com/jhl2343\n.. _`Issue 21`: https://github.com/spotify/ramlfications/issues/21\n.. _`cerivera`: https://github.com/cerivera\n.. _`Issue 44`: https://github.com/spotify/ramlfications/issues/44\n.. _`Issue 23`: https://github.com/spotify/ramlfications/issues/23\n.. _`matiasb`: https://github.com/matiasb\n.. _`PR 55`: https://github.com/spotify/ramlfications/pull/55\n.. _`Issue 47`: https://github.com/spotify/ramlfications/issues/47\n.. _`Issue 37`: https://github.com/spotify/ramlfications/issues/37\n.. _`Issue 56`: https://github.com/spotify/ramlfications/issues/56\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "A Python RAML parser",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://ramlfications.readthedocs.io"
},
"split_keywords": [
"raml",
"rest"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "63044fa175deb5d24c331cccb716bb7a0e935544be9256b1e723f4130162dd0f",
"md5": "e54f4c6a29481b16bb4548a55776a735",
"sha256": "1a6ab382d04b2c915c5b8f46e8c16f6125108621af5f62f24ef7f50cf31b7eb3"
},
"downloads": -1,
"filename": "ramlfications-0.2.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e54f4c6a29481b16bb4548a55776a735",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 83131,
"upload_time": "2024-02-22T23:39:45",
"upload_time_iso_8601": "2024-02-22T23:39:45.913718Z",
"url": "https://files.pythonhosted.org/packages/63/04/4fa175deb5d24c331cccb716bb7a0e935544be9256b1e723f4130162dd0f/ramlfications-0.2.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c0c2a81405ecdc6c28dbd36a6268134f5fa8282969a25cec139e560f2d4ca107",
"md5": "f6672d83c54e5a9254536e1d562594b3",
"sha256": "c1c41de63ef8cbb774c4579697096171e663f798b1526bf9ba99efffa465d5ec"
},
"downloads": -1,
"filename": "ramlfications-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "f6672d83c54e5a9254536e1d562594b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1155837,
"upload_time": "2024-02-22T23:39:47",
"upload_time_iso_8601": "2024-02-22T23:39:47.839550Z",
"url": "https://files.pythonhosted.org/packages/c0/c2/a81405ecdc6c28dbd36a6268134f5fa8282969a25cec139e560f2d4ca107/ramlfications-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-22 23:39:47",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ramlfications"
}