跳转到主要内容

Python中引用OpenQASM AST

项目描述

OpenQASM 3 Python参考

LicenseRelease

《openqasm3》包包含表示OpenQASM 3程序的参考抽象语法树(AST),将文本解析为该AST的工具,以及操作AST的工具。

AST旨在帮助在Python中编写OpenQASM 3的编译器遍历。它旨在为使用Python树结构的用户不依赖任何库,将字符串解析为这种树结构的依赖性最小。

该包包括以下模块

  • openqasm3.ast:AST节点。

  • openqasm3.parser:基于ANTLR语法的解析器,以及在此存储库中找到的参考解析器。它遍历ANTLR解析树以生成AST。

  • openqasm3.visitor:一个基本AST访问者和转换器。

  • tests:一组单元测试。

注意:此参考Python包目前处于开发初期阶段,此时API的任何部分都不应被视为稳定。AST自身也将以向后不兼容的方式发生变化,反映了OpenQASM 3语言的开发。

安装

您可以使用以下命令从PyPI(pip)安装此包

python -m pip install openqasm3

如果您想使用解析器,则需要安装额外的parser,而要运行测试,则需要额外的tests,例如pip install openqasm3[tests]。所有额外组件都可以通过目标openqasm3[all]安装。

开发环境

要进行开发,您需要拥有完整的ANTLR安装(不仅仅是运行时),以及来自主要OpenQASM存储库的ANTLR语法文件。

设置ANTLR

如果您使用Linux,则可以使用系统包管理器获取ANTLR的副本,或者从macOS上的Homebrewbrew)获取。否则,您可以按照这些说明进行操作。请记下您安装的ANTLR版本,因为您需要确保您的antlr4-python3-runtime版本与次要版本相匹配。

安装ANTLR后,切换到qasm3*.g4文件所在的目录(例如,repo_root/source/grammar),然后运行

<antlr command> -o <path to here>/openqasm3/_antlr/_<major>_<minor> -Dlanguage=Python3 -visitor qasm3Lexer.g4 qasm3Parser.g4

例如,如果此存储库已克隆到~/openqasm,并且运行ANTLR 4.11.1的命令是antlr4,则应运行

cd ~/openqasm/source/grammar
antlr4 -o ~/openqasm/source/openqasm/openqasm3/_antlr/_4_11 -Dlanguage=Python3 -visitor qasm3Lexer.g4 qasm3Parser.g4

您可以同时安装多个ANTLR文件版本,前提是将它们放入正确的版本目录中。当导入时,包将根据安装的antlr4_python3_runtime版本动态选择正确的版本。

开发工具

使用以下命令安装其余的Python开发环境

python -m pip install -r requirements.txt -r requirements-dev.txt

确保antlr4-python3-runtime的版本与ANTLR的版本完全匹配。

使用以下命令以可编辑模式安装Python包

python -m pip install -e .

项目配置为使用代码格式化器black、代码检查器pylint和测试器pytest。运行这些命令的分别

black .
pylint .
pytest

部署流程

部署主要由GitHub Actions管道管理,由形式为ast-py/v<version>的标签触发。例如,对于包版本0.4.0,标签应为ast-py/v0.4.0

要部署

  1. 创建一个PR,将__init__.pydocs/conf.py中的包版本号设置为应设置的内容。
  2. PR合并后,对合并提交进行标记(例如,git fetch origin; git tag -m "Python AST 0.4.0" ast-py/v0.4.0 origin/main)。
  3. 将标签推送到此存储库(例如,git push origin ast-py/v0.4.0)。

此时,部署管道将接管并将包部署到PyPI。您应该能够在此存储库的操作标签页中看到进度。

项目详情


下载文件

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

源代码分发

openqasm3-1.0.0.tar.gz (534.5 kB 查看哈希值)

上传时间 源代码

构建分发

openqasm3-1.0.0-py3-none-any.whl (539.8 kB 查看哈希值)

上传时间 Python 3

支持者