Ex-dataclass

Latest version: v1.2.0

Safety actively analyzes 623760 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.2.0

* 支持 typing.Union 递归使用;

* 增加 typing.Union 对python基础类型的smart_choice, 之前仅支持ex-dataclass类型;

* 增加 ExFiled 属性 label,用于解决当非规范的字典key作为ex-dataclass属性变量名。;

python
ex_dataclass
class Header:
x_token : str = field(default=None, label="X-Token")


* 增加 ExFiled 属性 loads_factory 和 asdict_factory, 用于解决自定义类型的转换(即非python基础类型和ex-dataclass类型);

python
import datetime
from ex_dataclass import ex_dataclass, asdict, field, EXpack

dict -> 自定义类型;
def loads_f(v: str) -> datetime.datetime:
if v == "":
return datetime.datetime.now()


return datetime.datetime.strptime(v, "%Y-%m-%d")


自定义类型 -> dict;
def asdict_f(v: datetime.datetime) -> str:
return v.strftime("%Y-%m-%d")


ex_dataclass
class Date(EXpack):
created: datetime.datetime = field(default=None, loads_factory=loads_f, asdict_factory=asdict_f)

d = Date(**{"created": "2022-01-01"})
Date(created=datetime.datetime(2022, 1, 1, 0, 0))
print(d)
{'created': '2022-01-01'}
print(asdict(d))

1.1.6

1、修正使用EXpack的类,被其他dataclass类继承时字段无法正确赋值。

1.1.4

1.1.3

1、修复ex_dataclass 类型对象赋值失败;

1.1.2

1. 更新EXpack 支持 loads_<FiledName> 方法;
2. 修正已知Bug;

1.1.1

1、EXpack 使用的动态解析json,传值改变;
2、修复重大bug,typing.Union 及 typing.Type 的算法及无法发现继承属性;
3、修复已知bug;

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.