用于Zish格式的Python库。
项目描述
这是一个用于Zish格式的Python库,在MIT-0许可下发布。
安装
创建虚拟环境: python3 -m venv venv
激活虚拟环境: source venv/bin/activate
安装: pip install zish
快速入门
要从Python对象转换为Zish字符串,请使用 zish.dumps。要从Zish字符串转换为Python对象,请使用 zish.loads。例如。
>>> from zish import loads, dumps >>> from datetime import datetime, timezone >>> from decimal import Decimal >>> >>> # Take a Python object >>> book = { ... 'title': 'A Hero of Our Time', ... 'read_date': datetime(2017, 7, 16, 14, 5, tzinfo=timezone.utc), ... 'would_recommend': True, ... 'description': None, ... 'number_of_novellas': 5, ... 'price': Decimal('7.99'), ... 'weight': 6.88, ... 'key': b'kshhgrl', ... 'tags': ['russian', 'novel', '19th century']} >>> >>> # Output it as an Zish string >>> zish_str = dumps(book) >>> print(zish_str) { "description": null, "key": 'a3NoaGdybA==', "number_of_novellas": 5, "price": 7.99, "read_date": 2017-07-16T14:05:00Z, "tags": [ "russian", "novel", "19th century", ], "title": "A Hero of Our Time", "weight": 6.88, "would_recommend": true, } >>> >>> # Load the Zish string, to give us back the Python object >>> reloaded_book = loads(zish_str) >>> >>> # Print the title >>> print(reloaded_book['title']) A Hero of Our Time
Python类型 |
Zish类型 |
---|---|
bool |
bool |
int |
整数 |
str |
字符串 |
datetime.datetime |
时间戳 |
dict |
映射 |
decimal.Decimal |
decimal |
float |
decimal |
bytearray |
bytes |
bytes |
bytes |
list |
list |
tuple |
list |
运行测试
切换到 zish 目录: cd zish
创建虚拟环境: python3 -m venv venv
激活虚拟环境: source venv/bin/activate
安装tox: pip install tox
运行tox: tox
README.rst
此文件使用 reStructuredText 格式编写。要从它生成HTML页面,请执行
激活虚拟环境: source venv/bin/activate
安装Sphinx: pip install Sphinx
运行 rst2html.py: rst2html.py README.rst README.html
发布新版本
运行 tox 确保所有测试通过,然后更新“发行说明”部分,然后执行
git tag -a x.y.z -m "version x.y.z" rm -r dist python -m build twine upload --sign dist/*
发布说明
版本 0.1.11 (2023-10-09)
修复了 dump() 没有正确转义 " 和 \ 的错误。
移除了对Python 3.7的支持,并增加了对Python 3.11的支持。
版本 0.1.10 (2022-10-29)
切换到MIT-0许可证。
使U+00A0 NO-BREAK SPACE字符成为空白字符
当 dump() 遇到未识别的类型时,提供更好的错误消息。
版本 0.1.9 (2021-04-05)
允许映射和列表中的尾随逗号。
版本 0.1.8 (2020-06-25)
在输出为列表之前对 set 类型进行排序。
版本 0.1.7 (2020-02-11)
使用基于1的行和字符编号,而不是基于0。
升级了箭头时间库。
错误中现在可用的行和字符编号
版本 0.1.6 (2018-11-12)
解析空字符串时提供更好的错误消息。
版本 0.1.5 (2018-10-30)
修复了新的Flake8错误。
版本 0.1.4 (2018-10-30)
如果映射中存在重复键,提供更好的错误消息。
版本 0.1.3 (2018-10-30)
如果映射中存在重复键,则抛出异常。
版本 0.1.2 (2018-09-04)
在 dumps 中更改映射和列表的格式。尾随的}和]现在在一行下面并位于原始索引处。
版本 0.1.1 (2018-03-13)
指数中有大写 'E' 的十进制数没有被识别。
版本 0.1.0 (2018-01-29)
根据规范更改,映射键不能为null。
版本 0.0.26 (2018-01-29)
根据规范更改,移除了注释 '//'。
根据规范更改,允许十进制指数中使用 'e' 和 'E'。
版本 0.0.25 (2018-01-12)
在未关闭映射的情况下达到文档末尾时提供更好的错误消息。
版本 0.0.24 (2018-01-11)
修复了在映射中,值后的整数(在逗号或 } 之前)不会给出良好错误的错误。
版本 0.0.23 (2018-01-09)
映射键现在不能是列表或映射。
版本 0.0.22 (2018-01-08)
映射键现在可以是任何类型。
已从Zish中删除 set 类型。
Zish现在识别完整的Unicode EOL序列。
已从Zish中删除 float 类型。
修复了当排序具有多个类型键的映射时的错误。
版本 0.0.21 (2018-01-04)
如果文档末尾在完成映射之前到达,则提供更好的错误。
版本 0.0.20 (2018-01-04)
如果有多个顶级值,则提供错误,而不是静默截断。
版本 0.0.19 (2017-09-27)
十进制指数以 E 而不是 d 形式输出。
版本 0.0.18 (2017-09-12)
添加了对浮点格式化的测试。
版本 0.0.17 (2017-09-12)
加强容器类型的解析。
确保浮点数不带大写E进行格式化。
版本 0.0.16 (2017-09-06)
允许列表和集合作为键。
版本 0.0.15 (2017-09-05)
修复了地图解析错误,当预期是冒号:但得到整数时,错误没有正确报告。
版本 0.0.14 (2017-09-05)
修复了无法格式化集合的错误。
版本 0.0.13 (2017-08-30)
性能提升。
版本 0.0.12 (2017-08-30)
添加了Travis配置。
版本 0.0.11 (2017-08-30)
如果字符串未关闭,给出更好的错误信息。
版本 0.0.10 (2017-08-29)
添加了一个新的本地解析器,它不使用antlr。它大约快两倍。
版本 0.0.9 (2017-08-24)
修复了将int解析为Decimal的错误。
使字节类型返回bytes而不是bytearray。
版本 0.0.8 (2017-08-24)
容器类型不允许作为映射键。
性能提升。
版本 0.0.7 (2017-08-22)
修复了UTC时间戳格式化错误。
版本 0.0.6 (2017-08-22)
修复了时间戳格式化错误。
添加了关于注释的说明。
版本 0.0.5 (2017-08-18)
修复了对于tuple,dumps失败的错误。
版本 0.0.4 (2017-08-15)
简化整数类型。
版本 0.0.3 (2017-08-09)
修复了解释器无法在eggs中找到zish.antlr包的错误。
删除了一些不必要的转义序列。
版本 0.0.2 (2017-08-05)
现在使用RFC3339进行时间戳。
版本 0.0.1 (2017-08-03)
修复了EOF可能导致无限循环的错误。
版本 0.0.0 (2017-08-01)
第一个公开版本。通过所有测试。