Convert Ethereum consensus spec SSZ types to OpenAPI type schema definitions
Project description
pyspec2openapi
Tool to convert the types defined in the Ethereum python specs https://github.com/ethereum/consensus-specs to an OpenAPI definition, for https://github.com/ethereum/beacon-APIs. This tool facilitates manteinance of the OpenAPI spec and follows the canonical JSON mapping from https://github.com/ethereum/consensus-specs/pull/3506
Usage
Install from PyPI
pip install pyspec2openapi
Create a config.yml
file
spec_version: v1.4.0-beta.5
sources:
phase0:
- {spec: beacon-chain.md}
- {spec: validator.md}
- {file: extra_types/phase0.md}
altair:
- {spec: beacon-chain.md}
- {spec: validator.md}
- {spec: light-client/sync-protocol.md}
- {file: extra_types/altair.md}
bellatrix:
- {spec: beacon-chain.md}
- {spec: validator.md}
- {file: extra_types/bellatrix.md}
capella:
- {spec: beacon-chain.md}
- {spec: validator.md}
- {spec: light-client/sync-protocol.md}
deneb:
- {spec: polynomial-commitments.md}
- {spec: beacon-chain.md}
- {spec: validator.md}
- {spec: p2p-interface.md}
- {spec: light-client/sync-protocol.md}
- {file: extra_types/deneb.md}
generate_blinded_types: [bellatrix, capella, deneb]
ignore_classnames:
- LightClientStore
exclude_comments:
- '\[New [^\]]*\]'
- '\[Modified [^\]]*\]'
spec_version
: Specific Github tag from theethereum/consensus-specs
repo to fetch sources fromsources
: Topologically sorted list of fork and files to fetch types from. This tool can topologically sort types within the same markdown file, but not across them.generate_blinded_types
: Auto-generate the typesBlindedBeaconBlockBody
,BlindedBeaconBlock
, andSignedBlindedBeaconBlock
for a specific set of forks.ignore_classnames
: Ignore container code blocks with this list of namesexclude_comments
: Ignore comments for container properties that match any of this regex
Generate types spec
pyspec2openapi config.yml out.yml
Review an example output with an example config in ./pyspec2openapi/tests/example_specs_out.yml
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
pyspec2openapi-0.3.0.tar.gz
(6.9 kB
view hashes)
Built Distribution
Close
Hashes for pyspec2openapi-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81cc27e94cf233158a4e0a54f8b572e562fc853e95f6b05a21498bec6fd1070c |
|
MD5 | 3a5e501555e0b0a8076dfae98e296263 |
|
BLAKE2b-256 | 82f954fe7b14eb61172dae42a6e8f53475e88d2270b27a2d78ace4279517e723 |