Skip to main content

jsoncatalogue

Package jsoncatalogue allows reading set of JSON files from directory structure resembling urls.

Files are loaded and provided as simple url: jsoncontent dictionary.

Such a dictionary can be used as catalogue of JSON schemas for JSON Schema validation.

Installation

$ pip install jsoncatalogue

Structure of directory with JSON files

If you want to have catalogue for Swagger v1.2 validation:

./catalogue/http/wordnik.github.io/schemas/v1.2/apiDeclaration.json
./catalogue/http/wordnik.github.io/schemas/v1.2/infoObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/authorizationObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/modelsObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/operationObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/parameterObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/dataTypeBase.json
./catalogue/http/wordnik.github.io/schemas/v1.2/oauth2GrantType.json
./catalogue/http/wordnik.github.io/schemas/v1.2/resourceObject.json
./catalogue/http/wordnik.github.io/schemas/v1.2/dataType.json
./catalogue/http/wordnik.github.io/schemas/v1.2/resourceListing.json

where

  • catalogue - is catalogue “home” directory (can be deeper)

  • http- is protocol name. Can be any other, like ftp…

  • wordnik.github.io - domain name

  • schemas/v1.2 - local path to JSON files

  • apiDeclaration.json - actual JSON file - must be valid JSON file (no other requirement exist)

As you see, there are no complex rules to follow, just have uri leading to valid JSON file (which is not even required to have an extension “.json”)

Loading JSON Catalogue from directory

>>> from jsoncatalogue import Catalogue
>>> catalogue = Catalogue()
>>> catalogue.add_directory("catalog")
>>> catalogue.add_directory("../other/catalog")
>>> catalogue.store
{"http://exam.ple/schema/one.json": {...},
 "http://exam.ple/schema/two.json": {...},
 "http://wordnik.github.io/schema/v1.2/apiAuthentication.json": {...}
 "http://no.extensi.on/schema/pets": {...}
 }

And this is all. You now have a dictionary with uris and related JSON content. The JSON content is already loaded and is represented as dictionary.

Using catalogue for JSON Schema validator

This catalogue.store can be assigned e.g. to jsonschema validator:

>>> from jsonschema import Draft4Validator
>>> validator = Draft4Validator()
>>> validator.resolver.store = catalogue.store

From now on, validator will know about schemas from catalogue

Metadata

Release files for jsoncatalogue 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsoncatalogue 0.1.1
File Size Uploaded Provenance Actions
jsoncatalogue-0.1.1.tar.gz 9.0 kB Without provenance Details for jsoncatalogue-0.1.1.tar.gz

Release files / jsoncatalogue-0.1.1.tar.gz

Download URL jsoncatalogue-0.1.1.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
35b8514f25a6fb1771220334e45049a65a50125d2d727a4471d8c01e86b478d6
BLAKE2b-256 checksum
How to use checksums
011fefea3ac5b0e02bd629ae0ab3c5a76eb1eafedab26edcf62ba59e3631bd5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for jsoncatalogue 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page