Module-level docstrings for Terra (#3325)

* add tools.jupyter docs

* execute device visualizations

* add examples to QuantumCircuit and execute

* lint

* update execute docs

* add basicaer docs

* Add workaround for running with IBMQ examples everywhere

* updates

* lint

* Add graphviz to docs job

* add extensions module-level docstirngs

* more module level docs

* updates

* more updates

* transpiler docs and lint

* all but tools

* jupyter tools

* fix import issue

* tools module

* remove automod

* new line

* fix test using function with wrong name

* updates
This commit is contained in:
Paul Nation 2019-11-06 11:46:45 -07:00 committed by mergify[bot]
parent 2ba8f299df
commit 9134634f43
75 changed files with 1071 additions and 438 deletions

View File

@ -212,6 +212,7 @@ stages:
python -m pip install --upgrade pip
pip install -U tox
python setup.py build_ext --inplace
sudo apt install -y graphviz
displayName: 'Install dependencies'
- bash: |
tox -edocs -- -j auto

View File

@ -1,13 +1,6 @@
.. _qiskit-assembler:
****************
qiskit.assembler
****************
.. currentmodule:: qiskit.assembler
.. automodapi:: qiskit.assembler
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.assembler
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-compiler:
***************
qiskit.compiler
***************
.. currentmodule:: qiskit.compiler
.. automodapi:: qiskit.compiler
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.compiler
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-converters:
*****************
qiskit.converters
*****************
.. currentmodule:: qiskit.converters
.. automodapi:: qiskit.converters
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.converters
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-dagcircuit:
*****************
qiskit.dagcircuit
*****************
.. currentmodule:: qiskit.dagcircuit
.. automodapi:: qiskit.dagcircuit
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.dagcircuit
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,9 +1,6 @@
.. _qiskit-execute:
**************
qiskit.execute
**************
.. currentmodule:: qiskit.execute
.. autofunction:: execute
.. automodule:: qiskit.execute
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-extensions:
.. automodule:: qiskit.extensions
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,21 +0,0 @@
.. _qiskit-extensions:
*****************
qiskit.extensions
*****************
.. currentmodule:: qiskit.extensions
.. automodapi:: qiskit.extensions
:no-heading:
:no-inheritance-diagram:
Submodules
==========
.. toctree::
:maxdepth: 1
simulator
standard

View File

@ -1,13 +0,0 @@
.. _qiskit-extensions-simulator:
***************************
qiskit.extensions.simulator
***************************
.. currentmodule:: qiskit.extensions.simulator
.. automodapi:: qiskit.extensions.simulator
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-extensions-standard:
**************************
qiskit.extensions.standard
**************************
.. currentmodule:: qiskit.extensions.standard
.. automodapi:: qiskit.extensions.standard
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-providers:
.. automodule:: qiskit.providers
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-providers-basicaer:
*************************
qiskit.providers.basicaer
*************************
.. currentmodule:: qiskit.providers.basicaer
.. automodapi:: qiskit.providers.basicaer
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-providers-models:
***********************
qiskit.providers.models
***********************
.. currentmodule:: qiskit.providers.models
.. automodapi:: qiskit.providers.models
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,22 +0,0 @@
.. _qiskit-providers:
****************
qiskit.providers
****************
.. currentmodule:: qiskit.providers
.. automodapi:: qiskit.providers
:no-heading:
:no-inheritance-diagram:
:inherited-members:
Submodules
==========
.. toctree::
:maxdepth: 1
basicaer
models

View File

@ -0,0 +1,6 @@
.. _qiskit-providers-basicaer:
.. automodule:: qiskit.providers.basicaer
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-providers-models:
.. automodule:: qiskit.providers.models
:no-members:
:no-inherited-members:
:no-special-members:

6
docs/apidocs/pulse.rst Normal file
View File

@ -0,0 +1,6 @@
.. _qiskit-pulse:
.. automodule:: qiskit.pulse
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-pulse:
************
qiskit.pulse
************
.. currentmodule:: qiskit.pulse
.. automodapi:: qiskit.pulse
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-qasm:
************
qiskit.qasm
************
.. currentmodule:: qiskit.qasm
.. automodapi:: qiskit.qasm
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.qasm
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -7,20 +7,27 @@ API Reference
.. toctree::
:maxdepth: 1
assembler
circuit
compiler
converters
dagcircuit
execute
extensions/extensions
providers/providers
pulse/pulse
visualization
converters
assembler
dagcircuit
extensions
providers_basicaer
providers
providers_models
pulse
scheduler
qasm
qobj
quantum_info/quantum_info
quantum_info
result
tools/tools
transpiler/transpiler
tools
tools_jupyter
transpiler
transpiler_passes
transpiler_preset
validation
visualization

View File

@ -1,13 +1,6 @@
.. _qiskit-qobj:
***********
qiskit.qobj
***********
.. currentmodule:: qiskit.qobj
.. automodapi:: qiskit.qobj
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.qobj
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-quantum_info:
.. automodule:: qiskit.quantum_info
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,20 +0,0 @@
.. _qiskit-quantum_info:
*******************
qiskit.quantum_info
*******************
.. currentmodule:: qiskit.quantum_info
.. automodapi:: qiskit.quantum_info
:no-heading:
:no-inheritance-diagram:
Submodules
==========
.. toctree::
:maxdepth: 1
synthesis/synthesis

View File

@ -1,13 +0,0 @@
.. _qiskit-quantum_info-synthesis:
*****************************
qiskit.quantum_info.synthesis
*****************************
.. currentmodule:: qiskit.quantum_info.synthesis
.. automodapi:: qiskit.quantum_info.synthesis
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-result:
*************
qiskit.result
*************
.. currentmodule:: qiskit.result
.. automodapi:: qiskit.result
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.result
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-scheduler:
.. automodule:: qiskit.scheduler
:no-members:
:no-inherited-members:
:no-special-members:

6
docs/apidocs/tools.rst Normal file
View File

@ -0,0 +1,6 @@
.. _qiskit-tools:
.. automodule:: qiskit.tools
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-tools-events:
*******************
qiskit.tools.events
*******************
.. currentmodule:: qiskit.tools.events
.. automodapi:: qiskit.tools.events
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-tools-monitor:
********************
qiskit.tools.monitor
********************
.. currentmodule:: qiskit.tools.monitor
.. automodapi:: qiskit.tools.monitor
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-tools-qi:
***************
qiskit.tools.qi
***************
.. currentmodule:: qiskit.tools.qi
.. automodapi:: qiskit.tools.qi
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,24 +0,0 @@
.. _qiskit-tools:
************
qiskit.tools
************
.. currentmodule:: qiskit.tools
.. automodapi:: qiskit.tools
:no-heading:
:no-inheritance-diagram:
:inherited-members:
Submodules
==========
.. toctree::
:maxdepth: 1
events/events
monitor/monitor
qi/qi

View File

@ -0,0 +1,6 @@
.. _qiskit-tools-jupyter:
.. automodule:: qiskit.tools.jupyter
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-transpiler:
.. automodule:: qiskit.transpiler
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +0,0 @@
.. _qiskit-transpiler-mapping:
********************************
qiskit.transpiler.passes.mapping
********************************
.. currentmodule:: qiskit.transpiler.passes.mapping
.. automodapi:: qiskit.transpiler.passes.mapping
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,21 +0,0 @@
.. _qiskit-transpiler-passes:
************************
qiskit.transpiler.passes
************************
.. currentmodule:: qiskit.transpiler.passes
.. automodapi:: qiskit.transpiler.passes
:no-heading:
:no-inheritance-diagram:
:inherited-members:
Submodules
==========
.. toctree::
:maxdepth: 1
mapping/mapping

View File

@ -1,13 +0,0 @@
.. _qiskit-transpiler-preset-passmanagers:
*************************************
qiskit.transpiler.preset_passmanagers
*************************************
.. currentmodule:: qiskit.transpiler.preset_passmanagers
.. automodapi:: qiskit.transpiler.preset_passmanagers
:no-heading:
:no-inheritance-diagram:
:inherited-members:

View File

@ -1,22 +0,0 @@
.. _qiskit-transpiler:
*****************
qiskit.transpiler
*****************
.. currentmodule:: qiskit.transpiler
.. automodapi:: qiskit.transpiler
:no-heading:
:no-inheritance-diagram:
:inherited-members:
Submodules
==========
.. toctree::
:maxdepth: 1
passes/passes
preset_passmanagers/preset_passmanagers

View File

@ -0,0 +1,6 @@
.. _qiskit-transpiler-passes:
.. automodule:: qiskit.transpiler.passes
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -0,0 +1,6 @@
.. _qiskit-transpiler-preset_passmanagers:
.. automodule:: qiskit.transpiler.preset_passmanagers
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -1,13 +1,6 @@
.. _qiskit-validation:
*****************
qiskit.validation
*****************
.. currentmodule:: qiskit.validation
.. automodapi:: qiskit.validation
:no-heading:
:no-inheritance-diagram:
:inherited-members:
.. automodule:: qiskit.validation
:no-members:
:no-inherited-members:
:no-special-members:

View File

@ -60,13 +60,13 @@ release = '0.12.0'
extensions = [
'sphinx.ext.napoleon',
'sphinx.ext.autodoc',
'sphinx_automodapi.automodapi',
'sphinx.ext.autosummary',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinx.ext.extlinks',
'sphinx_tabs.tabs',
'jupyter_sphinx.execute',
'sphinx_autodoc_typehints',
'reno.sphinxext',
]
html_static_path = ['_static']

View File

@ -24,14 +24,12 @@ import warnings
from . import util
# qiskit errors operator
from .exceptions import QiskitError
from qiskit.exceptions import QiskitError
# The main qiskit operators
from qiskit.circuit import ClassicalRegister
from qiskit.circuit import QuantumRegister
from qiskit.circuit import QuantumCircuit
from qiskit.execute import execute
from qiskit.compiler import transpile, assemble, schedule
# The qiskit.extensions.x imports needs to be placed here due to the
# mechanism for adding gates dynamically.
@ -63,6 +61,11 @@ except ImportError:
'or check your installation.',
RuntimeWarning)
# Moved to after IBMQ and Aer imports due to import issues
# with other modules that check for IBMQ (tools)
from qiskit.execute import execute
from qiskit.compiler import transpile, assemble, schedule
from .version import __version__
from .version import _get_qiskit_versions

