Swagger/OpenAPI 2.0 Parser
Prance provides 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.
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 # Fetch URL, validate and resolve. $ prance validate http://petstore.swagger.io/v2/swagger.json Processing "http://petstore.swagger.io/v2/swagger.json"... -> Resolving external references. Validates OK as Swagger/OpenAPI 2.0!
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
On Windows, the code reacts correctly if you pass posix-like paths (/c:/swagger) or if the path is relative. If you pass absolute windows path (like c:\swagger.yaml), you can use prance.util.fs.abspath to convert them.
URLs can also be parsed:
parser = ResolvingParser('http://petstore.swagger.io/v2/swagger.json')
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.
See CONTRIBUTING.md for details.
Licensed under MITNFA (MIT +no-false-attribs) License. See the LICENSE.txt file for details.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|prance-0.7.0-py2.py3-none-any.whl (20.4 kB) Copy SHA256 hash SHA256||Wheel||py2.py3||Sep 18, 2017|
|prance-0.7.0.tar.gz (32.0 kB) Copy SHA256 hash SHA256||Source||None||Sep 18, 2017|