Skip to content

Commit c15faee

Browse files
committed
Moved ListOrDict to custom_types.py
1 parent bbe62be commit c15faee

File tree

16 files changed

+40
-44
lines changed

16 files changed

+40
-44
lines changed

qiskit_algorithms/custom_types.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,29 @@
1313
"""Types used by the qiskit-algorithms package."""
1414
from __future__ import annotations
1515

16-
from typing import Any, Protocol, Union
16+
from typing import Any, Protocol, TypeAlias, TypeVar, overload
1717

1818
from qiskit import QuantumCircuit
1919

20-
_Circuits = Union[list[QuantumCircuit], QuantumCircuit]
20+
_T = TypeVar("_T") # Pylint does not allow single character class names.
21+
ListOrDict = list[_T | None] | dict[str, _T]
22+
23+
_Circuits: TypeAlias = list[QuantumCircuit] | QuantumCircuit
2124

2225

2326
class Transpiler(Protocol):
2427
"""A Generic type to represent a transpiler."""
2528

26-
def run(self, circuits: _Circuits, **options: Any) -> _Circuits:
29+
@overload
30+
def run(self, circuits: list[QuantumCircuit], /, **options: Any) -> list[QuantumCircuit]:
31+
"""Transpile a list of quantum circuits."""
32+
...
33+
34+
@overload
35+
def run(self, circuits: QuantumCircuit, /, **options: Any) -> QuantumCircuit:
36+
"""Transpile a single quantum circuit."""
37+
...
38+
39+
def run(self, circuits: _Circuits, /, **options: Any) -> _Circuits:
2740
"""Transpile a circuit or a list of quantum circuits."""
2841
pass

qiskit_algorithms/eigensolvers/eigensolver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This code is part of a Qiskit project.
22
#
3-
# (C) Copyright IBM 2022, 2023.
3+
# (C) Copyright IBM 2022, 2025.
44
#
55
# This code is licensed under the Apache License, Version 2.0. You may
66
# obtain a copy of this license in the LICENSE.txt file in the root directory
@@ -21,7 +21,7 @@
2121
from qiskit.quantum_info.operators.base_operator import BaseOperator
2222

2323
from ..algorithm_result import AlgorithmResult
24-
from ..list_or_dict import ListOrDict
24+
from ..custom_types import ListOrDict
2525

2626

2727
class Eigensolver(ABC):

qiskit_algorithms/eigensolvers/numpy_eigensolver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This code is part of a Qiskit project.
22
#
3-
# (C) Copyright IBM 2022, 2024.
3+
# (C) Copyright IBM 2022, 2025.
44
#
55
# This code is licensed under the Apache License, Version 2.0. You may
66
# obtain a copy of this license in the LICENSE.txt file in the root directory
@@ -27,7 +27,7 @@
2727
from qiskit_algorithms.utils.validation import validate_min
2828
from .eigensolver import Eigensolver, EigensolverResult
2929
from ..exceptions import AlgorithmError
30-
from ..list_or_dict import ListOrDict
30+
from ..custom_types import ListOrDict
3131

3232
logger = logging.getLogger(__name__)
3333

qiskit_algorithms/eigensolvers/vqd.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from .eigensolver import Eigensolver, EigensolverResult
3434
from ..custom_types import Transpiler
3535
from ..exceptions import AlgorithmError
36-
from ..list_or_dict import ListOrDict
36+
from ..custom_types import ListOrDict
3737
from ..observables_evaluator import estimate_observables
3838
from ..optimizers import Optimizer, Minimizer, OptimizerResult
3939
from ..utils import validate_bounds, validate_initial_point

qiskit_algorithms/list_or_dict.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

qiskit_algorithms/minimum_eigensolvers/adapt_vqe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
from qiskit.quantum_info.operators.base_operator import BaseOperator
2828
from qiskit.version import get_version_info as get_qiskit_version_info
2929

30+
from qiskit_algorithms.custom_types import ListOrDict
3031
from qiskit_algorithms.exceptions import AlgorithmError
31-
from qiskit_algorithms.list_or_dict import ListOrDict
3232
from qiskit_algorithms.utils.validation import validate_min
3333
from .minimum_eigensolver import MinimumEigensolver
3434
from .vqe import VQE, VQEResult

qiskit_algorithms/minimum_eigensolvers/minimum_eigensolver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This code is part of a Qiskit project.
22
#
3-
# (C) Copyright IBM 2022, 2023.
3+
# (C) Copyright IBM 2022, 2025.
44
#
55
# This code is licensed under the Apache License, Version 2.0. You may
66
# obtain a copy of this license in the LICENSE.txt file in the root directory
@@ -20,7 +20,7 @@
2020
from qiskit.quantum_info.operators.base_operator import BaseOperator
2121

2222
from ..algorithm_result import AlgorithmResult
23-
from ..list_or_dict import ListOrDict
23+
from ..custom_types import ListOrDict
2424

2525

2626
class MinimumEigensolver(ABC):

qiskit_algorithms/minimum_eigensolvers/numpy_minimum_eigensolver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This code is part of a Qiskit project.
22
#
3-
# (C) Copyright IBM 2022, 2023.
3+
# (C) Copyright IBM 2022, 2025.
44
#
55
# This code is licensed under the Apache License, Version 2.0. You may
66
# obtain a copy of this license in the LICENSE.txt file in the root directory
@@ -23,7 +23,7 @@
2323

2424
from ..eigensolvers.numpy_eigensolver import NumPyEigensolver
2525
from .minimum_eigensolver import MinimumEigensolver, MinimumEigensolverResult
26-
from ..list_or_dict import ListOrDict
26+
from ..custom_types import ListOrDict
2727

2828
logger = logging.getLogger(__name__)
2929

qiskit_algorithms/minimum_eigensolvers/sampling_mes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This code is part of a Qiskit project.
22
#
3-
# (C) Copyright IBM 2022, 2023.
3+
# (C) Copyright IBM 2022, 2025.
44
#
55
# This code is licensed under the Apache License, Version 2.0. You may
66
# obtain a copy of this license in the LICENSE.txt file in the root directory
@@ -20,7 +20,7 @@
2020
from qiskit.quantum_info.operators.base_operator import BaseOperator
2121
from qiskit.result import QuasiDistribution
2222
from ..algorithm_result import AlgorithmResult
23-
from ..list_or_dict import ListOrDict
23+
from ..custom_types import ListOrDict
2424

2525

2626
class SamplingMinimumEigensolver(ABC):

qiskit_algorithms/minimum_eigensolvers/sampling_vqe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from qiskit.quantum_info.operators.base_operator import BaseOperator
2929

3030
from ..exceptions import AlgorithmError
31-
from ..list_or_dict import ListOrDict
31+
from ..custom_types import ListOrDict
3232
from ..optimizers import Minimizer, Optimizer, OptimizerResult
3333
from ..variational_algorithm import VariationalAlgorithm, VariationalResult
3434
from .diagonal_estimator import _DiagonalEstimator

0 commit comments

Comments
 (0)