View File

@ -12,8 +12,44 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Helper module for Qiskit assembler.
"""
========================================================
Circuit and Schedule Assembler (:mod:`qiskit.assembler`)
========================================================
.. currentmodule:: qiskit.assembler
Circuit Assembler
=================
.. autosummary::
:toctree: ../stubs/
assemble_circuits
Schedule Assembler
==================
.. autosummary::
:toctree: ../stubs/
assemble_schedules
Disassembler
============
.. autosummary::
:toctree: ../stubs/
disassemble
RunConfig
=========
.. autosummary::
:toctree: ../stubs/
RunConfig
"""
from .assemble_circuits import assemble_circuits

View File

@ -62,22 +62,69 @@ class QuantumCircuit:
* ``QuantumCircuit(QuantumRegister(4))``
* ``QuantumCircuit(QuantumRegister(4), ClassicalRegister(3))``
* ``QuantumCircuit(QuantumRegister(4, 'qr0'), QuantumRegister(2, 'qr1'))``
* If a list of ``int``, the amount of qubits and/or classical
bits to include in the circuit. It can either be a single
int for just the number of quantum bits, or 2 ints for the number of
quantum bits and classical bits respectively.
For example:
* ``QuantumCircuit(4) # A QuantumCircuit with 4 qubits``
* ``QuantumCircuit(4, 3) # A QuantumCircuit with 4 qubits and 3 classical bits``
name (str): the name of the quantum circuit. If not set, an
automatically generated string will be assigned.
Raises:
CircuitError: if the circuit name, if given, is not valid.
Examples:
Construct a simple Bell state circuit.
.. jupyter-execute::
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
qc.draw()
Construct a 5 qubit GHZ circuit.
.. jupyter-execute::
from qiskit import QuantumCircuit
qc = QuantumCircuit(5)
qc.h(0)
qc.cx(0, range(1, 5))
qc.measure_all()
Construct a 4 qubit Berstein-Vazirani circuit using registers.
.. jupyter-execute::
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
qr = QuantumRegister(3, 'q')
anc = QuantumRegister(1, 'ancilla')
cr = ClassicalRegister(3, 'c')
qc = QuantumCircuit(qr, anc, cr)
qc.x(anc[0])
qc.h(anc[0])
qc.h(qr[0:3])
qc.cx(qr[0:3], anc[0])
qc.h(qr[0:3])
qc.barrier(qr)
qc.measure(qr, cr)
qc.draw()
"""
instances = 0
prefix = 'circuit'

View File

@ -12,7 +12,22 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Helper module for Qiskit compiler.
"""
=============================================
Compilation Routines (:mod:`qiskit.compiler`)
=============================================
.. currentmodule:: qiskit.compiler
Circuit and Pulse Compilation Functions
=======================================
.. autosummary::
:toctree: ../stubs/
assemble
schedule
transpile
"""

View File

@ -12,9 +12,20 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Helper module for simplified Qiskit usage.
"""
=============================================
Circuit Converters (:mod:`qiskit.converters`)
=============================================
The functions in this module provide convenience converters
.. currentmodule:: qiskit.converters
.. autosummary::
:toctree: ../stubs/
circuit_to_dag
dag_to_circuit
circuit_to_instruction
ast_to_dag
"""
from .circuit_to_dag import circuit_to_dag

View File

@ -12,7 +12,30 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for DAG Circuits."""
"""
=======================================
DAG Circuits (:mod:`qiskit.dagcircuit`)
=======================================
.. currentmodule:: qiskit.dagcircuit
DAG Circuits
============
.. autosummary::
:toctree: ../stubs/
DAGCircuit
DAGNode
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
DAGCircuitError
"""
from .dagcircuit import DAGCircuit
from .dagnode import DAGNode
from .exceptions import DAGCircuitError

