yaml文件节点实现
项目描述
node.ext.yaml 提供了一个对yaml文件的节点实现。
有关节点的更多信息,请参阅 node 软件包。
有关管道的更多信息,请参阅 plumber 软件包。
用法
创建一个yaml文件
from node.ext.yaml import YamlFile
class MyYamlFile(YamlFile):
@property
def fs_path(self):
return '/path/to/file.yaml'
file = MyYamlFile()
file['child'] = 'Value'
# write file to disk
file()
定义子节点的工厂
from node.ext.yaml import YamlNode
class SpecificChild(YamlNode):
pass
class DefaultChild(YamlNode):
pass
class MyYamlFile(YamlFile):
factories = {
'child': SpecificChild,
'*': DefaultChild
}
定义节点成员的模式
from node import schema
from node.behaviors import SchemaAsAttributes
from plumber import plumbing
@plumbing(SchemaAsAttributes)
class MyYamlFile(YamlFile):
schema = {
'int_member': schema.Int(),
'str_member': schema.Str()
}
file = MyYamlFile()
file.attr['int_member'] = 1
file.attr['str_member'] = u'String'
模式成员可以直接在类上定义。
注意:请小心不要覆盖现有的API成员。
from node.behaviors import SchemaProperties
@plumbing(SchemaProperties)
class MyYamlFile(YamlFile):
int_member = schema.Int()
str_member = schema.Str()
file = MyYamlFile()
file.int_member = 1
file.str_member = u'String'
Python版本
Python 2.7, 3.3+
贡献者
Robert Niederreiter
变更
0.3 (2022-12-21)
node.ext.yaml.behaviors.YamlSequenceStorage 现在实现了 __contains__,它直接比较存储值。这是为了使包含检查正常工作,因为yaml子节点不在 __getitem__ 上缓存。[rnix]
node.ext.yaml.behaviors.YamlMember 现在提供了 default_mapping_factory 和 default_sequence_factory 设置。[rnix]
node.ext.yaml.behaviors.YamlMember 现在继承自 node.behaviors.WildcardFactory。[rnix]
在 node.ext.yaml.YamlSequence 上使用 node.behaviors.SequenceAdopt 和 node.behaviors.SequenceOrder 行为。[rnix]
建议使用在 node 1.2 中引入的 node.behaviors.MappingOrder 行为,而不是 node.behaviors.Order,在 node.ext.yaml.YamlMapping 和 node.ext.yaml.YamlFile 中使用。 [rnix]
0.2 (2022-10-06)
从 node.ext.fs.FSLocation 继承 YamlRootStorage,它提供了 fs_path 属性。请注意,现在 fs_path 被视为列表。 [rnix]
从 node.ext.fs.interfaces.IFile 继承 IYamlRoot。 [rnix]
现在该软件包依赖于 node.ext.fs。 [rnix]
将已弃用的 Adopt 替换为 MappingAdopt。 [rnix]
node.ext.yaml.YamlNode 和 node.ext.yaml.YamlFile 不再提供默认子工厂。 [rnix]
0.1 (2021-11-22)
初始工作 [rnix]
许可协议
版权所有 (c) 2021-2022, Node 贡献者。保留所有权利。
在不违反以下条件的情况下,允许重新分发和使用源代码和二进制形式,无论是否修改:
源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分发必须在文档和/或其他与分发提供的材料中复制上述版权声明、本条件列表和以下免责声明。
本软件按“原样”提供,版权所有者和贡献者不提供任何明示或暗示的保证,包括但不限于对适销性和针对特定目的的适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后续损害(包括但不限于替代商品或服务的采购;损失使用、数据或利润;或业务中断)承担责任,无论该损害是否因本软件的使用而引起,即使被告知此类损害的可能性。 [rnix]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源代码分发
构建分发
node.ext.yaml-0.3.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3fc7b226f39b7096ad65bc91ad6f11da0c02540b2ef9529a699f0f4884b348bc |
|
MD5 | d7629c8a9a9c832cac05ff1925a063d5 |
|
BLAKE2b-256 | 1c2f7e2b685c771bf9b5830d5a24b68f2730bd5e55835958813a6bff792b68c7 |