Source code for qdesignoptimizer.utils.names_qiskit_components

"""Naming utilities for mapping between modes and Qiskit Metal component names."""

from typing import Union

from qdesignoptimizer.utils.names_parameters import Mode

QiskitComponentName = str
"""A string representing the name of a Qiskit Metal component, by convention starts with \'name\\_\'

    Examples:
        >>> "name_qubit"
        >>> "name_resonator_1"
        >>> "name_coupler_1to2"
"""


[docs] def name_id(identifier: Union[str, int]) -> QiskitComponentName: """Create a component name from a generic identifier.""" return f"name_{identifier}"
[docs] def name_mode(identifier: Mode) -> QiskitComponentName: """Create a component name from a mode identifier.""" return f"name_{identifier}"
[docs] def name_mode_to_mode(identifier_1: Mode, identifier_2: Mode) -> QiskitComponentName: """Create a component name representing a connection between two modes.""" return f"name_{identifier_1}_to_{identifier_2}"
[docs] def name_tee(identifier: Union[str, int]) -> QiskitComponentName: """Create a component name for a tee junction.""" return f"name_tee{identifier}"
[docs] def name_lp(identifier: Union[str, int]) -> QiskitComponentName: """Create a component name for a launch pad.""" return f"name_lp{identifier}"
[docs] def name_charge_line(identifier: Union[str, int]) -> QiskitComponentName: """Create a component name for a charge line.""" return f"name_charge_line{identifier}"
[docs] def name_flux_line(identifier: Union[str, int]) -> QiskitComponentName: """Create a component name for a flux line.""" return f"name_flux_line_{identifier}"
[docs] def name_lp_to_tee( lp_identifier: Union[str, int], tee_identifier: Union[str, int] ) -> QiskitComponentName: """Create a component name for a connection between a launch pad and tee junction.""" return f"name_lp{lp_identifier}_to_tee{tee_identifier}"
[docs] def name_tee_to_tee( tee_identifier1: Union[str, int], tee_identifier2: Union[str, int] ) -> QiskitComponentName: """Create a component name for a connection between two tee junctions.""" return f"name_tee{tee_identifier1}_to_tee{tee_identifier2}"
[docs] def name_lp_to_chargeline( lp_identifier: Union[str, int], chargeline_identifier: Union[str, int] ) -> QiskitComponentName: """Create a component name for a connection between a launch pad and charge line.""" return f"name_lp{lp_identifier}_to_chargeline{chargeline_identifier}"