跳转到主要内容

未提供项目描述

项目描述

数据类Avro模式CLI

dataclasses-avroschema提供的命令行界面,用于处理avsc资源

Tests GitHub license codecov python version

要求

python 3.8+

文档

https://marcosschroh.github.io/dc-avro/

使用方法

您可以从本地文件url验证一个avro模式

假设我们有一个包含avro模式的本地文件schema.avsc,我们可以检查它是否有效

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}}
    ]
}

您可以使用lint命令验证多个.avsc文件

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

要查看所有命令,请执行dc-avro --help

pre-commit中的使用

将以下行添加到您的.pre-commit-config.yaml文件中,以启用avro模式linting

  - repo: https://github.com/marcosschroh/dc-avro.git
    rev: 0.7.0
    hooks:
      - id: lint-avsc
        additional_dependencies: [typing_extensions]

功能

  • 验证schema
  • lint schemas
  • schemas生成models
  • 使用schema进行数据反序列化
  • 使用schema进行数据序列化
  • 查看schemas之间的差异
  • schema生成伪造数据

开发

  1. 安装要求: poetry install
  2. 代码linting: ./scripts/format
  3. 运行测试: ./scripts/test

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

dc_avro-0.9.0.tar.gz (5.5 kB 查看哈希值)

上传时间

构建分发

dc_avro-0.9.0-py3-none-any.whl (6.5 kB 查看哈希值)

上传时间 Python 3

由以下提供支持