跳至主要内容

新的TOML编码器/解码器

项目描述

qtoml是另一个Python TOML编码器/解码器。我写它是由于我发现uiri/toml太不稳定,而PyTOML太慢。

有关TOML语言的信息,请参阅 toml-lang/toml

qtoml目前支持TOML v0.5.0。

使用方法

qtoml可在 PyPI 上找到。您可以使用pip进行安装

$ pip install qtoml

qtoml支持大多数类似模块通用的标准 load/loads/dump/dumps API。使用方法

>>> import qtoml
>>> toml_string = """
... test_value = 7
... """
>>> qtoml.loads(toml_string)
{'test_value': 7}
>>> print(qtoml.dumps({'a': 4, 'b': 5.0}))
a = 4
b = 5.0

>>> infile = open('filename.toml', 'r')
>>> parsed_structure = qtoml.load(infile)
>>> outfile = open('new_filename.toml', 'w')
>>> qtoml.dump(parsed_structure, outfile)

TOML支持Python数据模型的相当完整子集,但值得注意的是,它不包括null或None值。如果您从其他地方有一个包含None值的字典,有时在编码时替换它们可能很有用

>>> print(qtoml.dumps({ 'none': None }))
qtoml.encoder.TOMLEncodeError: TOML cannot encode None
>>> print(qtoml.dumps({ 'none': None }, encode_none='None'))
none = 'None'

encode_none值必须是可以由TOML编码的替换值,例如零或字符串。

这会破坏编码的可逆性,将None值与您选择的任何哨兵的实际出现区分开来。因此,在精确表示至关重要时不应使用它。

开发/测试

qtoml使用poetry工具进行项目管理。要检出项目进行开发,请运行

$ git clone --recurse-submodules https://github.com/alethiophile/qtoml
$ cd qtoml
$ poetry install

假设诗歌已经安装。如果当前有一个活动虚拟环境,则包及其依赖项将在此环境中安装;如果没有,则将创建一个特定于项目的新的虚拟环境。

qtoml与alethiophile/toml-test测试套件进行测试,该测试套件是从BurntSushi的原始版本的uiri分支中分叉出来的。要运行测试,按照上面的方法检出项目后,进入tests目录并运行

$ pytest              # if you already had a virtualenv active
$ poetry run pytest   # if you didn't

许可证

本项目遵循MIT许可协议。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

qtoml-0.3.1.tar.gz (13.2 kB 查看哈希值)

上传时间

构建分发

qtoml-0.3.1-py3-none-any.whl (12.7 kB 查看哈希值)

上传时间 Python 3

由以下组织支持