qdk_chemistry.plugins package
Plugin registration and discovery for QDK/Chemistry extensions.
Plugins connect QDK/Chemistry to optional chemistry packages, quantum software, and execution services while preserving the library’s common interfaces. An extension can contribute:
implementations of existing algorithm types or entirely new algorithm types;
data classes used by algorithm inputs and outputs;
remote execution backends; and
cache backends.
External plugins
An installed package exposes a QdkChemistryPlugin subclass through the
qdk_chemistry.plugins entry-point group:
[project.entry-points."qdk_chemistry.plugins"]
custom = "custom_package.plugin:CustomPlugin"
Importing qdk_chemistry discovers each entry point and calls its
QdkChemistryPlugin.register() method with a PluginRegistrar. The
registrar provides access to the standard QDK/Chemistry registries without
requiring application code to import the plugin package directly.
from qdk_chemistry.plugins import PluginRegistrar, QdkChemistryPlugin
class CustomPlugin(QdkChemistryPlugin):
def register(self, registrar: PluginRegistrar) -> None:
registrar.register_algorithm(lambda: CustomAlgorithm())
registrar.register_remote_backend("custom", CustomRemoteBackend)
Bundled integrations
QDK/Chemistry also includes integrations for:
qdk_chemistry.plugins.pyscffor electronic-structure algorithms;qdk_chemistry.plugins.qiskitfor circuit construction, mapping, and execution;qdk_chemistry.plugins.openfermionfor operator conversion and qubit mapping;qdk_chemistry.plugins.networkxfor graph-coloring term grouping; andqdk_chemistry.plugins.geometricfor molecular geometry optimization.
Bundled integrations are loaded automatically when their optional dependencies
are available. Their implementations can then be created through the standard
algorithm registry, for example create("scf_solver", "pyscf").
- qdk_chemistry.plugins.ChemistryPlugin
alias of
QdkChemistryPlugin
- exception qdk_chemistry.plugins.DuplicateRegistrationError
Bases:
ValueError
- class qdk_chemistry.plugins.PluginRegistrar
Bases:
objectRegister plugin capabilities through the existing public registries.
- register_algorithm_factory(factory)
Register a factory that introduces an algorithm type.
- Parameters:
factory (
AlgorithmFactory) – Factory that defines and creates the algorithm type.- Raises:
DuplicateRegistrationError – If the algorithm type is already registered.
- Return type:
- register_algorithm(factory, *, data_classes=())
Register an algorithm factory and its DataClass input or output types.
- Parameters:
- Raises:
DuplicateRegistrationError – If the algorithm name or a DataClass wire type is already registered.
TypeError – If a DataClass loader is invalid.
- Return type:
- register_dataclass(dataclass_type)
Register a DataClass loader used in algorithm inputs or outputs.
- Parameters:
dataclass_type (
Type[Any]) – Canonical DataClass loader to register.- Raises:
DuplicateRegistrationError – If the DataClass wire type is already registered.
- Return type:
- register_remote_backend(name, backend_type)
Register a remote execution backend.
Backends may expose selected constructor parameters to untrusted MCP clients by declaring
mcp_safe_config_optionsas a frozenset on the concrete class. The declaration is validated during registration; an omitted declaration exposes no parameters.- Parameters:
- Raises:
DuplicateRegistrationError – If the backend name or class is already registered.
- Return type:
- class qdk_chemistry.plugins.QdkChemistryPlugin
Bases:
ABCBase class for plugins discovered through
qdk_chemistry.plugins.- api_version = 1
- abstractmethod register(registrar)
Register the capabilities provided by this plugin.
- Return type:
- Parameters:
registrar (PluginRegistrar)
Subpackages
- qdk_chemistry.plugins.discovery package
- qdk_chemistry.plugins.geometric package
- qdk_chemistry.plugins.networkx package
- qdk_chemistry.plugins.openfermion package
- qdk_chemistry.plugins.pyscf package
load()- Submodules
- qdk_chemistry.plugins.pyscf.active_space_avas module
- qdk_chemistry.plugins.pyscf.conversion module
- qdk_chemistry.plugins.pyscf.coupled_cluster module
- qdk_chemistry.plugins.pyscf.localization module
- qdk_chemistry.plugins.pyscf.mcscf module
- qdk_chemistry.plugins.pyscf.population_analysis module
- qdk_chemistry.plugins.pyscf.scf_solver module
- qdk_chemistry.plugins.pyscf.stability module
- qdk_chemistry.plugins.qiskit package
load()qiskit_load()qiskit_nature_load()qiskit_ibm_runtime_load()qiskit_aer_load()- Subpackages
- Submodules