定义可序列化的、经过模式验证的类的轻量级模块

lasso的Python项目详细描述


Documentation StatusBuild StatusCode Coverage

套索lasso-iconPython的一个小模块,它 允许使用类型检查属性定义类,符合 预定模式。

使用套索lasso-iconschemas的类可以用于:

  • 类型检查对象属性。
  • validate输入数据。
  • 反序列化向应用程序对象输入数据,直接支持 反序列化JSON
  • 序列化应用程序对象到JSON

用法

定义一个类,并附加一个用于检查 属性:

>>> from lasso import Schemed
>>> class Point(Schemed):
...   __schema__ = { "x": int, "y": int }
...
>>>

现在可以创建值,使用关键字参数设置 属性。请注意如何正常访问属性:

>>> location = Point(x=-3, y=5)
>>> location.x, location.y
(-3, 5)
>>>

属性被类型检查:

>>> location.x = 6  # Succeds
>>> location.x = "invalid value"  # Fails
Traceback (most recent call last):
   ...
schema.SchemaError: 'invalid value' should be instance of <class 'int'>
>>> location.x, location.y  # Values remain unchanged
(6, 5)
>>>

最后,但并非最不重要的是,自动支持与json的转换:

>>> json_text = location.to_json(sort_keys=True)
>>> json_text
'{"x": 6, "y": 5}'
>>> value = Point.from_json(json_text)
>>> value.__class__.__name__
'Point'
>>>

安装

稳定版本被上传到PyPI,所以 可以使用pip

安装和升级它们
pip install lasso

或者,您可以自行安装开发版本- 直接从git存储库:

pip install -e git://github.com/aperezdc/lasso-python

文档

套索lasso-icon的文档位于:

http://lasso.readthedocs.org/en/latest

请注意,文档正在处理中。同时,你可以 想进一步了解模块本身的源代码, 或者更好的是projects using the module的代码。

开发

如果您想参与,请使用常见的github工作流:

  1. 克隆存储库。
  2. 攻击你的克隆人。
  3. 发送请求以供审阅。

如果您没有编程技能,您仍然可以通过reporting issues贡献 遭遇。

用户

以下项目使用套索lasso-icon

(如果您使用它,请不要犹豫编辑此文件并添加一行到 此列表。)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从数组中打印int值?   prepared语句Java中奇怪的异常PreparedStatement:参数索引超出范围   封装如何在OOP Java中为主方法编码?   java某些手机显示快捷方式徽章需要什么权限?   java TextView不会随OnItemSelectedListener更改   java注释处理器不会自动触发吗?   java Spring JPA如何计算外键数   c#对于这个简单的OOAD问题,哪种设计最优雅?   java如何处理while循环中的异常?   Android Studio错误:进程'command'/home/draven/Downloads/安卓studio/jre/bin/java''结束,退出值为非零2   在使用Payara服务器的Vaadin应用程序中导航到根目录时,java将丢失上下文根目录   使用contentType application/json而不是application/jsonpatch+json的java修补程序   带有tomcat的java HAproxy连接不足   Java:在应用过滤器后创建一个简单的通用方法进行计数   java如何使用多态性创建一个实例化对象的方法,然后用它们高效地填充ArrayList?