Dataclasses Avro Schema CLI
Command line interface from dataclasses-avroschema to work with avsc resources
Requirements
python 3.10+
Documentation
https://marcosschroh.github.io/dc-avro/
Usage
You can validate one avro schema either from a local file or url:
Assuming that we have a local file schema.avsc that contains an avro schema, we can check whether it is valid
dc-avro validate-schema --path schema.avsc
Valid schema!! 👍
{
'type': 'record',
'name': 'UserAdvance',
'fields': [
{'name': 'name', 'type': 'string'},
{'name': 'age', 'type': 'long'},
{'name': 'pets', 'type': {'type': 'array', 'items': 'string', 'name': 'pet'}},
{'name': 'accounts', 'type': {'type': 'map', 'values': 'long', 'name': 'account'}},
{'name': 'favorite_colors', 'type': {'type': 'enum', 'name': 'FavoriteColor', 'symbols': ['BLUE', 'YELLOW', 'GREEN']}},
{'name': 'has_car', 'type': 'boolean', 'default': False},
{'name': 'country', 'type': 'string', 'default': 'Argentina'},
{'name': 'address', 'type': ['null', 'string'], 'default': None},
{'name': 'md5', 'type': {'type': 'fixed', 'name': 'md5', 'size': 16}}
]
}
You can validate several .avsc files with lint command
dc-avro lint tests/schemas/example.avsc tests/schemas/example_v2.avsc
👍 Total valid schemas: 2
tests/schemas/example.avsc
tests/schemas/example_v2.avsc
To see all the commands execute dc-avro --help
Usage in pre-commit
Add the following lines to your .pre-commit-config.yaml file to enable avro schemas linting
- repo: https://github.com/marcosschroh/dc-avro.git
rev: 0.7.0
hooks:
- id: lint-avsc
additional_dependencies: [typing_extensions]
Features
- Validate
schema - Lint
schemas - Generate
modelsfromschemas - Data deserialization with
schema - Data serialization with
schema - View diff between
schemas - Generate fake data from
schema
Development
- Install requirements:
poetry install - Code linting:
./scripts/format - Run tests:
./scripts/test
Metadata
Release files for dc-avro 0.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dc_avro-0.13.0.tar.gz | 6.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dc_avro-0.13.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / dc_avro-0.13.0.tar.gz
| Download URL | dc_avro-0.13.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
985c6c089cdf4201a31240642312c7e1aebf553890eaf7689cda3c5f305c90e1
|
|
BLAKE2b-256 checksum How to use checksums |
b36196941cc1e2a4e875cf5c08c2ab9da7d3e4209cb08b7b8f0ef3bd6427f3c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.7 Linux/6.11.0-1018-azure
|
Release files / dc_avro-0.13.0-py3-none-any.whl
| Download URL | dc_avro-0.13.0-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2883cc563d631004296b0581deee635286b0f0c30e67f9a8d2a13f000ce916e5
|
|
BLAKE2b-256 checksum How to use checksums |
0f27e566a63a03fec8be15e29c4172f8eb428f29d80bf9b2d672a12ea3c37d7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.7 Linux/6.11.0-1018-azure
|