跳转到主要内容

Python的数据验证和转换库。CleanCat的继承者。

项目描述

CleanChausie

CleanChausie是一个用于Python的数据验证和转换库。它是CleanCat的继承者。

查看文档

对这个项目感兴趣?Close正在寻找优秀的工程师加入我们的团队。

主要功能

  • 在类型检查的对象上/与操作,具有良好的IDE/自动完成支持
  • 简单字段的注解声明
  • 可组合/可重用字段和字段验证逻辑
  • 支持(但不强制)传递上下文(以避免全局状态)
    • 上下文模式与基于sqlalchemy的显式会话管理兼容。即当验证时传递会话
  • 支持清晰的架构内字段依赖(即一个字段可以依赖于另一个字段的验证值)
  • 显式空值/省略参数
  • 一次返回多个字段的错误,并带有字段归属

CleanChausie示例

这是一个如何使用架构来支持Flask端点的简短示例。更详细的示例可以在文档中找到。

from typing import List
from cleanchausie import (
  clean, ListField, URLField, EmailField, field, ValidationError, Schema
)
from flask import app, request, jsonify

class JobApplication(Schema):
  first_name: str
  last_name: str
  email: str = field(EmailField())
  urls: List[str] = field(ListField(URLField(default_scheme='http://')))

@app.route('/job_application', methods=['POST'])
def test_view():
  result = clean(JobApplication, request.json)
  if isinstance(result, ValidationError):
    return jsonify(result.serialize()), 400

  # Now "result" has the validated data, in the form of a `JobApplication` instance.
  assert isinstance(result, JobApplication)
  name = f'{result.first_name} {result.last_name}'

发布流程

  • 请务必彻底审查和测试代码更改。
  • 准备新的发布
    • cleanchausie/__init__.py中更新包版本。
    • 为新的版本添加更改日志条目。
    • 合并到master
  • 在GitHub动作标签中发送新的“构建和发布”工作流程操作。

生成的工作流程将构建并发布新版本到PyPi。

项目详情


下载文件

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

源代码分发

cleanchausie-1.17.8.tar.gz (26.5 kB 查看哈希值)

上传时间 源代码

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面