Skip to content

More fixes for next version of mypy #5628

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 27, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cirq-core/cirq/ops/pauli_interaction_gate.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
if TYPE_CHECKING:
import cirq

PAULI_EIGEN_MAP: Dict[pauli_gates.Pauli, np.ndarray] = {
PAULI_EIGEN_MAP: Dict[pauli_gates.Pauli, Tuple[np.ndarray, np.ndarray]] = {
pauli_gates.X: (np.array([[0.5, 0.5], [0.5, 0.5]]), np.array([[0.5, -0.5], [-0.5, 0.5]])),
pauli_gates.Y: (np.array([[0.5, -0.5j], [0.5j, 0.5]]), np.array([[0.5, 0.5j], [-0.5j, 0.5]])),
pauli_gates.Z: (np.diag([1, 0]), np.diag([0, 1])),
Expand Down
4 changes: 3 additions & 1 deletion cirq-core/cirq/protocols/apply_channel_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,9 @@ def _apply_channel_(


def apply_channel(
val: Any, args: ApplyChannelArgs, default: TDefault = RaiseTypeErrorIfNotProvided
val: Any,
args: ApplyChannelArgs,
default: Union[np.ndarray, TDefault] = RaiseTypeErrorIfNotProvided,
) -> Union[np.ndarray, TDefault]:
"""High performance evolution under a channel evolution.

Expand Down
9 changes: 5 additions & 4 deletions cirq-core/cirq/protocols/apply_mixture_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,10 @@ def _apply_mixture_(


def apply_mixture(
val: Any, args: ApplyMixtureArgs, *, default: TDefault = RaiseTypeErrorIfNotProvided
val: Any,
args: ApplyMixtureArgs,
*,
default: Union[np.ndarray, TDefault] = RaiseTypeErrorIfNotProvided,
) -> Union[np.ndarray, TDefault]:
"""High performance evolution under a mixture of unitaries evolution.

Expand Down Expand Up @@ -357,9 +360,7 @@ def _apply_unitary_from_matrix_strat(
return args.target_tensor


def _mixture_strat(
val: Any, args: 'ApplyMixtureArgs', is_density_matrix: bool
) -> Optional[np.ndarray]:
def _mixture_strat(val: Any, args: 'ApplyMixtureArgs', is_density_matrix: bool) -> np.ndarray:
"""Attempt to use unitary matrices in _mixture_ and return the result."""
args.out_buffer[:] = 0
np.copyto(dst=args.auxiliary_buffer1, src=args.target_tensor)
Expand Down
2 changes: 1 addition & 1 deletion cirq-core/cirq/protocols/apply_unitary_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ def _apply_unitary_(
def apply_unitary(
unitary_value: Any,
args: ApplyUnitaryArgs,
default: TDefault = RaiseTypeErrorIfNotProvided,
default: Union[np.ndarray, TDefault] = RaiseTypeErrorIfNotProvided,
*,
allow_decompose: bool = True,
) -> Union[np.ndarray, TDefault]:
Expand Down
2 changes: 1 addition & 1 deletion cirq-core/cirq/protocols/commutes_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def commutes(
v2: Any,
*,
atol: Union[int, float] = 1e-8,
default: TDefault = RaiseTypeErrorIfNotProvided,
default: Union[bool, TDefault] = RaiseTypeErrorIfNotProvided,
) -> Union[bool, TDefault]:
"""Determines whether two values commute.

Expand Down
2 changes: 1 addition & 1 deletion cirq-core/cirq/protocols/unitary_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def _has_unitary_(self) -> bool:


def unitary(
val: Any, default: TDefault = RaiseTypeErrorIfNotProvided
val: Any, default: Union[np.ndarray, TDefault] = RaiseTypeErrorIfNotProvided
) -> Union[np.ndarray, TDefault]:
"""Returns a unitary matrix describing the given value.

Expand Down
4 changes: 3 additions & 1 deletion cirq-core/cirq/sim/sparse_simulator_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,9 @@ def test_simulate_random_unitary(dtype: Type[np.complexfloating], split: bool):
result = simulator.simulate(random_circuit, qubit_order=[q0, q1], initial_state=x)
circuit_unitary.append(result.final_state_vector)
np.testing.assert_almost_equal(
np.transpose(circuit_unitary), random_circuit.unitary(qubit_order=[q0, q1]), decimal=6
np.transpose(np.array(circuit_unitary)),
random_circuit.unitary(qubit_order=[q0, q1]),
decimal=6,
)


Expand Down
8 changes: 4 additions & 4 deletions cirq-google/cirq_google/ops/fsim_gate_family.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

def _exp(theta: Union[complex, sympy.Basic]):
"""Utility method to return exp(theta) using numpy or sympy, depending on the type of theta."""
return sympy.exp(theta) if cirq.is_parameterized(theta) else np.exp(theta)
return sympy.exp(theta) if cirq.is_parameterized(theta) else np.exp(cast(complex, theta))


def _gates_to_str(gates: Iterable[Any], gettr: Callable[[Any], str] = _gate_str) -> str:
Expand Down Expand Up @@ -360,7 +360,7 @@ def _convert_to_fsim(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.FSimGate]:
def _convert_to_phased_fsim(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.PhasedFSimGate]:
if isinstance(g, cirq.PhasedFSimGate):
return g
chi = 0
chi = 0.0
if isinstance(g, cirq.PhasedISwapPowGate):
chi = g.phase_exponent * 2 * np.pi
g = g._iswap
Expand All @@ -376,7 +376,7 @@ def _convert_to_iswap(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.ISwapPowGat
return (
None
if (fsim is None or not self._approx_eq_or_symbol(fsim.phi, 0))
else cirq.ISWAP ** (-2 * fsim.theta / np.pi)
else cirq.ISwapPowGate(exponent=-2 * fsim.theta / np.pi)
)

def _convert_to_phased_iswap(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.PhasedISwapPowGate]:
Expand All @@ -400,7 +400,7 @@ def _convert_to_cz(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.CZPowGate]:
return (
None
if (cg is None or not self._approx_eq_or_symbol(cg.theta, 0))
else cirq.CZ ** (-cg.phi / np.pi)
else cirq.CZPowGate(exponent=-cg.phi / np.pi)
)

def _convert_to_identity(self, g: POSSIBLE_FSIM_GATES) -> Optional[cirq.IdentityGate]:
Expand Down
12 changes: 6 additions & 6 deletions cirq-google/cirq_google/optimizers/two_qubit_gates/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,16 +80,16 @@ def main(samples: int = 1000, max_infidelity: float = 0.01):

print(f'Gate compilation time : {t_comp:.3f} seconds ({t_comp / samples:.4f} s per gate)')

infidelities = np.array(infidelities)
failed_infidelities = np.array(failed_infidelities)
infidelities_arr = np.array(infidelities)
failed_infidelities_arr = np.array(failed_infidelities)

if np.size(failed_infidelities):
if np.size(failed_infidelities_arr):
# coverage: ignore
print(f'Number of "failed" compilations: {np.size(failed_infidelities)}.')
print(f'Maximum infidelity of "failed" compilation: {np.max(failed_infidelities)}')
print(f'Number of "failed" compilations: {np.size(failed_infidelities_arr)}.')
print(f'Maximum infidelity of "failed" compilation: {np.max(failed_infidelities_arr)}')

plt.figure()
plt.hist(infidelities, bins=25, range=[0, max_infidelity * 1.1])
plt.hist(infidelities_arr, bins=25, range=[0, max_infidelity * 1.1])
ylim = plt.ylim()
plt.plot([max_infidelity] * 2, ylim, '--', label='Maximum tabulation infidelity')
plt.xlabel('Compiled gate infidelity vs target')
Expand Down