Generate qiskit-transpiler-service 0.4.5 (#1824)

This means that we now have our first historical version of
qiskit-transpiler-service: 0.3. So, we need to update
`checkInternalLinks.ts` to start checking historical versions.

We don't yet add a dev version because it's annoying to maintain and the
users are too few for now.
This commit is contained in:
Eric Arellano 2024-08-14 15:07:51 -04:00 committed by GitHub
parent dfb0ce1dd5
commit 77693035ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 880 additions and 12 deletions

View File

@ -0,0 +1,4 @@
{
"name": "qiskit-transpiler-service",
"version": "0.3.0"
}

View File

@ -0,0 +1,65 @@
{
"title": "Qiskit Transpiler Service Client",
"children": [
{
"title": "API index",
"url": "/api/qiskit-transpiler-service/0.3"
},
{
"title": "qiskit_transpiler_service.ai",
"children": [
{
"title": "Module overview",
"url": "/api/qiskit-transpiler-service/0.3/ai"
},
{
"title": "AICliffordSynthesis",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.AICliffordSynthesis"
},
{
"title": "AILinearFunctionSynthesis",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.AILinearFunctionSynthesis"
},
{
"title": "AIPermutationSynthesis",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.AIPermutationSynthesis"
},
{
"title": "AIRouting",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.AIRouting"
},
{
"title": "CollectCliffords",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.CollectCliffords"
},
{
"title": "CollectLinearFunctions",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.CollectLinearFunctions"
},
{
"title": "CollectPermutations",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.ai.CollectPermutations"
}
]
},
{
"title": "qiskit_transpiler_service.transpiler_service",
"children": [
{
"title": "Module overview",
"url": "/api/qiskit-transpiler-service/0.3/transpiler_service"
},
{
"title": "TranspilerService",
"url": "/api/qiskit-transpiler-service/0.3/qiskit_transpiler_service.transpiler_service.TranspilerService"
}
]
},
{
"title": "qiskit_transpiler_service.utils",
"url": "/api/qiskit-transpiler-service/0.3/utils"
}
],
"collapsed": true
}

View File

@ -0,0 +1,30 @@
---
title: ai
description: API reference for qiskit_transpiler_service.ai
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit_transpiler_service.ai
---
<span id="ai-qiskit-transpiler-service-ai" />
<span id="module-qiskit_transpiler_service.ai" />
# AI
<span id="module-qiskit_transpiler_service.ai" />
`qiskit_transpiler_service.ai`
## Classes
| | |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| [`AIRouting`](qiskit_transpiler_service.ai.AIRouting "qiskit_transpiler_service.ai.AIRouting")(\[backend\_name, coupling\_map, ...]) | The AIRouting pass acts both as a layout stage and a routing stage. |
| [`AICliffordSynthesis`](qiskit_transpiler_service.ai.AICliffordSynthesis "qiskit_transpiler_service.ai.AICliffordSynthesis")(backend\_name\[, ...]) | Synthesis for Clifford circuits (blocks of H, S and CX gates). |
| [`AILinearFunctionSynthesis`](qiskit_transpiler_service.ai.AILinearFunctionSynthesis "qiskit_transpiler_service.ai.AILinearFunctionSynthesis")(backend\_name\[, ...]) | Synthesis for Linear Function circuits (blocks of CX and SWAP gates). |
| [`AIPermutationSynthesis`](qiskit_transpiler_service.ai.AIPermutationSynthesis "qiskit_transpiler_service.ai.AIPermutationSynthesis")(backend\_name\[, ...]) | Synthesis for Permutation circuits (blocks of SWAP gates). |
| [`CollectCliffords`](qiskit_transpiler_service.ai.CollectCliffords "qiskit_transpiler_service.ai.CollectCliffords")(\[do\_commutative\_analysis, ...]) | Collects Clifford blocks as Instruction objects and stores the original sub-circuit to compare against it after synthesis. |
| [`CollectLinearFunctions`](qiskit_transpiler_service.ai.CollectLinearFunctions "qiskit_transpiler_service.ai.CollectLinearFunctions")(\[...]) | Collects blocks of SWAP and CX as LinearFunction objects and stores the original sub-circuit to compare against it after synthesis. |
| [`CollectPermutations`](qiskit_transpiler_service.ai.CollectPermutations "qiskit_transpiler_service.ai.CollectPermutations")(\[...]) | Collects blocks of SWAP circuits as Permutations. |

View File

@ -0,0 +1,11 @@
---
title: Qiskit Transpiler Service Client Docs
description: API documentation for the qiskit-transpiler-service client
---
# qiskit-transpiler-service API reference
* [AI (`qiskit_transpiler_service.ai`)](ai)
* [Qiskit Transpiler Service (`qiskit_transpiler_service.transpiler_service`)](transpiler_service)
* [Utilities (`qiskit_transpiler_service.utils`)](utils)

View File

@ -0,0 +1,91 @@
---
title: AICliffordSynthesis
description: API reference for qiskit_transpiler_service.ai.AICliffordSynthesis
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.AICliffordSynthesis
---
# AICliffordSynthesis
<Class id="qiskit_transpiler_service.ai.AICliffordSynthesis" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.AICliffordSynthesis(backend_name: str, replace_only_if_better: bool = True, max_threads: int | None = None)" modifiers="class">
Bases: `AISynthesis`
Synthesis for Clifford circuits (blocks of H, S and CX gates). Currently up to 9 qubit blocks.
**Parameters**
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")) Name of the backend used for doing the AI Clifford synthesis.
* **replace\_only\_if\_better** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Determine if replace the original circuit with the synthesized one if its better, defaults to True.
* **max\_threads** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the number of requests to send in parallel.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.run" signature="run(dag)">
Run a pass on the DAGCircuit. This is implemented by the pass developer.
**Parameters**
**dag** ([*DAGCircuit*](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.1)")) the dag on which the pass is run.
**Raises**
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.synth_node" signature="synth_node(node)" />
### update\_status
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,91 @@
---
title: AILinearFunctionSynthesis
description: API reference for qiskit_transpiler_service.ai.AILinearFunctionSynthesis
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.AILinearFunctionSynthesis
---
# AILinearFunctionSynthesis
<Class id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.AILinearFunctionSynthesis(backend_name: str, replace_only_if_better: bool = True, max_threads: int | None = None)" modifiers="class">
Bases: `AISynthesis`
Synthesis for Linear Function circuits (blocks of CX and SWAP gates). Currently up to 9 qubit blocks.
**Parameters**
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")) Name of the backend used for doing the AI Linear Function synthesis.
* **replace\_only\_if\_better** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Determine if replace the original circuit with the synthesized one if its better, defaults to True.
* **max\_threads** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the number of requests to send in parallel.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.run" signature="run(dag)">
Run a pass on the DAGCircuit. This is implemented by the pass developer.
**Parameters**
**dag** ([*DAGCircuit*](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.1)")) the dag on which the pass is run.
**Raises**
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.synth_node" signature="synth_node(node)" />
### update\_status
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,91 @@
---
title: AIPermutationSynthesis
description: API reference for qiskit_transpiler_service.ai.AIPermutationSynthesis
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.AIPermutationSynthesis
---
# AIPermutationSynthesis
<Class id="qiskit_transpiler_service.ai.AIPermutationSynthesis" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.AIPermutationSynthesis(backend_name: str, replace_only_if_better: bool = True, max_threads: int | None = None)" modifiers="class">
Bases: `AISynthesis`
Synthesis for Permutation circuits (blocks of SWAP gates). Currently available for 65, 33, and 27 qubit blocks.
**Parameters**
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")) Name of the backend used for doing the AI Linear Function synthesis.
* **replace\_only\_if\_better** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Determine if replace the original circuit with the synthesized one if its better, defaults to True.
* **max\_threads** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the number of requests to send in parallel.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.run" signature="run(dag)">
Run a pass on the DAGCircuit. This is implemented by the pass developer.
**Parameters**
**dag** ([*DAGCircuit*](/api/qiskit/qiskit.dagcircuit.DAGCircuit "(in Qiskit v1.1)")) the dag on which the pass is run.
**Raises**
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.synth_node" signature="synth_node(node)" />
### update\_status
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,97 @@
---
title: AIRouting
description: API reference for qiskit_transpiler_service.ai.AIRouting
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.AIRouting
---
# AIRouting
<Class id="qiskit_transpiler_service.ai.AIRouting" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.AIRouting(backend_name: str | None = None, coupling_map: list[list[int]] | None = None, optimization_level: int = 2, layout_mode: str = 'OPTIMIZE')" modifiers="class">
Bases: [`TransformationPass`](/api/qiskit/qiskit.transpiler.TransformationPass "(in Qiskit v1.1)")
The AIRouting pass acts both as a layout stage and a routing stage.
**Parameters**
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")*, optional*) Name of the backend used for doing the transpilation.
* **coupling\_map** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*]], optional*) A list of pairs that represents physical links between qubits.
* **optimization\_level** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")) With a range from 1 to 3, determines the computational effort to spend in the process (higher usually gives better results but takes longer), defaults to 2.
* **layout\_mode** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")) Specifies how to handle the layout selection. There are 3 layout modes: keep (respects the layout set by the previous transpiler passes), improve (uses the layout set by the previous transpiler passes as a starting point) and optimize (ignores previous layout selections), defaults to OPTIMIZE.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.AIRouting.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.AIRouting.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.AIRouting.run" signature="run(dag)">
Run the AIRouting pass on dag.
**Parameters**
**dag** (*DAGCircuit*) the directed acyclic graph to be mapped.
**Returns**
A dag mapped to be compatible with the coupling\_map.
**Return type**
DAGCircuit
**Raises**
* **TranspilerError** if the coupling map or the layout are not
* **compatible with the DAG**\*\*, or \*\***if the coupling\_map=None**
</Function>
### update\_status
<Function id="qiskit_transpiler_service.ai.AIRouting.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,89 @@
---
title: CollectCliffords
description: API reference for qiskit_transpiler_service.ai.CollectCliffords
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.CollectCliffords
---
# CollectCliffords
<Class id="qiskit_transpiler_service.ai.CollectCliffords" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.CollectCliffords(do_commutative_analysis: bool = True, min_block_size: int = 2, max_block_size: int = CLIFFORD_MAX_BLOCK_SIZE, collect_from_back: bool = False, num_reps: int = 10)" modifiers="class">
Bases: `RepeatedCollectAndCollapse`
Collects Clifford blocks as Instruction objects and stores the original sub-circuit to compare against it after synthesis.
**Parameters**
* **do\_commutative\_analysis** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Enable or disable commutative analysis, defaults to True
* **min\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the minimum size for blocks generated during the collect Cliffords pass, defaults to 2.
* **max\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the maximum size for blocks generated during the collect Cliffords pass, defaults to 9.
* **collect\_from\_back** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Specify if collect blocks in reverse order or not, defaults to False.
* **num\_reps** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Specify how many times to repeat the optimization process, defaults to 10.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.CollectCliffords.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.CollectCliffords.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.CollectCliffords.run" signature="run(dag)">
Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit
**Returns**
the optimized DAG.
**Return type**
DAGCircuit
</Function>
### update\_status
<Function id="qiskit_transpiler_service.ai.CollectCliffords.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,89 @@
---
title: CollectLinearFunctions
description: API reference for qiskit_transpiler_service.ai.CollectLinearFunctions
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.CollectLinearFunctions
---
# CollectLinearFunctions
<Class id="qiskit_transpiler_service.ai.CollectLinearFunctions" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.CollectLinearFunctions(do_commutative_analysis: bool = True, min_block_size: int = 4, max_block_size: int = LINEAR_MAX_BLOCK_SIZE, collect_from_back: bool = False, num_reps: int = 10)" modifiers="class">
Bases: `RepeatedCollectAndCollapse`
Collects blocks of SWAP and CX as LinearFunction objects and stores the original sub-circuit to compare against it after synthesis.
**Parameters**
* **do\_commutative\_analysis** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Enable or disable commutative analysis, defaults to True
* **min\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the minimum size for blocks generated during the collect linear functions pass, defaults to 4.
* **max\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the maximum size for blocks generated during the collect linear functions pass, defaults to 9.
* **collect\_from\_back** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Specify if collect blocks in reverse order or not, defaults to False.
* **num\_reps** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Specify how many times to repeat the optimization process, defaults to 10.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.CollectLinearFunctions.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.CollectLinearFunctions.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.CollectLinearFunctions.run" signature="run(dag)">
Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit
**Returns**
the optimized DAG.
**Return type**
DAGCircuit
</Function>
### update\_status
<Function id="qiskit_transpiler_service.ai.CollectLinearFunctions.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,89 @@
---
title: CollectPermutations
description: API reference for qiskit_transpiler_service.ai.CollectPermutations
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.ai.CollectPermutations
---
# CollectPermutations
<Class id="qiskit_transpiler_service.ai.CollectPermutations" isDedicatedPage={true} signature="qiskit_transpiler_service.ai.CollectPermutations(do_commutative_analysis: bool = True, min_block_size: int = 4, max_block_size: int = PERMUTATION_MAX_BLOCK_SIZE, collect_from_back: bool = False, num_reps: int = 10)" modifiers="class">
Bases: `RepeatedCollectAndCollapse`
Collects blocks of SWAP circuits as Permutations.
**Parameters**
* **do\_commutative\_analysis** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Enable or disable commutative analysis, defaults to True
* **min\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the minimum size for blocks generated during the collect permutations pass, defaults to 4.
* **max\_block\_size** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Set the maximum size for blocks generated during the collect permutations pass, defaults to 12.
* **collect\_from\_back** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Specify if collect blocks in reverse order or not, defaults to False.
* **num\_reps** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*, optional*) Specify how many times to repeat the optimization process, defaults to 10.
## Methods
### execute
<Function id="qiskit_transpiler_service.ai.CollectPermutations.execute" signature="execute(passmanager_ir, state, callback=None)">
Execute optimization task for input Qiskit IR.
**Parameters**
* **passmanager\_ir** ([*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)")) Qiskit IR to optimize.
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) State associated with workflow execution by the pass manager itself.
* **callback** ([*Callable*](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable "(in Python v3.12)") *| None*) A callback function which is caller per execution of optimization task.
**Returns**
Optimized Qiskit IR and state of the workflow.
**Return type**
[tuple](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.12)")\[[*Any*](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.12)"), [*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")]
</Function>
### name
<Function id="qiskit_transpiler_service.ai.CollectPermutations.name" signature="name()">
Name of the pass.
**Return type**
[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")
</Function>
### run
<Function id="qiskit_transpiler_service.ai.CollectPermutations.run" signature="run(dag)">
Run the CollectLinearFunctions pass on dag. :param dag: the DAG to be optimized. :type dag: DAGCircuit
**Returns**
the optimized DAG.
**Return type**
DAGCircuit
</Function>
### update\_status
<Function id="qiskit_transpiler_service.ai.CollectPermutations.update_status" signature="update_status(state, run_state)">
Update workflow status.
**Parameters**
* **state** ([*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")) Pass manager state to update.
* **run\_state** (*RunState*) Completion status of current task.
**Returns**
Updated pass manager state.
**Return type**
[*PassManagerState*](/api/qiskit/qiskit.passmanager.PassManagerState "(in Qiskit v1.1)")
</Function>
</Class>

View File

@ -0,0 +1,41 @@
---
title: TranspilerService
description: API reference for qiskit_transpiler_service.transpiler_service.TranspilerService
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_transpiler_service.transpiler_service.TranspilerService
---
# TranspilerService
<Class id="qiskit_transpiler_service.transpiler_service.TranspilerService" isDedicatedPage={true} signature="qiskit_transpiler_service.transpiler_service.TranspilerService(optimization_level, ai=True, coupling_map=None, backend_name=None, qiskit_transpile_options=None, ai_layout_mode=None)" modifiers="class">
Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)")
Class for using the transpiler service.
**Parameters**
* **optimization\_level** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")) The optimization level to use during the transpilation. There are 4 optimization levels ranging from 0 to 3, where 0 is intended for not performing any optimizations and 3 spends the most effort to optimize the circuit.
* **ai** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Specifyies if the transpilation should use AI or not, defaults to True.
* **coupling\_map** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*]], optional*) A list of pairs that represents physical links between qubits.
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")*, optional*) Name of the backend used for doing the transpilation.
* **qiskit\_transpile\_options** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")*, optional*) Other options to transpile with qiskit.
* **ai\_layout\_mode** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")*, optional*) Specifies how to handle the layout selection. There are 3 layout modes: keep (respects the layout set by the previous transpiler passes), improve (uses the layout set by the previous transpiler passes as a starting point) and optimize (ignores previous layout selections).
## Methods
### run
<Function id="qiskit_transpiler_service.transpiler_service.TranspilerService.run" signature="run(circuits)">
Transpile the circuit(s) by calling the service /transpile endpoint.
**Parameters**
**circuits** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.12)")*\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)") *|*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.1)")*] |* [*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)") *|*[*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.1)")) circuit(s) to transpile.
**Returns**
The transpiled circuit(s)
</Function>
</Class>

