跳转到主要内容

Python的递归解析工具集

项目描述

parsemon2

这是将单调解析带到Python的又一次尝试。作者认为许多其他实现的问题在于它们的组合性有限。很多时候,这些原本写得相当好的实现因为Python缺乏TCO而受到很大影响。这个实现使用跳跃点来解决这个问题。

目前这个实现只是一个玩具,但这个包中的测试已经表明,它的解析能力不依赖于Python的递归限制。

我们还有错误信息。

包中包含一个(经过测试!)的JSON解析器的示例实现。更多信息请参阅src/parsemon/json.py

安装

此包应在PyPI上作为manylinux_2_24_x86_64 wheel提供。在最新的Linux机器上,pip应该能够很好地完成任务。

pip install parsemon2

目前不支持MS Windows和macOS。

构建包

可以从源代码以多种方式构建包。

从sdist构建

您需要安装Rust工具链。检查您的GNU/Linux发行版以了解如何安装它。另一个有用的资源是 https://rust-lang.net.cn/tools/install

现在您可以使用pip从源代码构建包

pip install setuptools_rust wheel
pip wheel parsemon2 --no-binary :all:

现在您的工作目录中应该有您平台的wheel文件。

从存储库构建

由于存储库中包含一个有用的构建脚本,使用docker是构建wheel的最简单方法。确保您的用户有权访问docker。有关如何安装docker的更多信息,请参阅您系统的文档。

安装了docker后,在源代码存储库的根目录中运行以下命令:

bin/build-wheels

程序完成后,您应在 dist/ 目录中找到各种 Python 版本的轮子。

文档

如果您想了解这个库,我们建议您查看我们的 readthedocs 页面

变更

3.2.2

  • 进一步的性能改进

3.2.1

  • 修复了错误处理代码中的小错误

3.2.0

  • 轻微的性能改进

  • 实现重复组合器,它尝试运行指定次数的解析器

3.1.0

  • 进行了重大性能改进

  • 修复了 json 示例解析器中的小错误

3.0.1

  • 更新 README

3.0

  • 移除 pyrsistent deque 实现

  • 提高 fmap 性能

  • 实现输入结束解析器

  • run_parser 现在返回一个 ParsingResult 对象,而不是提供的解析器的原始值

  • run_parser 不会在解析器没有消耗所有提供的输入时失败

  • 移除了 NotEnouhInput 异常。

  • 停止对 Python 3.6 的官方支持

  • 更改 until 解析器的语义。

2.0

  • 使用 do 构建的解析器现在可以接受参数

  • 新解析器:parsmon.basic.floating_point

  • 为解析器实现 x | y 操作符,它是 choice(x,y) 的简写

  • 解析速度提高 4-6 倍

  • 此包中包含一个解析器的示例。这是世界上速度最慢的 json 解析器

1.1

  • 实现验证器

  • chain 现在接受 1 个或多个参数

  • 实现 do 表示法

  • 新空白解析器

  • 新整数解析器

项目详情


下载文件

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

源分布

parsemon2-3.2.2.tar.gz (32.1 kB 查看哈希值)

上传时间

构建分布

parsemon2-3.2.2-cp39-cp39-manylinux_2_24_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.24+ x86_64

parsemon2-3.2.2-cp38-cp38-manylinux_2_24_x86_64.whl (910.9 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.24+ x86_64

parsemon2-3.2.2-cp38-cp38-manylinux2014_x86_64.whl (910.9 kB 查看哈希值)

上传于 CPython 3.8

parsemon2-3.2.2-cp37-cp37m-manylinux_2_24_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.24+ x86-64

parsemon2-3.2.2-cp36-cp36m-manylinux_2_24_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.24+ x86-64

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面