包含amazonbraket模式的开源库

amazon-braket-schemas的Python项目详细描述


Amazon Braket Python模式

Latest VersionSupported Python VersionsCode Style: BlackDocumentation Status

Amazon Braket Python Schemas是一个开源库,包含Braket的模式,包括:

  • Amazon Braket quantum任务的中间表示(IR),并提供这些IR有效负载的序列化和反序列化。可以把IR看作是amazonbraketsdk和amazonbraketapi之间的量子程序合同。在
  • 每个量子任务的S3结果的模式
  • 每个设备的设备功能的架构

安装

先决条件

  • Python 3.7+

步骤

获取amazonbraketpython模式的首选方法是安装Amazon Braket Python SDK,这将引入模式。 按照README中的说明进行安装。在

但是,如果只想使用架构,则可以按如下方式自行安装:

pip install amazon-braket-schemas

通过克隆此存储库并在存储库的根目录中运行pip install命令,可以从源代码进行安装:

^{pr2}$

您可以使用pip show检查当前安装的amazon-braket-schemas版本:

pip show amazon-braket-schemas

或者在Python中:

>>> import braket._schemas as braket_schemas
>>> braket_schemas.__version__

使用

目前有两种类型的IR,包括jacqd(JsonAwsQuantumCircuitDescription)和退火。其用法见下文。在

序列化python结构

frombraket.ir.jaqcdimportCNot,H,Program,Expectationfrombraket.ir.annealingimportProblem,ProblemTypeprogram=Program(instructions=[H(target=0),CNot(control=0,target=1)])print(program.json(indent=2))"""{  "braketSchemaHeader": {    "name": "braket.ir.jaqcd.program",    "version": "1"  },  "instructions": [    {      "target": 0,      "type": "h"    },    {      "control": 0,      "target": 1,      "type": "cnot"    }  ],  "results": null,  "basis_rotation_instructions": null,}"""program=Program(instructions=[H(target=0),CNot(control=0,target=1)],results=[Expectation(targets=[0],observable=['x'])],basis_rotation_instructions=[H(target=0)])print(program.json(indent=2))"""{  "braketSchemaHeader": {    "name": "braket.ir.jaqcd.program",    "version": "1"  },  "instructions": [    {      "target": 0,      "type": "h"    },    {      "control": 0,      "target": 1,      "type": "cnot"    }  ],  "results": [    {      "observable": [        "x"      ],      "targets": [        0      ],      "type": "expectation"    }  ],  "basis_rotation_instructions": [    {      "target": 0,      "type": "h"    }  ]}"""problem=Problem(type=ProblemType.QUBO,linear={0:0.3,4:-0.3},quadratic={"0,5":0.667})print(problem.json(indent=2))"""{  "braketSchemaHeader": {    "name": "braket.ir.annealing.problem",    "version": "1"  },  "type": "QUBO",  "linear": {0: 0.3, 4: -0.3},  "quadratic": {"0,5": 0.667}}"""

反序列化为python结构

frombraket.ir.jaqcdimportProgramfrombraket.ir.annealingimportProblemjaqcd_string="""{  "instructions": [    {      "target": 0,      "type": "h"    },    {      "control": 0,      "target": 1,      "type": "cnot"    }  ],  "results": [    {      "observable": [        "x"      ],      "targets": [        0      ],      "type": "expectation"    }  ],  "basis_rotation_instructions": [    {      "target": 0,      "type": "h"    }  ]}"""program=Program.parse_raw(jaqcd_string)print(program)"""braketSchemaHeader=BraketSchemaHeader(name='braket.ir.jaqcd.program', version='1') instructions=[H(target=0, type=<Type.h: 'h'>), CNot(control=0, target=1, type=<Type.cnot: 'cnot'>)] results=[Expectation(observable=['x'], targets=[0], type=<Type.expectation: 'expectation'>)] basis_rotation_instructions=[H(target=0, type=<Type.h: 'h'>)]"""annealing_string="""{  "type": "QUBO",  "linear": {0: 0.3, 4: -0.3},  "quadratic": {"0,5": 0.667}}"""problem=Problem.parse_raw(annealing_string)print(problem)"""braketSchemaHeader=BraketSchemaHeader(name='braket.ir.annealing.problem', version='1') type=<ProblemType.QUBO: 'QUBO'>, linear={0: 0.3, 4: -0.3}, quadratic={'0,5': 0.667}"""

文件

包括API引用在内的详细文档可以在Read the Docs上找到。在

也可以从源生成单据。首先,安装tox:

pip install tox

要构建Sphinx文档,请在根repo目录中运行以下命令:

tox -e docs

然后可以在build/documentation/html中找到生成的HTML文件。在

测试

请确保首先安装测试依赖项:

pip install -e "amazon-braket-schemas-python[test]"

要运行单元测试:

tox -e unit-tests

还可以传入各种pytest参数以运行选定的测试:

tox -e unit-tests -- your-arguments

要运行linters和doc生成器以及单元测试,请执行以下操作:

tox

有关详细信息,请参阅pytest usage。在

许可证

这个项目是在Apache-2.0许可下授权的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中的安卓返回数组   java Singleton对象的Spy正在Junit中调用real方法,而方法模拟在为模拟对象同时运行所有测试时不起作用   使用ClasspathSuite的java参数化测试   java图论:桥、块和连接点   firefox中按钮元素内span上的java指令不起作用   Spark上的java DataStax where条件   为什么是javax。ws。rs.core。回答无法在junit测试用例中创建ResponseBuilder对象   java@PostMapping与多个RequestBody   java为什么有时需要在“包”之前运行“build”?   格式化文本输出JavaSE   java无法解析jsonobject“jsonobject文本必须在的字符1处以“{”开头”   64位Windows 7下java程序与C++程序的C++ STDIN/STDUT通信   java如何通过appium与facebook api通信   在java冻结中调试打印中间步骤