Swagger/OpenAPI 2.0 Parser
Project description
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
Documentation
After setup, run the following to generate documentation:
$ python setup.py build_sphinx
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.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | babb71e836b7dbf665c48a0064a28156769327754249443201ba5d4bbced8c6d |
|
MD5 | 226219340e8a5992688f2b4ec0491078 |
|
BLAKE2b-256 | 4905c00b2eaf262bc2cfeac2efff5cc18656832c37317529d55f4e0cf832dc1b |