View File

@ -0,0 +1,24 @@
---
title: transpiler_service
description: API reference for qiskit_transpiler_service.transpiler_service
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit_transpiler_service.transpiler_service
---
<span id="qiskit-transpiler-service-qiskit-transpiler-service-transpiler-service" />
<span id="module-qiskit_transpiler_service.transpiler_service" />
# Qiskit Transpiler Service
<span id="module-qiskit_transpiler_service.transpiler_service" />
`qiskit_transpiler_service.transpiler_service`
## Classes
| | |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| [`TranspilerService`](qiskit_transpiler_service.transpiler_service.TranspilerService "qiskit_transpiler_service.transpiler_service.TranspilerService")(optimization\_level\[, ai, ...]) | Class for using the transpiler service. |

View File

@ -0,0 +1,47 @@
---
title: utils
description: API reference for qiskit_transpiler_service.utils
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit_transpiler_service.utils
---
<span id="utilities-qiskit-transpiler-service-utils" />
<span id="module-qiskit_transpiler_service.utils" />
# Utilities
<span id="module-qiskit_transpiler_service.utils" />
`qiskit_transpiler_service.utils`
## Functions
### create\_random\_linear\_function
<Function id="qiskit_transpiler_service.utils.create_random_linear_function" signature="qiskit_transpiler_service.utils.create_random_linear_function(n_qubits, seed=123)">
**Parameters**
* **n\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"))
* **seed** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)"))
**Return type**
[*LinearFunction*](/api/qiskit/qiskit.circuit.library.LinearFunction "(in Qiskit v1.1)")
</Function>
### get\_metrics
<Function id="qiskit_transpiler_service.utils.get_metrics" signature="qiskit_transpiler_service.utils.get_metrics(qc)">
Returns a dict with metrics from a QuantumCircuit
**Parameters**
**qc** ([*QuantumCircuit*](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.1)"))
**Return type**
[dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")]
</Function>

View File

@ -1,4 +1,4 @@
{
"name": "qiskit-transpiler-service",
"version": "0.3.0"
"version": "0.4.5"
}

View File

@ -65,9 +65,9 @@ python_api_name: qiskit_transpiler_service.ai.AICliffordSynthesis
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
### synth\_nodes
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.synth_node" signature="synth_node(node)" />
<Function id="qiskit_transpiler_service.ai.AICliffordSynthesis.synth_nodes" signature="synth_nodes(nodes)" />
### update\_status

View File

@ -65,9 +65,9 @@ python_api_name: qiskit_transpiler_service.ai.AILinearFunctionSynthesis
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
### synth\_nodes
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.synth_node" signature="synth_node(node)" />
<Function id="qiskit_transpiler_service.ai.AILinearFunctionSynthesis.synth_nodes" signature="synth_nodes(nodes)" />
### update\_status

View File

@ -65,9 +65,9 @@ python_api_name: qiskit_transpiler_service.ai.AIPermutationSynthesis
[**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError "(in Python v3.12)") when this is left unimplemented for a pass.
</Function>
### synth\_node
### synth\_nodes
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.synth_node" signature="synth_node(node)" />
<Function id="qiskit_transpiler_service.ai.AIPermutationSynthesis.synth_nodes" signature="synth_nodes(nodes)" />
### update\_status

View File

@ -8,7 +8,7 @@ python_api_name: qiskit_transpiler_service.transpiler_service.TranspilerService
# TranspilerService
<Class id="qiskit_transpiler_service.transpiler_service.TranspilerService" isDedicatedPage={true} signature="qiskit_transpiler_service.transpiler_service.TranspilerService(optimization_level, ai=True, coupling_map=None, backend_name=None, qiskit_transpile_options=None, ai_layout_mode=None)" modifiers="class">
<Class id="qiskit_transpiler_service.transpiler_service.TranspilerService" isDedicatedPage={true} signature="qiskit_transpiler_service.transpiler_service.TranspilerService(optimization_level, ai='true', coupling_map=None, backend_name=None, qiskit_transpile_options=None, ai_layout_mode=None, **kwargs)" modifiers="class">
Bases: [`object`](https://docs.python.org/3/library/functions.html#object "(in Python v3.12)")
Class for using the transpiler service.
@ -16,7 +16,7 @@ python_api_name: qiskit_transpiler_service.transpiler_service.TranspilerService
**Parameters**
* **optimization\_level** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")) The optimization level to use during the transpilation. There are 4 optimization levels ranging from 0 to 3, where 0 is intended for not performing any optimizations and 3 spends the most effort to optimize the circuit.
* **ai** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")*, optional*) Specifyies if the transpilation should use AI or not, defaults to True.
* **ai** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")*, optional*) Specifies if the transpilation should use AI or not, defaults to True.
* **coupling\_map** ([*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*list*](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.12)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")*]], optional*) A list of pairs that represents physical links between qubits.
* **backend\_name** ([*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)")*, optional*) Name of the backend used for doing the transpilation.
* **qiskit\_transpile\_options** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")*, optional*) Other options to transpile with qiskit.

View File

@ -42,6 +42,6 @@ python_api_name: qiskit_transpiler_service.utils
**Return type**
[dict](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.12)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")]
[*Dict*](https://docs.python.org/3/library/typing.html#typing.Dict "(in Python v3.12)")\[[str](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.12)"), [int](https://docs.python.org/3/library/functions.html#int "(in Python v3.12)")]
</Function>

View File

@ -52,6 +52,7 @@
"0.14": "https://ibm.box.com/shared/static/t37e7jjsi0hii4j3xoorwpwso5m03jqn.zip"
},
"qiskit-transpiler-service": {
"0.4": "https://ibm.box.com/shared/static/9y66qk3nim6oejzq8phpctxkt0j6o19z.zip",
"0.3": "https://ibm.box.com/shared/static/qiskfdazhq1dpxcl9b627x9yi60gncb4.zip"
}
}

View File

@ -18556,5 +18556,7 @@
"0.8": {},
"0.9": {}
},
"qiskit-transpiler-service": {}
"qiskit-transpiler-service": {
"0.3": {}
}
}

View File

@ -106,6 +106,7 @@ const RUNTIME_GLOBS_TO_LOAD = [
"docs/guides/*.{mdx,ipynb}",
"docs/migration-guides/*.{mdx,ipynb}",
];
const TRANSPILER_GLOBS_TO_LOAD = ["docs/api/qiskit/*.mdx"];
const QISKIT_GLOBS_TO_LOAD = [
"docs/api/qiskit/release-notes/0.44.mdx",
"docs/api/qiskit/release-notes/0.45.mdx",
@ -130,6 +131,11 @@ async function determineFileBatches(args: Arguments): Promise<FileBatch[]> {
PROVIDER_GLOBS_TO_LOAD,
args.historicalApis,
);
const transpiler = await determineHistoricalFileBatches(
"qiskit-transpiler-service",
TRANSPILER_GLOBS_TO_LOAD,
args.historicalApis,
);
const runtime = await determineHistoricalFileBatches(
"qiskit-ibm-runtime",
RUNTIME_GLOBS_TO_LOAD,
@ -143,7 +149,7 @@ async function determineFileBatches(args: Arguments): Promise<FileBatch[]> {
args.qiskitReleaseNotes,
);
result.push(...provider, ...runtime, ...qiskit);
result.push(...provider, ...transpiler, ...runtime, ...qiskit);
if (args.qiskitReleaseNotes) {
result.push(await determineQiskitLegacyReleaseNotes());