物联网和物联网设备的通用数据模型
项目描述
OneDM Python库
这个Python包是早期的工作,旨在简化使用One Data Model的Python。
由于OneDM处于早期阶段,这个库旨在尽可能跟随其进展,因此应被视为不稳定。
SDF
目前它支持有限的SDF文档加载和生成SDF。
语义定义格式(SDF)是一种格式,供领域专家用于创建和维护描述事物(即通过网络进行交互的物理对象)的数据和交互模型。SDF规范描述了SDF对象/事物的定义及其相关的交互(事件、动作、属性),以及在这些交互中交换的信息的数据类型。
本库使用Pydantic来解析、验证和导出模型描述。Pydantic模型比当前SDF JSON模式中的验证更严格,其中每个数据类型都有自己的模式。
您还可以验证输入值与您的数据定义。
示例
加载现有的SDF文档
>>> from onedm import sdf
>>> loader = sdf.SDFLoader()
>>> loader.load_file("tests/sdf/test.sdf.json")
>>> doc = loader.to_sdf()
>>> doc.info.title
'Example document for SDF (Semantic Definition Format)'
>>> doc.properties["IntegerProperty"]
IntegerProperty(observable=True, readable=True, writable=True, label='Example integer', description=None, ref=None, required=[], type=<DataType.INTEGER: 'integer'>, sdf_type=None, nullable=True, const=2, unit=None, minimum=-2, maximum=2, exclusive_minimum=None, exclusive_maximum=None, multiple_of=2, format=None, choices=None, default=None)
>>> doc.data["Integer"].validate_input(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "onedm\sdf\data.py", line 129, in validate_input
return super().validate_input(input)
^^^^^^^^^^^^^^^^^^^^^^^
File "onedm\sdf\data.py", line 64, in validate_input
return SchemaValidator(self.get_pydantic_schema()).validate_python(input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for constrained-int
Input should be a multiple of 2 [type=multiple_of, input_value=3, input_type=int]
For further information visit https://errors.pydantic.dev/2.8/v/multiple_of
创建新文档
>>> from onedm import sdf
>>> doc = sdf.SDF()
>>> doc.info.title = "Generic switch document"
>>> doc.things["switch"] = sdf.Thing(label="Generic switch")
>>> doc.things["switch"].actions["on"] = sdf.Action(label="Turn on")
>>> print(doc.to_json())
{
"info": {
"title": "Generic switch document"
},
"sdfThing": {
"switch": {
"label": "Generic switch",
"sdfAction": {
"on": {
"label": "Turn on"
}
}
}
}
}
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
onedm-0.1.1.tar.gz (14.8 kB 查看哈希值)
构建分发
onedm-0.1.1-py3-none-any.whl (10.6 kB 查看哈希值)
关闭
onedm-0.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1b6e9e777ff27f0ecf0c93616d948bcfc7037fb8793fc415d763b0d7ddfa4930 |
|
MD5 | 0ff287ac4e734189100ec206be250c4d |
|
BLAKE2b-256 | ac28cb81108ac171858ea0b02ab782ad2ac06715f7ef00da0293cf8bc1e3c701 |
关闭
onedm-0.1.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 27b638fdfc4234e8ca752e6999d9db361cab698bde97d2891367e1841d9a2701 |
|
MD5 | 84bedfe4da56c5b4b2a77e05e566cb90 |
|
BLAKE2b-256 | f1b98df3186c7b845fc6f29a16df91b531ac7f1092f9d44c90d6a063cf0e5aad |