将OpenQASM 2字符串解析为Qiskit电路的导入器
项目描述
从OpenQASM 2到Qiskit的导入器
[!IMPORTANT]
此包已过时。它已被包含在Qiskit本身中,版本为
qiskit==0.43.0
(当时为qiskit-terra==0.24.0
),版本为0.5.3
。不再需要安装此包;只需使用qiskit.qasm2.load
或qiskit.qasm2.loads
。Qiskit版本正在积极开发,此包不再更新。README和包本身中所有关于Qiskit的引用都意味着Qiskit版本
<0.43
,在此包被包含到Qiskit之前。
此存储库提供了Python包qiskit_qasm2
,它提供了OpenQASM 2到Qiskit的QuantumCircuit
的快速解析器。它通常比Qiskit的本地解析器快10倍或更多。API很简单
qiskit_qasm2.load
接受一个文件名,并返回QuantumCircuit
;qiskit_qasm2.loads
接受一个字符串中的OpenQASM 2程序,并返回QuantumCircuit
。
完整的文档发布在https://jakelishman.github.io/qiskit-qasm2。
简单的解析示例
import qiskit_qasm2
program = """
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0], q[1];
measure q -> c;
"""
qiskit_qasm2.loads(program).draw()
┌───┐ ┌─┐
q_0: ┤ H ├──■──┤M├───
└───┘┌─┴─┐└╥┘┌─┐
q_1: ─────┤ X ├─╫─┤M├
└───┘ ║ └╥┘
c: 2/═══════════╩══╩═
0 1
功能
解析器支持OpenQASM 2规范的所有内容,包括
- 寄存器定义和用法(
qreg
和creg
); - 作为特殊内置包含的
qelib1.inc
,正如论文中所述; - 通用包含,可以指定搜索路径;
- 自定义
gate
和opaque
声明; - 门、测量和重置广播;
- 条件门应用、测量和重置;
- 在门参数列表中使用科学计算器函数进行常量折叠;
- 在自定义门体内部的参数上的数学表达式。
此外,解析器还包括以下选项
- 修改OpenQASM 2中
include
语句的搜索路径; - 定义如何将一些命名的OpenQASM 2门应用转换为Qiskit形式的覆盖规则;
- 为OpenQASM 2定义新的内置量子指令;
- 定义新的内置经典科学计算函数。
Qiskit的内置解析器默认添加了一些额外规范,没有选项可以禁用它们。这主要采取自定义门覆盖的形式,以及与论文中的描述相比,Terra的qelib1.inc
版本中各种额外的门。这个解析器比Qiskit的更类型安全,但包含兼容模式,以简化从使用Qiskit解析器的过渡。
安装
使用pip安装最新的qiskit_qasm2
包;
pip install qiskit_qasm2
开发
如果您想为此项目做出贡献,请首先阅读我们的贡献指南。
通过pip安装开发需求来设置您的开发环境;
pip install -r requirements-dev.txt tox
这安装的包比运行时包的依赖项要多一些,因为我们还包含了一些用于测试的工具,例如tox
和pytest
。
您还需要一个有效的Rust工具链。在Linux、macOS或Windows上,最简单的方法是使用rustup安装。
在安装开发需求后,您可以使用以下命令安装包的编辑版本:
pip install -e .
之后,您对库代码所做的任何更改都将在新打开的Python解释器会话中立即呈现。
这个包主要是我学习如何编写底层词法分析器的一些借口。这就是为什么Rust crate不使用任何词法分析器生成库。您可以在文档的开发部分中了解更多关于架构和一些设计决策的信息。
构建文档
在安装开发需求后,命令
tox -e docs
将构建HTML文档,并将其放置在docs/_build/html
中。此存储库的main
分支的文档状态已发布到https://jakelishman.github.io/qiskit-qasm2。
代码风格和代码检查
此存储库的Python组件使用black
格式化,Rust组件使用rustfmt
。您可以通过运行以下命令对所需文件运行这些工具:
tox -e style
可以使用以下命令运行完整的代码检查套件:
tox -e lint
许可证
本项目采用Apache许可证2.0版本授权。
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
qiskit_qasm2-0.5.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 53ae69b9ad6182ba160f8585a194d11044a21edcf1cf91f36d553d22fc41118c |
|
MD5 | dcacf2e6c16ee07ad1b7c6a2f5a3101a |
|
BLAKE2b-256 | 22b5c61cd6ddc10e403ef4205cfd35379fc9a3235b472d7c2fc4d1f22904feb6 |
qiskit_qasm2-0.5.3.1-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28a7a686369f8837b881931ce345a51d86d658c4e4e3bda03d608f4b206be4e4 |
|
MD5 | d7b765a1588ac235e0180e7a84508239 |
|
BLAKE2b-256 | 8c2dc1ee33b06fee7588abeafce06acdac26dfd55681a5eebfff4f3685d2ab0a |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 354c5352bd760aeaa9b0caf1f930cc1865db6aa4c3348f9571e66701e0f111af |
|
MD5 | 208039409e3889880428046208db4035 |
|
BLAKE2b-256 | faa3017d301050645d204f369a97b356887ab6f2d053da5dc1bc0203debf8b1a |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 84643a30da1e3ff80013dc7383fbdaaaaee9cf793a91372ad1f2bacbf5a4592b |
|
MD5 | 03e83a4424b9bbaf4baa2ef16968ccf0 |
|
BLAKE2b-256 | 334c787c12ea5761045bf60b0167f2d25fffe9f612aeaf0e50017e142f498dca |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 608b40d083882b7e67729e1eb835a5a17ee04805794572cc64f56f6a5f6f9f6c |
|
MD5 | 7f8d05e39316323468d4125c51df84d3 |
|
BLAKE2b-256 | 82e63b2141c7c7c1726e21121b546f718b0a17ae9cd20210b6cb577d1950fc63 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f80b1e8e407c28a700b5808f45311e73aafe941e2e93d1ed7c7b36f2b736d459 |
|
MD5 | b85080b3c13f66aaffa428b6ac2b1c19 |
|
BLAKE2b-256 | a6fb1dc4b465e7c39d159664b7ceb1f074df016e6571abeed8bcab9ef7d3717a |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp310-cp310-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 461b0800500fe8d3ce5a8535165620b0923b747038e80c5f197d19917d7943e8 |
|
MD5 | 0e6d503c102a45ceda4616382d411e4f |
|
BLAKE2b-256 | 09f6393ef37bdcaeeafb2367968bc98b7855f770ef109f32fb464e75f65dd274 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a74468bdc0b55692ff124bae8513b752cc40f10710b208ea19e7b358b7e272da |
|
MD5 | 9fe56e8d9e1cc8f1f91cbca2381e6034 |
|
BLAKE2b-256 | 0185a31ad39ccdbc6e4957db70db0e31bb668bc7dfee66cd284465137b87cb17 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 346f1e5a17344aa3c2c8a3f28b3a0bc6594d4f8e9e9f93fba4b07b041055f16f |
|
MD5 | 13f32cf0861fc19236968b30f886da02 |
|
BLAKE2b-256 | 64f8b827c8be8581fe94dce1e7b937fb11e669e9514fce27488bf99b1bf10a4e |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6463c133799a871ee45f28b6176f5b3f0a74b7da039d73ddc806fb626a035195 |
|
MD5 | d1cbbd10954214e2e21a450b671d2eb2 |
|
BLAKE2b-256 | 8583308e9c74b461d6a41ac0848db02d5ab9de264c8610fd5b91c385fc44e318 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ca93a137c0e116917858c7689dcc53e2bc7ad060c416f270221bda6133cef973 |
|
MD5 | 7506354ab3767411523065bfc2df7d93 |
|
BLAKE2b-256 | bf51b4ccac76437345765964a117ab5209fabaf3cdc1b7525d9798feff62ca4b |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a0d72ff8feb176a6094db96293424c50e39fae0902c3682bad70f52ef373b8d1 |
|
MD5 | 844dce026d427c8a452db3d6137e8a2d |
|
BLAKE2b-256 | d51360691d1de5c1e1c839e0a3bb8b961a6522069a2553ff52ae86f188026b9b |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89285a31a21d7c926c1f94bba97e9ab68b37a764862258ed94a05b8314dc0967 |
|
MD5 | 2a28ae2d0f2ec9968d0505ce172d23de |
|
BLAKE2b-256 | 474199534316c5b876d04ac954cd120676d4f13ada6b0e5ea59142a1dec73143 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea5d6043834db660d0563cc9b6f0fc8328ef12f8514215d578ab0bfafcb0f2d1 |
|
MD5 | 8b9abdf0c9ed1bb5c7d8a49d961cfdbb |
|
BLAKE2b-256 | 9ae9bb6784589d7d7a6269a2e3dcd7a0cdab0258764ac0367640e6d5728af95b |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a94f194db5db83ad101d359773e31e93d986dfe761a72618e91aedb368a63f35 |
|
MD5 | b80952173c29849294c129d9400a9bd3 |
|
BLAKE2b-256 | 3369154acd30c435422be130e4d7a26e1f6bd9a479970f7d7bf29161e5ef0146 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28e96915a555c4d712db5b97118a87c99e50d86f5721ef03a8ff57f116890fa4 |
|
MD5 | 1f76ece215f3cdccfdf86957b3360cce |
|
BLAKE2b-256 | 167c6b3aad86cfb1e75eb0522d425b3ddc4567561803cd038a2a6986f4116572 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e8b3edf123b8f0b80a4e2a92814ed42cde2ee31cd8dc58a530952ef84fec979 |
|
MD5 | c304596f22379a31a3ad4afb8436a02a |
|
BLAKE2b-256 | 9fd32c6e936756e06a6f97475c28bca3ca026795ac50deacc59c53b741d17665 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81b50cdc54ecf8963aeb934ab08716810d3aa9897eb92e9a757b4265d0c1e67d |
|
MD5 | b174c65e6178a60d44e9b344017ef58a |
|
BLAKE2b-256 | 20ef258ff2bcadf536b7dddd29da74fd67e23f6d123fd19d4b284f8ed38a0d9f |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b838fcf21c6775f1286485cc8c0574dbe7f2da6776faac6437864f2664db58be |
|
MD5 | 5c22848936d3e03a6f49e5c97fea7f06 |
|
BLAKE2b-256 | f2932a61912c56522b380d68cb7380d0798e21afee4a9ac8b457d5d20bbacd7e |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp37-cp37m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bbc3da7d1fa364dac6c83d905b629141900139f3d3b8491ee62b51520e71d912 |
|
MD5 | d9749ce91c952f688443b4d837bc2448 |
|
BLAKE2b-256 | 6c54fbfeb1e2d782c6c511944b3025cc242fa6c5bdaf36373947fef29502a704 |
哈希值 用于 qiskit_qasm2-0.5.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 766ceaf4f6a14861ae08839b7206c0a0e140ecfb866fa48d32548ad6128a0949 |
|
MD5 | 9d35e4d63e7d4d9a5895032182f98109 |
|
BLAKE2b-256 | 8edc9a8b480d2b892bf11b4fcac14583c1e61681d4a1c11d4d2438d1b7e83449 |
哈希值用于qiskit_qasm2-0.5.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e99e77789c1e607dbb2bbddc66fa50c6916aae912120b6ca8fd9a8c95ecca28b |
|
MD5 | 02ab4b4b598c62c05ac88d29ce7c0b71 |
|
BLAKE2b-256 | a6335c875e103e4dd9d349f29c615431de3360f7b34c2fb274b053b42e39fa5b |
哈希值用于qiskit_qasm2-0.5.3.1-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c6c4089998714f7309d793aa03d3b5507ac70f1224bcceee152b04426149121 |
|
MD5 | af0e120c90a5cf061569b9348dd07df7 |
|
BLAKE2b-256 | f2e4323bfb25ab3c8491710b791bd9da30dda4a0c962dd8a8912f7cefb1e45cf |