View File

@ -13,10 +13,13 @@
# that they have been altered from the originals.
"""
Helper module for simplified Qiskit usage.
=============================================
Executing Experiments (:mod:`qiskit.execute`)
=============================================
In general we recommend using the SDK modules directly. However, to get something
running quickly we have provided this wrapper module.
.. currentmodule:: qiskit.execute
.. autofunction:: execute
"""
from qiskit.compiler import transpile, assemble
@ -31,7 +34,8 @@ def execute(experiments, backend,
schedule_los=None, meas_level=2, meas_return='avg',
memory_slots=None, memory_slot_size=100, rep_time=None, parameter_binds=None,
**run_config):
"""Execute a list of circuits or pulse schedules on a backend.
"""Execute a list of :class:`qiskit.circuit.QuantumCircuit` or
:class:`qiskit.pulse.Schedule` on a backend.
The execution is asynchronous, and a handle to a job instance is returned.
@ -104,10 +108,10 @@ def execute(experiments, backend,
How much optimization to perform on the circuits.
Higher levels generate more optimized circuits,
at the expense of longer transpilation time.
0: no optimization
1: light optimization
2: heavy optimization
3: even heavier optimization
0: No optimization
1: Light optimization
2: Heavy optimization
3: Highest optimization
If None, level 1 will be chosen as default.
pass_manager (PassManager):
@ -184,6 +188,37 @@ def execute(experiments, backend,
Raises:
QiskitError: if the execution cannot be interpreted as either circuits or schedules
Example:
Construct a 5 qubit GHZ circuit and execute 4321 shots on a backend.
.. jupyter-execute::
:hide-code:
:hide-output:
from unittest.mock import MagicMock
import qiskit
from qiskit.test.mock import FakeVigo
mock_ibmq = MagicMock()
mock_provider = MagicMock()
fake_vigo = FakeVigo()
mock_provider.get_backend.return_value = fake_vigo
mock_ibmq.get_provider.return_value = mock_provider
qiskit.IBMQ = mock_ibmq
.. jupyter-execute::
from qiskit import QuantumCircuit, execute, BasicAer
backend = BasicAer.get_backend('qasm_simulator')
qc = QuantumCircuit(5, 5)
qc.h(0)
qc.cx(0, range(1, 5))
qc.measure_all()
job = execute(qc, backend, shots=4321)
"""
# transpiling the circuits using given transpile options
experiments = transpile(experiments,

View File

@ -12,8 +12,75 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Extensions to quantum circuits."""
"""
=====================================================
Quantum Circuit Extensions (:mod:`qiskit.extensions`)
=====================================================
.. currentmodule:: qiskit.extensions
Standard Extensions
===================
.. autosummary::
:toctree: ../stubs/
Barrier
ToffoliGate
CHGate
CrzGate
FredkinGate
Cu1Gate
Cu3Gate
CnotGate
CyGate
CzGate
HGate
IdGate
MSGate
RXGate
RXXGate
RYGate
RZGate
RZZGate
SGate
SdgGate
SwapGate
TdgGate
U0Gate
U1Gate
U2Gate
U3Gate
XGate
YGate
ZGate
Unitary Extensions
==================
.. autosummary::
:toctree: ../stubs/
UnitaryGate
Simulator Extensions
====================
.. autosummary::
:toctree: ../stubs/
Snapshot
Initialization
==============
.. autosummary::
:toctree: ../stubs/
Initialize
"""
from qiskit.extensions.quantum_initializer.initializer import Initialize
from .standard import *
from .unitary import UnitaryGate
from .simulator import Snapshot

View File

@ -17,9 +17,9 @@ Simulator command to snapshot internal simulator representation.
import warnings
from qiskit import QuantumCircuit
from qiskit.circuit.quantumcircuit import QuantumCircuit
from qiskit.circuit.quantumregister import QuantumRegister
from qiskit.circuit import Instruction
from qiskit.circuit.instruction import Instruction
from qiskit.extensions.exceptions import QiskitError, ExtensionError

View File

@ -12,7 +12,42 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for Providers, Backends and Jobs."""
"""
======================================
Base Objects (:mod:`qiskit.providers`)
======================================
.. currentmodule:: qiskit.providers
Base Objects
============
.. autosummary::
:toctree: ../stubs/
BaseProvider
BaseBackend
BaseJob
Job Status
==========
.. autosummary::
:toctree: ../stubs/
JobStatus
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
QiskitBackendNotFoundError
BackendPropertyError
JobError
JobTimeoutError
"""
import pkgutil

View File

@ -12,7 +12,57 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""BasicAer Provider: Contains Python simulators."""
"""
====================================================================
BasicAer: Python-based Simulators (:mod:`qiskit.providers.basicaer`)
====================================================================
.. currentmodule:: qiskit.providers.basicaer
A module of Python-based quantum simulators. Simulators are accessed
via the `BasicAer` provider, e.g.:
.. jupyter-execute::
from qiskit import BasicAer
backend = BasicAer.get_backend('qasm_simulator')
Simulators
==========
.. autosummary::
:toctree: ../stubs/
QasmSimulatorPy
StatevectorSimulatorPy
UnitarySimulatorPy
Provider
========
.. autosummary::
:toctree: ../stubs/
BasicAerProvider
Job Class
=========
.. autosummary::
:toctree: ../stubs/
BasicAerJob
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
BasicAerError
"""
from .basicaerprovider import BasicAerProvider
from .basicaerjob import BasicAerJob

View File

@ -12,7 +12,32 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Qiskit schema-conformant objects used by the backends and providers."""
"""
================================================
Backend Objects (:mod:`qiskit.providers.models`)
================================================
.. currentmodule:: qiskit.providers.models
Qiskit schema-conformant objects used by the backends and providers.
Backend Objects
===============
.. autosummary::
:toctree: ../stubs/
BackendConfiguration
BackendProperties
BackendStatus
QasmBackendConfiguration
PulseBackendConfiguration
UchannelLO
GateConfig
PulseDefaults
Command
JobStatus
"""
from .backendconfiguration import (BackendConfiguration, PulseBackendConfiguration,
QasmBackendConfiguration, UchannelLO, GateConfig)

View File

@ -12,7 +12,71 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for Pulses."""
"""
===============================
OpenPulse (:mod:`qiskit.pulse`)
===============================
.. currentmodule:: qiskit.pulse
Channels
========
.. autosummary::
:toctree: ../stubs/
PulseChannelSpec
DriveChannel
MeasureChannel
AcquireChannel
ControlChannel
RegisterSlot
MemorySlot
Commands
========
.. autosummary::
:toctree: ../stubs/
Instruction
Acquire
FrameChange
PersistentValue
SamplePulse
Snapshot
Kernel
Discriminator
Delay
functional_pulse
Schedules
=========
.. autosummary::
:toctree: ../stubs/
Schedule
ScheduleComponent
Configuration
=============
.. autosummary::
:toctree: ../stubs/
CmdDef
LoConfig
LoRange
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
PulseError
"""
from .channels import (PulseChannelSpec, DriveChannel,
MeasureChannel, AcquireChannel,

View File

@ -12,9 +12,18 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Tools for QASM.
"""
=========================
Qasm (:mod:`qiskit.qasm`)
=========================
Use Unrollers in qiskit.unroll to convert a QASM specification to a qiskit circuit.
.. currentmodule:: qiskit.qasm
.. autosummary::
:toctree: ../stubs/
Qasm
QasmError
"""
from numpy import pi

View File

@ -12,7 +12,63 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for the Qobj structure."""
"""
=========================
Qobj (:mod:`qiskit.qobj`)
=========================
.. currentmodule:: qiskit.qobj
Base
====
.. autosummary::
:toctree: ../stubs/
Qobj
QobjInstruction
QobjExperimentHeader
QobjExperimentConfig
QobjExperiment
QobjConfig
QobjHeader
Qasm
====
.. autosummary::
:toctree: ../stubs/
QasmQobj
QasmQobjInstruction
QasmQobjExperimentConfig
QasmQobjExperiment
QasmQobjConfig
Pulse
=====
.. autosummary::
:toctree: ../stubs/
PulseQobj
PulseQobjInstruction
PulseQobjExperimentConfig
PulseQobjExperiment
PulseQobjConfig
QobjMeasurementOption
PulseLibraryItem
PulseLibraryItemSchema
PulseQobjInstructionSchema
Validation
==========
.. autosummary::
:toctree: ../stubs/
validate_qobj_against_schema
"""
from .models.base import (QobjInstruction, QobjExperimentHeader, QobjExperimentConfig,
QobjExperiment, QobjConfig, QobjHeader)

View File

@ -12,7 +12,74 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Quantum Information methods."""
"""
================================================
Quantum Information (:mod:`qiskit.quantum_info`)
================================================
.. currentmodule:: qiskit.quantum_info
Operators
=========
.. autosummary::
:toctree: ../stubs/
Operator
Pauli
pauli_group
States
======
.. autosummary::
:toctree: ../stubs/
Statevector
DensityMatrix
Channels
========
.. autosummary::
:toctree: ../stubs/
Choi
SuperOp
Kraus
Stinespring
Chi
PTM
Measures
========
.. autosummary::
:toctree: ../stubs/
state_fidelity
Random
======
.. autosummary::
:toctree: ../stubs/
random_unitary
random_state
random_density_matrix
Synthesis
=========
.. autosummary::
:toctree: ../stubs/
euler_angles_1q
two_qubit_cnot_decompose
TwoQubitBasisDecomposer
"""
from .operators.operator import Operator
from .operators.pauli import Pauli, pauli_group
@ -22,3 +89,5 @@ from .states import Statevector, DensityMatrix
from .states.states import basis_state, projector, purity
from .states.measures import state_fidelity
from .random import random_unitary, random_state, random_density_matrix
from .synthesis import (TwoQubitBasisDecomposer, euler_angles_1q,
two_qubit_cnot_decompose)

View File

@ -12,7 +12,19 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for working with results."""
"""
=========================================
Experiment Results (:mod:`qiskit.result`)
=========================================
.. currentmodule:: qiskit.result
.. autosummary::
:toctree: ../stubs/
Result
ResultError
"""
from .result import Result
from .exceptions import ResultError

View File

@ -12,7 +12,21 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module for scheduling pulse `Schedule`s from `QuantumCircuit`s."""
"""
===========================================
Circuit Scheduler (:mod:`qiskit.scheduler`)
===========================================
.. currentmodule:: qiskit.scheduler
Circuit to pulse scheduling functionality
.. autosummary::
:toctree: ../stubs/
schedule_circuit
ScheduleConfig
"""
from qiskit.scheduler.config import ScheduleConfig
from qiskit.scheduler.schedule_circuit import schedule_circuit

View File

@ -12,12 +12,53 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Helper module for simplified Qiskit usage.
"""
==================================
Qiskit Tools (:mod:`qiskit.tools`)
==================================
The functions in this module provide convenience helpers for accessing commonly
used features of the SDK in a simplified way. They support a small subset of
scenarios and flows: for more advanced usage, it is encouraged to instead
refer to the documentation of each component and use them separately.
.. currentmodule:: qiskit.tools
Parallel Routines
=================
.. autosummary::
:toctree: ../stubs/
parallel_map
Monitoring
==========
.. autosummary::
:toctree: ../stubs/
job_monitor
backend_monitor
backend_overview
Quantum Information
===================
.. autosummary::
:toctree: ../stubs/
qft
partial_trace
vectorize
devectorize
choi_to_pauli
chop, outer
entropy
shannon_entropy
concurrence
entanglement_of_formation
mutual_information
is_pos_def
"""
from .parallel import parallel_map
from .monitor import (job_monitor, backend_monitor, backend_overview)
from .qi import (qft, partial_trace, vectorize, devectorize, choi_to_pauli,
chop, outer, entropy, shannon_entropy, concurrence,
entanglement_of_formation, mutual_information, is_pos_def)

View File

@ -12,9 +12,85 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Initialize the Jupyter routines.
"""
===========================================
Jupyter Tools (:mod:`qiskit.tools.jupyter`)
===========================================
.. currentmodule:: qiskit.tools.jupyter
A Collection of Jupyter magic functions and tools
that extend the functionality of Qiskit.
Overview of all available backends
==================================
.. code-block::
from qiskit import IBMQ
import qiskit.tools.jupyter
%matplotlib inline
IBMQ.load_account()
%qiskit_backend_overview
Detailed information on a single backend
========================================
.. code-block::
from qiskit import IBMQ
import qiskit.tools.jupyter
%matplotlib inline
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q')
backend = provider.get_backend('ibmq_vigo')
backend
Load Qiskit Job Watcher
=======================
.. code-block::
import qiskit.tools.jupyter
%qiskit_job_watcher
HTMLProgressBar
===============
.. jupyter-execute::
import numpy as np
from qiskit.tools.parallel import parallel_map
import qiskit.tools.jupyter
%qiskit_progress_bar
parallel_map(np.sin, np.linspace(0,10,100));
Qiskit version table
====================
.. jupyter-execute::
import qiskit.tools.jupyter
%qiskit_version_table
Qiskit copyright
================
.. jupyter-execute::
import qiskit.tools.jupyter
%qiskit_copyright
"""
import warnings
from IPython import get_ipython # pylint: disable=import-error

View File

@ -13,3 +13,7 @@
# that they have been altered from the originals.
"""A collection of useful quantum information functions"""
from .qi import (qft, partial_trace, vectorize, devectorize, choi_to_pauli,
chop, outer, entropy, shannon_entropy, concurrence,
entanglement_of_formation, mutual_information, is_pos_def)

View File

@ -247,7 +247,7 @@ def devectorize(vectorized_mat, method='col'):
return None
def choi_to_rauli(choi, order=1):
def choi_to_pauli(choi, order=1):
"""
Convert a Choi-matrix to a Pauli-basis superoperator.

View File

@ -12,7 +12,58 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Utils for transpiler."""
"""
=====================================
Transpiler (:mod:`qiskit.transpiler`)
=====================================
.. currentmodule:: qiskit.transpiler
Circuit Transpilation
=====================
.. autosummary::
:toctree: ../stubs/
transpile_circuit
Pass Managment
==============
.. autosummary::
:toctree: ../stubs/
PassManager
PropertySet
FlowController
Layout and Topology
===================
.. autosummary::
:toctree: ../stubs/
Layout
CouplingMap
Fenced Objects
==============
.. autosummary::
:toctree: ../stubs/
FencedDAGCircuit
FencedPropertySet
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
TranspilerError
TranspilerAccessError
"""
from .runningpassmanager import FlowController
from .passmanager import PassManager

View File

@ -12,7 +12,105 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Module containing transpiler pass."""
"""
===================================================
Transpiler Passes (:mod:`qiskit.transpiler.passes`)
===================================================
.. currentmodule:: qiskit.transpiler.passes
Layout Selection
================
.. autosummary::
:toctree: ../stubs/
TrivialLayout
DenseLayout
NoiseAdaptiveLayout
ApplyLayout
SetLayout
EnlargeWithAncilla
FullAncillaAllocation
Unrolling
=========
.. autosummary::
:toctree: ../stubs/
Unroller
Unroll3qOrMore
Decompose
Swap Mapping
============
.. autosummary::
:toctree: ../stubs/
BasicSwap
LookaheadSwap
StochasticSwap
Gate Optimizations
==================
.. autosummary::
:toctree: ../stubs/
Optimize1qGates
CXCancellation
CommutationAnalysis
CommutativeCancellation
2Q Block Optimization
=====================
.. autosummary::
:toctree: ../stubs/
Collect2qBlocks
ConsolidateBlocks
Topology Validation
===================
.. autosummary::
:toctree: ../stubs/
CheckMap
CheckCXDirection
CXDirection
DAG Properties
==============
.. autosummary::
:toctree: ../stubs/
Width
Depth
Size
CountOps
CountOpsLongestPath
NumTensorFactors
DAGFixedPoint
DAGLongestPath
Additional Passes
=================
.. autosummary::
:toctree: ../stubs/
MergeAdjacentBarriers
BarrierBeforeFinalMeasurements
RemoveDiagonalGatesBeforeMeasure
RemoveFinalMeasurements
RemoveResetInZeroState
"""
from .unroller import Unroller
from .cx_cancellation import CXCancellation

View File

@ -33,8 +33,7 @@ class NoiseAdaptiveLayout(AnalysisPass):
Prakash Murali, Jonathan M. Baker, Ali Javadi-Abhari, Frederic T. Chong, Margaret R. Martonosi
ASPLOS 2019 (arXiv:1901.11054).
Greedy mapping heuristic
------------------------
Methods:
Ordering of edges:
Map qubits edge-by-edge in the order of decreasing frequency of occurrence in the program dag.
@ -50,7 +49,7 @@ class NoiseAdaptiveLayout(AnalysisPass):
participate in any CNOT), map them to any available
hardware qubit.
Note:
Notes:
even though a `layout` is not strictly a property of the DAG,
in the transpiler architecture it is best passed around between passes
by being set in `property_set`.

View File

@ -12,7 +12,21 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Preset PassManager flows."""
"""
==================================================================
Preset Passmanagers (:mod:`qiskit.transpiler.preset_passmanagers`)
==================================================================
.. currentmodule:: qiskit.transpiler.preset_passmanagers
.. autosummary::
:toctree: ../stubs/
level_0_pass_manager
level_1_pass_manager
level_2_pass_manager
level_3_pass_manager
"""
from .level0 import level_0_pass_manager
from .level1 import level_1_pass_manager

View File

@ -12,7 +12,32 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Models and schemas for Terra."""
"""
=============================================
Models and Schemas (:mod:`qiskit.validation`)
=============================================
.. currentmodule:: qiskit.validation
Base
====
.. autosummary::
:toctree: ../stubs/
BaseModel
BaseSchema
bind_schema
ModelTypeValidator
Exceptions
==========
.. autosummary::
:toctree: ../stubs/
ModelValidationError
"""
from .base import BaseModel, BaseSchema, bind_schema, ModelTypeValidator
from .exceptions import ModelValidationError

View File

@ -80,7 +80,6 @@ Pass Manager Visualizations
pass_manager_drawer
Exceptions
==========

View File

@ -52,8 +52,9 @@ def dag_drawer(dag, scale=0.7, filename=None, style='color'):
ImportError: when nxpd or pydot not installed.
Example:
.. code-block::
.. jupyter-execute::
%matplotlib inline
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.dagcircuit import DAGCircuit
from qiskit.converters import circuit_to_dag

View File

@ -292,16 +292,18 @@ def plot_circuit_layout(circuit, backend, view='virtual'):
import matplotlib.pyplot as plt
%matplotlib inline
provider = IBMQ.get_provider(group='open')
ghz = QuantumCircuit(5, 5)
IBMQ.load_account()
ghz = QuantumCircuit(3, 3)
ghz.h(0)
for idx in range(1,5):
for idx in range(1,3):
ghz.cx(0,idx)
ghz.barrier(range(5))
ghz.measure(range(5), range(5))
backend = provider.get_backend('ibmq_16_melbourne')
new_circ_lv0 = transpile(ghz, backend=backend, optimization_level=0)
plot_circuit_layout(new_circ_lv0, backend)
ghz.measure(range(3), range(3))
provider = IBMQ.get_provider(hub='ibm-q')
backend = provider.get_backend('ibmq_vigo')
new_circ_lv3 = transpile(ghz, backend=backend, optimization_level=3)
plot_circuit_layout(new_circ_lv3, backend)
"""
if circuit._layout is None:
raise QiskitError('Circuit has no layout. '
@ -366,9 +368,10 @@ def plot_error_map(backend, figsize=(12, 9), show_title=True):
from qiskit import QuantumCircuit, BasicAer, execute, IBMQ
from qiskit.visualization import plot_error_map
%matplotlib inline
provider = IBMQ.load_account()
accountProvider = IBMQ.get_provider(hub='ibm-q')
backend = accountProvider.get_backend('ibmq_vigo')
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q')
backend = provider.get_backend('ibmq_vigo')
plot_error_map(backend)
"""
color_map = cm.viridis

View File

@ -62,6 +62,7 @@ def pass_manager_drawer(pass_manager, filename, style=None, raw=False):
Example:
.. code-block::
%matplotlib inline
from qiskit import QuantumCircuit
from qiskit.compiler import transpile
from qiskit.transpiler import PassManager

View File

@ -49,8 +49,10 @@ def pulse_drawer(data, dt=1, style=None, filename=None,
table (bool): Draw event table for supported commands
label (bool): Label individual instructions
framechange (bool): Add framechange indicators
Returns:
matplotlib.figure: A matplotlib figure object for the pulse envelope
Raises:
VisualizationError: when invalid data is given or lack of information
ImportError: when matplotlib is not installed

View File

@ -21,5 +21,5 @@ reno>=2.11.0
Sphinx>=1.8.3
sphinx-rtd-theme>=0.4.0
sphinx-tabs>=1.1.11
sphinx-automodapi
sphinx-autodoc-typehints
jupyter-sphinx

View File

@ -25,7 +25,7 @@ import numpy as np
from qiskit.tools.qi.qi import partial_trace, vectorize, devectorize, outer
from qiskit.tools.qi.qi import concurrence, qft, chop
from qiskit.tools.qi.qi import shannon_entropy, entropy, mutual_information
from qiskit.tools.qi.qi import choi_to_rauli
from qiskit.tools.qi.qi import choi_to_pauli
from qiskit.tools.qi.qi import entanglement_of_formation, is_pos_def
from qiskit.tools.qi.qi import __eof_qubit as eof_qubit
from qiskit.quantum_info import purity
@ -226,7 +226,7 @@ class TestQI(QiskitTestCase):
[1, 0, 1, 0],
[0.5, 0.5, 0.5, 0.5],
[0, 1, 0, 1]])
res = choi_to_rauli(input_matrix)
res = choi_to_pauli(input_matrix)
expected = np.array([[2.0+0.j, 2.25+0.0j, 0.0+0.75j, -1.0+0.0j],
[1.75+0.j, 2.5+0.j, 0.-1.5j, 0.75+0.0j],
[0.0-0.25j, 0.0+0.5j, -0.5+0.0j, 0.0-1.25j],