machichima commented on code in PR #641:
URL: https://github.com/apache/mahout/pull/641#discussion_r2616656431
##########
qumat/qiskit_backend.py:
##########
@@ -27,65 +30,77 @@ def initialize_backend(backend_config):
return backend
-def create_empty_circuit(num_qubits: int | None = None):
+def create_empty_circuit(num_qubits: int | None = None) ->
qiskit.QuantumCircuit:
if num_qubits is not None:
return qiskit.QuantumCircuit(num_qubits)
else:
return qiskit.QuantumCircuit()
-def apply_not_gate(circuit, qubit_index):
+def apply_not_gate(circuit: qiskit.QuantumCircuit, qubit_index: int) -> None:
# Apply a NOT gate (X gate) on the specified qubit
circuit.x(qubit_index)
-def apply_hadamard_gate(circuit, qubit_index):
+def apply_hadamard_gate(circuit: qiskit.QuantumCircuit, qubit_index: int) ->
None:
# Apply a Hadamard gate on the specified qubit
circuit.h(qubit_index)
-def apply_cnot_gate(circuit, control_qubit_index, target_qubit_index):
+def apply_cnot_gate(
+ circuit: qiskit.QuantumCircuit, control_qubit_index: int,
target_qubit_index: int
+) -> None:
# Apply a CNOT gate (controlled-X gate) with the specified control and
# target qubits
circuit.cx(control_qubit_index, target_qubit_index)
def apply_toffoli_gate(
- circuit, control_qubit_index1, control_qubit_index2, target_qubit_index
-):
+ circuit: qiskit.QuantumCircuit,
+ control_qubit_index1: int,
+ control_qubit_index2: int,
+ target_qubit_index: int,
+) -> None:
# Apply a Toffoli gate (controlled-controlled-X gate) with the
# specified control and target qubits
circuit.ccx(control_qubit_index1, control_qubit_index2, target_qubit_index)
-def apply_swap_gate(circuit, qubit_index1, qubit_index2):
+def apply_swap_gate(
+ circuit: qiskit.QuantumCircuit, qubit_index1: int, qubit_index2: int
+) -> None:
# Apply a SWAP gate to exchange the states of two qubits
circuit.swap(qubit_index1, qubit_index2)
def apply_cswap_gate(
- circuit, control_qubit_index, target_qubit_index1, target_qubit_index2
-):
+ circuit: qiskit.QuantumCircuit,
+ control_qubit_index: int,
+ target_qubit_index1: int,
+ target_qubit_index2: int,
+) -> None:
# Apply a controlled-SWAP (Fredkin) gate with the specified control and
target qubits
circuit.cswap(control_qubit_index, target_qubit_index1,
target_qubit_index2)
-def apply_pauli_x_gate(circuit, qubit_index):
+def apply_pauli_x_gate(circuit: qiskit.QuantumCircuit, qubit_index: int) ->
None:
# Apply a Pauli X gate on the specified qubit
circuit.x(qubit_index)
-def apply_pauli_y_gate(circuit, qubit_index):
+def apply_pauli_y_gate(circuit: qiskit.QuantumCircuit, qubit_index: int) ->
None:
# Apply a Pauli Y gate on the specified qubit
circuit.y(qubit_index)
-def apply_pauli_z_gate(circuit, qubit_index):
+def apply_pauli_z_gate(circuit: qiskit.QuantumCircuit, qubit_index: int) ->
None:
# Apply a Pauli Z gate on the specified qubit
circuit.z(qubit_index)
-def execute_circuit(circuit, backend, backend_config):
+def execute_circuit(
+ circuit: qiskit.QuantumCircuit, backend: Any, backend_config: dict[str,
Any]
Review Comment:
```suggestion
circuit: qiskit.QuantumCircuit, backend:
qiskit.providers.backend.Backend, backend_config: dict[str, Any]
```
Not quite sure what exact type should be here, but better to avoid `Any`.
WDYT?
##########
pyproject.toml:
##########
@@ -12,17 +12,41 @@ dependencies = [
"cirq>=1.5.0,<1.6.0",
"amazon-braket-sdk>=1.102.6,<2.0",
"sympy>=1.14.0,<2.0",
+ "flask (>=3.1.2,<4.0.0)",
]
[project.optional-dependencies]
-dev = ["pytest>=8.1.1", "ruff>=0.13.1", "pre-commit>=3.0.0"]
+dev = ["pytest>=8.1.1", "ruff>=0.13.1", "pre-commit>=3.0.0", "mypy>=1.0.0"]
[tool.pytest.ini_options]
testpaths = ["testing"]
python_files = "test_*.py"
python_functions = "test_*"
addopts = ["-v", "--tb=short"]
+[tool.mypy]
+python_version = "3.10"
+warn_return_any = true
+warn_unused_configs = true
+disallow_untyped_defs = false
+disallow_incomplete_defs = false
+check_untyped_defs = true
+no_implicit_optional = true
+warn_redundant_casts = true
+warn_unused_ignores = true
+strict_equality = true
Review Comment:
While we are here, maybe we can also add things like
```toml
warn_unreachable = true
strict_optional = true
```
to detect dead code and check if we miss `Optional` for args that can take
`None`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]