基于文件的ORM,用于数据类。
项目描述
Datafiles:用于Python数据类的基于文件的ORM
Datafiles是一个双向序列化库,用于Python 数据类,通过使用类型注解将对象同步到文件系统。它支持多种文件格式,尽可能保留格式和注释。对象更改将自动保存到磁盘,并且只包括恢复每个对象所需的最小数据。
一些常见用例包括
- 将用户可编辑的文件强制转换为正确的Python类型
- 将程序配置和状态存储在版本控制中
- 加载用于演示或测试目的的数据固定
- 使用文件共享服务同步应用程序状态
- 原型设计不依赖于持久化后端的数据模型
观看我的闪电演讲以查看此功能的演示!
概述
从文档中取一个现有的数据类,例如这个示例
from dataclasses import dataclass
@dataclass
class InventoryItem:
"""Class for keeping track of an item in inventory."""
name: str
unit_price: float
quantity_on_hand: int = 0
def total_cost(self) -> float:
return self.unit_price * self.quantity_on_hand
并用目录模式装饰它以同步实例
from datafiles import datafile
@datafile("inventory/items/{self.name}.yml")
class InventoryItem:
...
然后,像平常一样处理类的实例
>>> item = InventoryItem("widget", 3)
# inventory/items/widget.yml
unit_price: 3.0
对象的更改将自动保存到文件系统
>>> item.quantity_on_hand += 100
# inventory/items/widget.yml
unit_price: 3.0
quantity_on_hand: 100
文件系统的更改将自动反映在对象中
# inventory/items/widget.yml
unit_price: 2.5 # <= manually changed from "3.0"
quantity_on_hand: 100
>>> item.unit_price
2.5
对象也可以从文件系统中恢复
>>> from datafiles import Missing
>>> item = InventoryItem("widget", Missing)
>>> item.unit_price
2.5
>>> item.quantity_on_hand
100
安装
直接将此库安装到激活的虚拟环境中
$ pip install datafiles
或将其添加到您的Poetry项目中
$ poetry add datafiles
文档
要查看更多的同步和格式化选项,请参阅完整文档。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
datafiles-2.2.3.tar.gz (25.5 kB 查看哈希值)
构建分发
datafiles-2.2.3-py3-none-any.whl (32.6 kB 查看哈希值)
关闭
datafiles-2.2.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4192e1bc22e47d6a50c1384d1a5becc6106eb6aaa725f46326b890cf36c62113 |
|
MD5 | d77eca13aea36ca2bf17ced7bee3cd10 |
|
BLAKE2b-256 | a764afd9cf0320b238ff851154131969f1c4cac61e49b0a6fd6328372ec30c3b |
关闭
datafiles-2.2.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3251ce5cc0c508907c8bc97c6601401b6576f6d6fc94b209ba7519d970d2058 |
|
MD5 | ceda63286736be6d459b25af2b1b1f19 |
|
BLAKE2b-256 | 24f47da755bd8f04320917078c2111730e8bfb86242662a79656043fd4bd5a3b |