Workspace root for Jentic OpenAPI Tools
Project description
Jentic OpenAPI Tools
A comprehensive Python toolkit for parsing, validating, and transforming OpenAPI documents with pluggable backend architecture.
Features
- Pluggable Backend Architecture - Support for multiple parsing, validation, and transformation strategies via entry points
- Type Safety - Full type hints with comprehensive type checking throughout
- Multiple Input Formats - Accept OpenAPI documents from file URIs, JSON/YAML strings, or Python dictionaries
- Flexible Output Types - Return results as dictionaries, strings, or custom types
- Extensible Design - Easy integration of third-party backends through standard Python entry points
- Path Security - Built-in defense against path traversal attacks
- Production Ready - Comprehensive test coverage and error handling
Installation
Install all packages at once using the meta-package:
pip install jentic-openapi-tools
Or install individual packages as needed:
pip install jentic-openapi-parser
pip install jentic-openapi-validator
pip install jentic-openapi-transformer
Prerequisites:
- Python 3.11 or higher
- Node.js >=20.19.0 and npm (required for Redocly and Spectral backends)
Quick Start
Parsing OpenAPI Documents
from jentic.apitools.openapi.parser.core import OpenAPIParser
# Create parser with default backend
parser = OpenAPIParser()
# Parse from file
doc = parser.parse("file:///path/to/openapi.yaml")
print(doc["info"]["title"])
# Parse from YAML/JSON string
yaml_doc = """
openapi: 3.1.0
info:
title: My API
version: 1.0.0
paths: {}
"""
doc = parser.parse(yaml_doc)
Validating OpenAPI Documents
from jentic.apitools.openapi.validator.core import OpenAPIValidator
# Create validator
validator = OpenAPIValidator()
# Validate from file
result = validator.validate("file:///path/to/openapi.yaml")
if result.valid:
print("Document is valid!")
else:
for diagnostic in result.diagnostics:
print(f"Error: {diagnostic.message}")
Transforming OpenAPI Documents
# Install with Redocly backend support
pip install jentic-openapi-transformer[redocly]
from jentic.apitools.openapi.transformer.bundler.core import OpenAPIBundler
# Bundle OpenAPI document with external reference resolution
bundler = OpenAPIBundler("redocly")
result = bundler.bundle("file:///path/to/openapi.yaml", return_type=dict)
print(result["info"]["title"])
Packages
This monorepo contains the following packages:
| Package | Description |
|---|---|
| jentic-openapi-tools | Meta-package that installs all workspace packages |
| jentic-openapi-common | Common utilities and shared functionality |
| jentic-openapi-datamodels | OpenAPI data models and structures |
| jentic-openapi-parser | OpenAPI document parsing with pluggable backends |
| jentic-openapi-traverse | OpenAPI document traversal utilities |
| jentic-openapi-transformer | OpenAPI document transformation and bundling |
| jentic-openapi-transformer-redocly | Redocly-based transformation backend |
| jentic-openapi-validator | OpenAPI document validation with pluggable backends |
| jentic-openapi-validator-redocly | Redocly-based validation backend |
| jentic-openapi-validator-spectral | Spectral-based validation backend |
| jentic-openapi-validator-speclynx | SpecLynx ApiDOM-based validation backend |
Each package has its own detailed README with comprehensive API documentation and examples.
Documentation
- Development Guide - Setup instructions, testing, and development workflows
- Contributing Guidelines - How to contribute to the project
- Package READMEs - See individual package directories for detailed API documentation
Architecture
The Jentic OpenAPI Tools follow a modular architecture with a plugin-based backend system:
- Core Packages - Provide base functionality and abstractions
- Backend Packages - Implement specific parsing, validation, or transformation strategies
- Entry Points - Backends register themselves via Python entry points for automatic discovery
This design allows you to:
- Start with default backends and add advanced ones as needed
- Implement custom backends for specific requirements
- Use multiple backends simultaneously for comprehensive validation
Built and maintained by Jentic
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jentic_openapi_tools-1.0.0a49.tar.gz.
File metadata
- Download URL: jentic_openapi_tools-1.0.0a49.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f236888bfd8f406a92af9f287c6e0ff28ab3df7410f8c27b66b8d7ecafaea77
|
|
| MD5 |
aacf70c7f7e72042dc2576c2237123dd
|
|
| BLAKE2b-256 |
26401167aa14d6b9982426194fc0a681eed56dc2b481e6b8fbe56918141020c6
|
Provenance
The following attestation bundles were made for jentic_openapi_tools-1.0.0a49.tar.gz:
Publisher:
release.yml on jentic/jentic-openapi-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jentic_openapi_tools-1.0.0a49.tar.gz -
Subject digest:
2f236888bfd8f406a92af9f287c6e0ff28ab3df7410f8c27b66b8d7ecafaea77 - Sigstore transparency entry: 1198362884
- Sigstore integration time:
-
Permalink:
jentic/jentic-openapi-tools@67007e0dc6806b8c2bcbd58241f7997cd386ad84 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jentic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67007e0dc6806b8c2bcbd58241f7997cd386ad84 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file jentic_openapi_tools-1.0.0a49-py3-none-any.whl.
File metadata
- Download URL: jentic_openapi_tools-1.0.0a49-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27e48e085d3a77d6a6bbf90501c74f596adfb8d109b6543ac907e8a975613917
|
|
| MD5 |
407f1422f377d8086656f4d2bc387dd6
|
|
| BLAKE2b-256 |
45136d76dd76d3698748870636d39810d37bc3e425ebcc48aab9557b594cb087
|
Provenance
The following attestation bundles were made for jentic_openapi_tools-1.0.0a49-py3-none-any.whl:
Publisher:
release.yml on jentic/jentic-openapi-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jentic_openapi_tools-1.0.0a49-py3-none-any.whl -
Subject digest:
27e48e085d3a77d6a6bbf90501c74f596adfb8d109b6543ac907e8a975613917 - Sigstore transparency entry: 1198362985
- Sigstore integration time:
-
Permalink:
jentic/jentic-openapi-tools@67007e0dc6806b8c2bcbd58241f7997cd386ad84 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jentic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67007e0dc6806b8c2bcbd58241f7997cd386ad84 -
Trigger Event:
workflow_dispatch
-
Statement type: