Swagger/OpenAPI 2.0 Parser
Project description
Prance
Swagger/OpenAPI 2.0 Parser for Python
Prances provices parsers for Swagger/OpenAPI 2.0 API specifications in Python. It uses swagger_spec_validator to validate specifications, but additionally resolves JSON references in accordance with the Swagger spec.
Mostly the latter involves handling non-URI references; Swagger is fine with providing relative file paths, whereas JSON references require URIs at this point in time.
Usage
Command Line Interface
After installing prance, a CLI is available for validating (and resolving external references in) specs:
# Validates with resolving
$ prance validate path/to/swagger.yml
# Validates without resolving
$ prance validate --no-resolve path/to/swagger.yml
# Validates and resolves, and writes the results to output.yaml
$ prance validate -o output.yaml path/to/swagger.yml
Code
Most likely you have spec file and want to parse it:
from prance import ResolvingParser
parser = ResolvingParser('path/to/my/swagger.yaml')
parser.specification # contains fully resolved specs as a dict
Prance also includes a non-resolving parser that does not follow JSON references, in case you prefer that.
from prance import BaseParser
parser = BaseParser('path/to/my/swagger.yaml')
parser.specification # contains specs as a dict still containing JSON references
Largely, that’s it. There is a whole slew of utility code that you may or may not find useful, too. Look at the full documentation for details.
Setup
Use virtualenv to create a virtual environment and change to it or not, as you see fit.
Then install the requirements:
$ pip install -r requirements.txt
Development
Test Execution
Run the whole test suite:
$ python setup.py test
Run a single test scenario:
$ pytest tests/test_resolving_parser.py::test_basics
Run tests on multiple Python versions:
$ tox
Run tests on Python 2.7:
$ tox -e py27
A simple test coverage report is automatically generated.
License
Licensed under MITNFA (MIT +no-false-attribs) License. See the LICENSE.txt file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for prance-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7b6479a87a80c3201bcb51c0801a05bad432bc51ac833a7ff6dd8e8abf08d2e |
|
MD5 | fbda3fea069e0003071d9d54a361562b |
|
BLAKE2b-256 | 7cfc1f8362903c6d077fe5a4972892f3a9db05ad3af09ca637d65a93bc8d2cf9 |