# dataclass_plus
[![Python 3.6](https://img.shields.io/badge/python-3.7-brightgreen.svg)](https://www.python.org/downloads/release/python-370)
[![pypi](https://badge.fury.io/py/dataclass-plus.svg)](https://badge.fury.io/py/dataclass-plus)
[![travis-badge](https://travis-ci.org/mgurdal/aegis.svg?branch=master)](https://travis-ci.org/muhammetenes/dataclass_plus)
[![Coverage Status](https://coveralls.io/repos/github/muhammetenes/dataclass_plus/badge.svg?branch=master)](https://coveralls.io/github/muhammetenes/dataclass_plus?branch=master)
The `dataclass_plus` is a fastest type validation library for the `dataclass`
## Install
```
pip install dataclass-plus
```
## Example
Basic Example
```python
from dataclass_plus import dataclass_plus
from typing import List, Dict, Tuple
@dataclass_plus
class Model:
id: int
name: str
dict_example: Dict[str, str]
list_example: List[int] # this field is required
tuple_example: Tuple[str, float] = None # this field is not required because set default None
Model(
id=1,
name='Test Test',
dict_example={"test": "test"},
list_example=[1,2],
tuple_example=("test", 1.2)
)
# => Model(id=1, name='Test Test', dict_example={"test": "test"}, list_example=[1,2], tuple_example=("test", 1.2))
# Invalid Model
Model(
id=1,
name='Test Test',
dict_example={"test": 1},
list_example=[1,2],
tuple_example=("test", 1.2)
)
# => TypeError: {'test': 1} is not typing.Dict[str, str]
```
Nested Example
```python
from dataclass_plus import dataclass_plus
from typing import List, Dict, Tuple
@dataclass_plus
class Model:
nested_example: List[List[str]]
multi_nested_example: Dict[str, List[Tuple[str, List[int]]]]
Model(
nested_example=[["test"], ["test_2"]],
multi_nested_example={"test": [("test",[1, 2])]}
)
# => Model(nested_example=[['test'], ['test_2']], multi_nested_example={'test': [('test', [1, 2])]})
# Invalid Model
Model(
nested_example=[["test"], ["test_2"]],
multi_nested_example={"test": [("test",[1, "test"])]}
)
# => TypeError: [1, 'test'] is not typing.List[int]
```
Note: Can use every feature of dataclass (Example: frozen=True, init=True ...)
PyPI 官网下载 | dataclass_plus-2.0.0.tar.gz
版权申诉
117 浏览量
2022-01-10
09:35:18
上传
评论
收藏 5KB GZ 举报
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
最新资源
- 海尔618算价表_七海5.20_16.00xlsx(1)(2).xlsx
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