quactuary.backend module

Backend selection and execution module.

Provides plumbing to choose between quantum (Qiskit) and classical execution backends. Abstracts backend management so user-facing models receive numeric results regardless of execution mode.

Examples

>>> from quactuary.backend import get_backend, set_backend
>>> manager = get_backend()
>>> set_backend('quantum', provider='AerSimulator')
class quactuary.backend.BackendManager(backend)

Bases: object

Manager for quantum and classical backends.

Manages backend assignments and executes quantum circuits or classical simulations.

__init__(backend)

Initialize a BackendManager.

Parameters:

backend – Backend instance (e.g., Qiskit backend or custom classical engine).

get_backend()

Retrieve the active backend.

Returns:

The current backend instance.

run(circuit)

Execute a circuit on the active backend.

Parameters:

circuit – QuantumCircuit or equivalent object to run.

Returns:

Execution result or job output.

Return type:

Result

Examples

>>> result = backend_manager.run(qc)
set_backend(backend)

Override the active backend.

Parameters:

backend – New backend instance.

quactuary.backend.get_backend()

Retrieve or initialize the global BackendManager.

Returns:

Singleton backend manager instance.

Return type:

BackendManager

quactuary.backend.set_backend(mode, provider=None, **kwargs)

Configure the global execution backend.

Parameters:
  • mode (str) – Type of execution (‘quantum’ or ‘classical’).

  • provider (Optional[str]) – Quantum provider name (‘AerSimulator’, ‘IBMQ’).

  • **kwargs – Additional settings (e.g., backend credentials, simulation parameters).

Returns:

The newly assigned backend instance.

Raises:
  • ImportError – If Qiskit or packaging dependencies are missing for quantum mode.

  • ValueError – If mode or provider is unsupported.

Examples

>>> set_backend('quantum', provider='AerSimulator')
>>> set_backend('classical', backend='numpy')
quactuary.backend.use_backend(mode, provider=None, **kwargs)

Context manager for temporary backend configuration.

Parameters:
  • mode (str) – Execution mode override (‘quantum’ or ‘classical’).

  • provider (Optional[str]) – Quantum provider name.

  • **kwargs – Additional backend settings.

Yields:

BackendManager – Manager with temporary backend applied.

Examples

>>> with use_backend('quantum', provider='AerSimulator') as mgr:
...     result = mgr.run(circuit)