跳转到主要内容

一个使用ANTLR的Zish格式Python库。

项目描述

一个用于Zish格式的Python库,遵循MIT-0许可协议

Build Status

安装

  • 创建虚拟环境: python3 -m venv venv

  • 激活虚拟环境: source venv/bin/activate

  • 安装: pip install zish_antlr

快速入门

从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类型映射

Python类型

类型

布尔型

布尔型

整型

整数

字符串

字符串

datetime.datetime

时间戳

字典

映射

decimal.Decimal

十进制

浮点型

十进制

字节数组

字节

字节

字节

列表

列表

元组

列表

贡献

有用的链接

运行测试

  • 切换到 zish_python_antlr 目录: cd zish_python_antlr

  • 创建虚拟环境: python3 -m venv venv

  • 激活虚拟环境: source venv/bin/activate

  • 安装 tox: pip install tox

  • 运行 tox: tox

核心解析器使用来自 Zish 语法的 ANTLR 创建。要创建解析器文件,请转到 zish/antlr 目录,下载 ANTLR jar 然后运行以下命令

java -jar antlr-4.11.1-complete.jar -Dlanguage=Python3 Zish.g4

发布新版本

  • 运行 tox 确保所有测试通过

  • 更新 发行说明 部分。

  • 确保已安装 buildtwinepip install wheel twine

然后执行

git tag -a x.y.z -m "version x.y.z"
rm -r dist
python -m build
twine upload --sign dist/*

发布说明

版本 0.0.14 (2022-10-30)

  • U+00A0 非断行空格现在被视为空白。

版本 0.0.13 (2021-04-04)

  • 列表和映射中的尾随逗号现在允许使用。

版本 0.0.12 (2017-09-07)

  • 重命名为 zish_antlr 以区分 zish

版本 0.0.11 (2017-09-07)

  • 之前的版本上传到 PyPI 失败。

版本 0.0.10 (2017-09-07)

  • 允许列表和集合作为映射的键。

版本 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)

  • 修复了 dumps 对于 tuple 失败的错误。

版本 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)

  • 第一个公开版本。所有测试通过。

项目详情


下载文件

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

源分发

zish_antlr-0.0.14.tar.gz (18.8 kB 查看哈希值)

上传时间

构建分发

zish_antlr-0.0.14-py3-none-any.whl (14.5 kB 查看哈希值)

上传时间 Python 3

由以下支持