Skip to main content

catbuffer-parser

Build Status

This project is the reference parser implementation for the CATS (Concise Affinitized Transfer Schema) DSL that is used by the Symbol blockchain. The parser converts a CATS file or files into an AST that can be used by a generator to produce serialization and deserialzation code for defined objects.

  • A reference to the DSL format can be found here.
  • For a sampling of real world schemas, those used by the Symbol blockchain can be found here.

Requirements

  • Python >= 3.6

Installation

git clone https://github.com/symbol/catbuffer-parser
pip3 install -r requirements.txt
pip3 install -r lint_requirements.txt # optional

Usage

usage: python -m catparser [-h] -s SCHEMA -i INCLUDE [-o OUTPUT]

CATS code generator

optional arguments:
  -h, --help            show this help message and exit
  -s SCHEMA, --schema SCHEMA
                        input CATS file
  -i INCLUDE, --include INCLUDE
                        schema root directory
  -o OUTPUT, --output OUTPUT
                        yaml output file

Examples

catparser can be used on its own to parse input files, check their validity and optionally output a YAML file containing the parsed type descriptors:

git clone --depth 1 --branch v3.0.0 https://github.com/symbol/catbuffer-schemas.git

# parse but don't output anything
python3 -m catparser --schema ../catbuffer-schemas/symbol/transfer/transfer.cats --include ../catbuffer-schemas/symbol

# parse and output a YAML file (deprecated)
python3 -m catparser --schema ../catbuffer-schemas/symbol/transfer/transfer.cats --include ../catbuffer-schemas/symbol --output ../catbuffer-schemas/all.yaml

Metadata

Release files for catparser 3.1.0

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

Source distribution (sdist)

Source distribution for catparser 3.1.0
File Size Uploaded
catparser-3.1.0.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for catparser 3.1.0
File Interpreter ABI Platform
catparser-3.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.3 kB

Release files / catparser-3.1.0.tar.gz

Download URL catparser-3.1.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b2c6baf27453b2d350c0c536e11791c78f482779f78e79e1235abc04e1618e8c
BLAKE2b-256 checksum
How to use checksums
5582e7f2eb27019b4210c31d6961fa4be4ccb51fbd79741574a3bb7e4cbf3b13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.7

Release files / catparser-3.1.0-py3-none-any.whl

Download URL catparser-3.1.0-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37cbfb45e32c2ac8c75b3c33c2a4c196399e948d867d5836716d699378fedb31
BLAKE2b-256 checksum
How to use checksums
f6c81889c5bb57f23bf8f65c9541d1302ecaf53734beb7cf03d486ae88bdcb40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.7

Release history Release notifications | RSS feed

This release

3.1.0 This release

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

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