cirq-core 1.7.0.dev20250924231107__py3-none-any.whl → 1.7.0.dev20251203004401__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cirq/__init__.py +1 -0
- cirq/_compat.py +3 -2
- cirq/_compat_test.py +16 -15
- cirq/_doc.py +4 -3
- cirq/_import.py +2 -1
- cirq/_version.py +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/_bucket_priority_queue.py +2 -1
- cirq/circuits/circuit.py +7 -13
- cirq/circuits/circuit_operation.py +2 -1
- cirq/circuits/circuit_test.py +13 -12
- cirq/circuits/frozen_circuit.py +3 -2
- cirq/circuits/moment.py +3 -15
- cirq/circuits/optimization_pass.py +2 -1
- cirq/circuits/qasm_output.py +39 -10
- cirq/circuits/qasm_output_test.py +51 -2
- cirq/circuits/text_diagram_drawer.py +2 -1
- cirq/contrib/acquaintance/bipartite.py +2 -1
- cirq/contrib/acquaintance/devices.py +1 -1
- cirq/contrib/acquaintance/executor.py +4 -5
- cirq/contrib/acquaintance/executor_test.py +2 -1
- cirq/contrib/acquaintance/gates.py +2 -1
- cirq/contrib/acquaintance/gates_test.py +1 -1
- cirq/contrib/acquaintance/inspection_utils.py +2 -1
- cirq/contrib/acquaintance/mutation_utils.py +2 -1
- cirq/contrib/acquaintance/optimizers.py +2 -1
- cirq/contrib/acquaintance/permutation.py +2 -1
- cirq/contrib/acquaintance/permutation_test.py +1 -1
- cirq/contrib/acquaintance/shift.py +2 -1
- cirq/contrib/acquaintance/shift_swap_network.py +2 -1
- cirq/contrib/acquaintance/strategies/complete.py +3 -2
- cirq/contrib/acquaintance/strategies/cubic.py +2 -1
- cirq/contrib/acquaintance/strategies/quartic_paired.py +2 -1
- cirq/contrib/acquaintance/strategies/quartic_paired_test.py +1 -1
- cirq/contrib/acquaintance/testing.py +2 -1
- cirq/contrib/acquaintance/topological_sort.py +2 -1
- cirq/contrib/bayesian_network/bayesian_network_gate.py +3 -2
- cirq/contrib/circuitdag/circuit_dag.py +4 -2
- cirq/contrib/custom_simulators/custom_state_simulator.py +2 -1
- cirq/contrib/custom_simulators/custom_state_simulator_test.py +1 -1
- cirq/contrib/graph_device/graph_device.py +2 -1
- cirq/contrib/graph_device/graph_device_test.py +2 -1
- cirq/contrib/graph_device/hypergraph.py +2 -1
- cirq/contrib/graph_device/uniform_graph_device.py +2 -1
- cirq/contrib/json.py +14 -2
- cirq/contrib/json_test_data/BayesianNetworkGate.json +10 -0
- cirq/contrib/json_test_data/BayesianNetworkGate.repr +3 -0
- cirq/contrib/json_test_data/QuantumVolumeResult.json +169 -0
- cirq/contrib/json_test_data/QuantumVolumeResult.repr +22 -0
- cirq/contrib/json_test_data/SwapPermutationGate.json +3 -0
- cirq/contrib/json_test_data/SwapPermutationGate.repr +1 -0
- cirq/contrib/json_test_data/spec.py +0 -2
- cirq/contrib/noise_models/noise_models.py +2 -1
- cirq/contrib/paulistring/clifford_optimize.py +20 -2
- cirq/contrib/paulistring/optimize.py +1 -1
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py +146 -35
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py +74 -171
- cirq/contrib/paulistring/recombine.py +5 -2
- cirq/contrib/paulistring/separate.py +1 -1
- cirq/contrib/qasm_import/_parser.py +2 -1
- cirq/contrib/qasm_import/_parser_test.py +3 -3
- cirq/contrib/quantikz/__init__.py +21 -0
- cirq/contrib/quantikz/circuit_to_latex_quantikz.py +680 -0
- cirq/contrib/quantikz/circuit_to_latex_quantikz_test.py +253 -0
- cirq/contrib/quantikz/circuit_to_latex_render.py +424 -0
- cirq/contrib/quantikz/circuit_to_latex_render_test.py +44 -0
- cirq/contrib/quantum_volume/quantum_volume.py +2 -1
- cirq/contrib/quimb/density_matrix.py +1 -1
- cirq/contrib/quimb/grid_circuits.py +2 -1
- cirq/contrib/quimb/grid_circuits_test.py +1 -1
- cirq/contrib/quimb/mps_simulator.py +4 -3
- cirq/contrib/quimb/state_vector.py +2 -1
- cirq/contrib/quirk/export_to_quirk.py +2 -1
- cirq/contrib/quirk/linearize_circuit.py +1 -1
- cirq/contrib/quirk/quirk_gate.py +2 -1
- cirq/contrib/routing/device.py +1 -1
- cirq/contrib/routing/greedy.py +2 -1
- cirq/contrib/routing/initialization.py +2 -1
- cirq/contrib/routing/router.py +2 -1
- cirq/contrib/routing/swap_network.py +2 -1
- cirq/contrib/routing/utils.py +2 -1
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py +7 -5
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py +6 -6
- cirq/devices/device.py +2 -1
- cirq/devices/grid_device_metadata.py +2 -1
- cirq/devices/grid_qubit.py +7 -6
- cirq/devices/insertion_noise_model.py +2 -1
- cirq/devices/line_qubit.py +2 -1
- cirq/devices/named_topologies.py +2 -1
- cirq/devices/noise_model.py +2 -1
- cirq/devices/noise_model_test.py +1 -1
- cirq/devices/noise_properties.py +2 -1
- cirq/devices/superconducting_qubits_noise_properties_test.py +2 -1
- cirq/devices/thermal_noise_model.py +2 -1
- cirq/experiments/__init__.py +2 -0
- cirq/experiments/benchmarking/parallel_xeb.py +2 -1
- cirq/experiments/benchmarking/parallel_xeb_test.py +1 -1
- cirq/experiments/fidelity_estimation.py +2 -1
- cirq/experiments/fidelity_estimation_test.py +1 -1
- cirq/experiments/ghz_2d.py +150 -0
- cirq/experiments/ghz_2d_test.py +155 -0
- cirq/experiments/n_qubit_tomography.py +2 -1
- cirq/experiments/n_qubit_tomography_test.py +1 -1
- cirq/experiments/purity_estimation.py +1 -1
- cirq/experiments/qubit_characterizations.py +2 -1
- cirq/experiments/random_quantum_circuit_generation.py +2 -1
- cirq/experiments/random_quantum_circuit_generation_test.py +2 -1
- cirq/experiments/readout_confusion_matrix.py +2 -1
- cirq/experiments/readout_confusion_matrix_test.py +1 -1
- cirq/experiments/single_qubit_readout_calibration.py +2 -1
- cirq/experiments/single_qubit_readout_calibration_test.py +1 -1
- cirq/experiments/t1_decay_experiment.py +2 -1
- cirq/experiments/two_qubit_xeb.py +2 -1
- cirq/experiments/two_qubit_xeb_test.py +1 -1
- cirq/experiments/xeb_fitting.py +2 -1
- cirq/experiments/xeb_fitting_test.py +1 -1
- cirq/experiments/xeb_sampling.py +5 -3
- cirq/experiments/xeb_sampling_test.py +1 -1
- cirq/experiments/xeb_simulation.py +2 -1
- cirq/experiments/xeb_simulation_test.py +2 -1
- cirq/experiments/z_phase_calibration.py +2 -1
- cirq/experiments/z_phase_calibration_test.py +18 -3
- cirq/interop/quirk/cells/__init__.py +1 -2
- cirq/interop/quirk/cells/all_cells.py +2 -1
- cirq/interop/quirk/cells/arithmetic_cells.py +2 -1
- cirq/interop/quirk/cells/cell.py +2 -1
- cirq/interop/quirk/cells/composite_cell.py +2 -1
- cirq/interop/quirk/cells/composite_cell_test.py +1 -1
- cirq/interop/quirk/cells/control_cells.py +2 -1
- cirq/interop/quirk/cells/frequency_space_cells.py +1 -1
- cirq/interop/quirk/cells/ignored_cells.py +1 -1
- cirq/interop/quirk/cells/input_cells.py +2 -1
- cirq/interop/quirk/cells/input_rotation_cells.py +2 -1
- cirq/interop/quirk/cells/measurement_cells.py +2 -1
- cirq/interop/quirk/cells/parse.py +2 -11
- cirq/interop/quirk/cells/qubit_permutation_cells.py +2 -1
- cirq/interop/quirk/cells/scalar_cells.py +2 -1
- cirq/interop/quirk/cells/single_qubit_rotation_cells.py +2 -1
- cirq/interop/quirk/cells/swap_cell.py +2 -1
- cirq/interop/quirk/cells/unsupported_cells.py +1 -1
- cirq/interop/quirk/url_to_circuit.py +2 -1
- cirq/json_resolver_cache.py +0 -2
- cirq/linalg/decompositions.py +6 -2
- cirq/linalg/decompositions_test.py +1 -0
- cirq/linalg/diagonalize.py +1 -1
- cirq/linalg/predicates.py +2 -1
- cirq/linalg/tolerance.py +2 -1
- cirq/linalg/transformations.py +2 -1
- cirq/ops/arithmetic_operation.py +2 -1
- cirq/ops/arithmetic_operation_test.py +1 -1
- cirq/ops/boolean_hamiltonian.py +4 -3
- cirq/ops/classically_controlled_operation.py +3 -2
- cirq/ops/clifford_gate.py +2 -1
- cirq/ops/clifford_gate_test.py +1 -2
- cirq/ops/common_channels.py +2 -1
- cirq/ops/common_gates.py +2 -1
- cirq/ops/control_values.py +2 -1
- cirq/ops/controlled_gate.py +3 -2
- cirq/ops/controlled_gate_test.py +2 -1
- cirq/ops/controlled_operation.py +3 -2
- cirq/ops/controlled_operation_test.py +2 -1
- cirq/ops/dense_pauli_string.py +3 -13
- cirq/ops/diagonal_gate.py +3 -2
- cirq/ops/eigen_gate.py +9 -7
- cirq/ops/fourier_transform.py +3 -2
- cirq/ops/fourier_transform_test.py +2 -4
- cirq/ops/fsim_gate.py +3 -2
- cirq/ops/gate_operation.py +8 -12
- cirq/ops/gateset.py +22 -2
- cirq/ops/global_phase_op.py +3 -2
- cirq/ops/greedy_qubit_manager.py +2 -1
- cirq/ops/identity.py +2 -1
- cirq/ops/kraus_channel.py +2 -1
- cirq/ops/linear_combinations.py +8 -3
- cirq/ops/linear_combinations_test.py +23 -1
- cirq/ops/matrix_gates.py +2 -1
- cirq/ops/measure_util.py +2 -1
- cirq/ops/measurement_gate.py +2 -1
- cirq/ops/mixed_unitary_channel.py +2 -1
- cirq/ops/named_qubit.py +2 -2
- cirq/ops/op_tree.py +2 -1
- cirq/ops/parallel_gate.py +3 -2
- cirq/ops/parity_gates.py +2 -1
- cirq/ops/pauli_interaction_gate.py +2 -1
- cirq/ops/pauli_measurement_gate.py +2 -1
- cirq/ops/pauli_string.py +6 -12
- cirq/ops/pauli_string_phasor.py +3 -2
- cirq/ops/pauli_string_raw_types.py +2 -1
- cirq/ops/pauli_string_test.py +2 -2
- cirq/ops/pauli_sum_exponential.py +2 -1
- cirq/ops/permutation_gate.py +2 -1
- cirq/ops/phased_iswap_gate.py +3 -2
- cirq/ops/phased_x_gate.py +5 -4
- cirq/ops/phased_x_z_gate.py +12 -5
- cirq/ops/projector.py +2 -1
- cirq/ops/qubit_manager.py +2 -1
- cirq/ops/qubit_order.py +2 -1
- cirq/ops/qubit_order_or_list.py +1 -1
- cirq/ops/random_gate_channel.py +3 -2
- cirq/ops/raw_types.py +7 -15
- cirq/ops/raw_types_test.py +4 -3
- cirq/ops/state_preparation_channel.py +2 -1
- cirq/ops/three_qubit_gates.py +3 -2
- cirq/ops/two_qubit_diagonal_gate.py +3 -2
- cirq/ops/uniform_superposition_gate.py +2 -1
- cirq/ops/wait_gate.py +10 -4
- cirq/protocols/act_on_protocol.py +2 -1
- cirq/protocols/act_on_protocol_test.py +2 -1
- cirq/protocols/apply_channel_protocol.py +2 -1
- cirq/protocols/apply_mixture_protocol.py +2 -1
- cirq/protocols/apply_mixture_protocol_test.py +2 -1
- cirq/protocols/apply_unitary_protocol.py +2 -1
- cirq/protocols/apply_unitary_protocol_test.py +2 -0
- cirq/protocols/approximate_equality_protocol.py +2 -1
- cirq/protocols/circuit_diagram_info_protocol.py +2 -1
- cirq/protocols/decompose_protocol.py +2 -12
- cirq/protocols/has_stabilizer_effect_protocol.py +1 -1
- cirq/protocols/hash_from_pickle_test.py +2 -2
- cirq/protocols/inverse_protocol.py +2 -1
- cirq/protocols/json_serialization.py +2 -1
- cirq/protocols/kraus_protocol.py +4 -3
- cirq/protocols/kraus_protocol_test.py +2 -2
- cirq/protocols/measurement_key_protocol.py +2 -1
- cirq/protocols/mixture_protocol.py +2 -1
- cirq/protocols/pow_protocol.py +2 -1
- cirq/protocols/qasm.py +2 -1
- cirq/protocols/qid_shape_protocol.py +2 -1
- cirq/protocols/resolve_parameters.py +16 -14
- cirq/protocols/trace_distance_bound.py +2 -1
- cirq/protocols/unitary_protocol.py +21 -21
- cirq/qis/channels.py +1 -1
- cirq/qis/channels_test.py +1 -1
- cirq/qis/clifford_tableau.py +2 -1
- cirq/qis/entropy.py +2 -2
- cirq/qis/quantum_state_representation.py +2 -1
- cirq/qis/states.py +7 -2
- cirq/sim/classical_simulator.py +2 -1
- cirq/sim/clifford/clifford_simulator.py +2 -1
- cirq/sim/clifford/clifford_simulator_test.py +1 -1
- cirq/sim/clifford/clifford_tableau_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_ch_form_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_sampler.py +1 -1
- cirq/sim/clifford/stabilizer_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_state_ch_form.py +3 -2
- cirq/sim/clifford/stabilizer_state_ch_form_test.py +0 -1
- cirq/sim/density_matrix_simulation_state.py +2 -1
- cirq/sim/density_matrix_simulator.py +2 -1
- cirq/sim/density_matrix_utils.py +2 -1
- cirq/sim/mux.py +2 -1
- cirq/sim/mux_test.py +0 -1
- cirq/sim/simulation_product_state.py +2 -1
- cirq/sim/simulation_product_state_test.py +2 -1
- cirq/sim/simulation_state.py +2 -1
- cirq/sim/simulation_state_base.py +2 -1
- cirq/sim/simulation_state_test.py +2 -1
- cirq/sim/simulation_utils.py +2 -1
- cirq/sim/simulator.py +2 -1
- cirq/sim/simulator_base.py +2 -1
- cirq/sim/simulator_base_test.py +2 -1
- cirq/sim/simulator_test.py +2 -1
- cirq/sim/sparse_simulator.py +2 -1
- cirq/sim/state_vector.py +2 -1
- cirq/sim/state_vector_simulation_state.py +2 -1
- cirq/sim/state_vector_simulator.py +2 -1
- cirq/sim/state_vector_test.py +1 -2
- cirq/study/__init__.py +1 -0
- cirq/study/flatten_expressions.py +2 -1
- cirq/study/resolver.py +31 -18
- cirq/study/resolver_test.py +1 -1
- cirq/study/result.py +2 -1
- cirq/study/sweepable.py +2 -1
- cirq/study/sweeps.py +26 -1
- cirq/study/sweeps_test.py +24 -0
- cirq/testing/_compat_test_data/__init__.py +3 -3
- cirq/testing/circuit_compare.py +2 -1
- cirq/testing/consistent_act_on_test.py +1 -1
- cirq/testing/consistent_controlled_gate_op.py +1 -1
- cirq/testing/consistent_controlled_gate_op_test.py +2 -1
- cirq/testing/consistent_protocols.py +2 -1
- cirq/testing/consistent_protocols_test.py +3 -3
- cirq/testing/consistent_qasm.py +2 -1
- cirq/testing/consistent_resolve_parameters.py +1 -1
- cirq/testing/consistent_unitary.py +1 -1
- cirq/testing/consistent_unitary_test.py +1 -1
- cirq/testing/deprecation.py +1 -1
- cirq/testing/devices.py +3 -2
- cirq/testing/equals_tester.py +4 -3
- cirq/testing/equivalent_basis_map.py +4 -2
- cirq/testing/json.py +3 -2
- cirq/testing/logs.py +1 -1
- cirq/testing/op_tree.py +1 -1
- cirq/testing/order_tester.py +2 -2
- cirq/testing/pytest_utils.py +2 -1
- cirq/testing/random_circuit.py +2 -1
- cirq/testing/random_circuit_test.py +2 -1
- cirq/testing/repr_pretty_tester.py +3 -3
- cirq/transformers/__init__.py +1 -0
- cirq/transformers/_connected_component.py +231 -0
- cirq/transformers/_connected_component_test.py +200 -0
- cirq/transformers/align_test.py +13 -13
- cirq/transformers/analytical_decompositions/clifford_decomposition.py +8 -7
- cirq/transformers/analytical_decompositions/clifford_decomposition_test.py +5 -5
- cirq/transformers/analytical_decompositions/controlled_gate_decomposition.py +11 -10
- cirq/transformers/analytical_decompositions/controlled_gate_decomposition_test.py +6 -6
- cirq/transformers/analytical_decompositions/cphase_to_fsim.py +3 -2
- cirq/transformers/analytical_decompositions/cphase_to_fsim_test.py +11 -10
- cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py +8 -7
- cirq/transformers/analytical_decompositions/quantum_shannon_decomposition_test.py +17 -20
- cirq/transformers/analytical_decompositions/single_qubit_decompositions_test.py +33 -27
- cirq/transformers/analytical_decompositions/single_to_two_qubit_isometry_test.py +1 -1
- cirq/transformers/analytical_decompositions/three_qubit_decomposition.py +1 -1
- cirq/transformers/analytical_decompositions/two_qubit_state_preparation_test.py +12 -11
- cirq/transformers/analytical_decompositions/two_qubit_to_cz.py +5 -2
- cirq/transformers/analytical_decompositions/two_qubit_to_cz_test.py +3 -3
- cirq/transformers/analytical_decompositions/two_qubit_to_fsim.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_ms.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_ms_test.py +2 -2
- cirq/transformers/analytical_decompositions/two_qubit_to_sqrt_iswap.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_sqrt_iswap_test.py +32 -30
- cirq/transformers/drop_negligible_operations_test.py +7 -7
- cirq/transformers/dynamical_decoupling.py +185 -112
- cirq/transformers/dynamical_decoupling_test.py +195 -201
- cirq/transformers/eject_phased_paulis.py +2 -1
- cirq/transformers/eject_phased_paulis_test.py +3 -2
- cirq/transformers/eject_z.py +4 -3
- cirq/transformers/eject_z_test.py +23 -25
- cirq/transformers/expand_composite.py +3 -2
- cirq/transformers/expand_composite_test.py +14 -14
- cirq/transformers/gauge_compiling/__init__.py +8 -0
- cirq/transformers/gauge_compiling/gauge_compiling.py +3 -2
- cirq/transformers/gauge_compiling/gauge_compiling_test.py +14 -12
- cirq/transformers/gauge_compiling/gauge_compiling_test_utils.py +3 -3
- cirq/transformers/gauge_compiling/idle_moments_gauge.py +5 -2
- cirq/transformers/gauge_compiling/multi_moment_cphase_gauge.py +242 -0
- cirq/transformers/gauge_compiling/multi_moment_cphase_gauge_test.py +243 -0
- cirq/transformers/gauge_compiling/multi_moment_gauge_compiling.py +151 -0
- cirq/transformers/gauge_compiling/sqrt_cz_gauge.py +2 -1
- cirq/transformers/heuristic_decompositions/gate_tabulation_math_utils.py +1 -1
- cirq/transformers/heuristic_decompositions/gate_tabulation_math_utils_test.py +6 -6
- cirq/transformers/heuristic_decompositions/two_qubit_gate_tabulation.py +2 -1
- cirq/transformers/measurement_transformers.py +2 -1
- cirq/transformers/measurement_transformers_test.py +45 -39
- cirq/transformers/merge_k_qubit_gates.py +2 -1
- cirq/transformers/merge_k_qubit_gates_test.py +1 -1
- cirq/transformers/merge_single_qubit_gates.py +2 -1
- cirq/transformers/merge_single_qubit_gates_test.py +22 -22
- cirq/transformers/noise_adding_test.py +2 -2
- cirq/transformers/optimize_for_target_gateset.py +2 -1
- cirq/transformers/optimize_for_target_gateset_test.py +11 -9
- cirq/transformers/qubit_management_transformers_test.py +6 -2
- cirq/transformers/routing/mapping_manager.py +2 -1
- cirq/transformers/routing/route_circuit_cqc.py +2 -1
- cirq/transformers/stratify.py +2 -1
- cirq/transformers/symbolize.py +2 -1
- cirq/transformers/tag_transformers.py +2 -1
- cirq/transformers/target_gatesets/compilation_target_gateset.py +2 -1
- cirq/transformers/target_gatesets/cz_gateset.py +2 -1
- cirq/transformers/target_gatesets/cz_gateset_test.py +1 -1
- cirq/transformers/target_gatesets/sqrt_iswap_gateset.py +2 -1
- cirq/transformers/transformer_api.py +2 -1
- cirq/transformers/transformer_primitives.py +271 -145
- cirq/transformers/transformer_primitives_test.py +185 -1
- cirq/value/abc_alt.py +2 -1
- cirq/value/classical_data.py +2 -1
- cirq/value/condition.py +2 -1
- cirq/value/digits.py +9 -2
- cirq/value/duration.py +6 -5
- cirq/value/linear_dict.py +4 -9
- cirq/value/measurement_key.py +2 -1
- cirq/value/periodic_value.py +3 -2
- cirq/value/product_state.py +2 -1
- cirq/value/value_equality_attr.py +2 -1
- cirq/vis/density_matrix.py +1 -1
- cirq/vis/heatmap.py +2 -1
- cirq/vis/histogram.py +2 -1
- cirq/vis/state_histogram.py +2 -1
- cirq/work/collector.py +2 -1
- cirq/work/observable_grouping.py +2 -1
- cirq/work/observable_measurement.py +2 -1
- cirq/work/observable_measurement_data.py +2 -1
- cirq/work/observable_measurement_test.py +1 -1
- cirq/work/observable_readout_calibration.py +2 -1
- cirq/work/observable_readout_calibration_test.py +1 -1
- cirq/work/observable_settings.py +2 -1
- cirq/work/sampler.py +2 -1
- cirq/work/sampler_test.py +1 -1
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/METADATA +4 -4
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/RECORD +391 -374
- cirq/contrib/json_test.py +0 -33
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/WHEEL +0 -0
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/top_level.txt +0 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterator
|
|
18
18
|
|
|
19
19
|
import pytest
|
|
20
20
|
|
|
@@ -877,3 +877,187 @@ def test_merge_operations_does_not_merge_measurements_behind_ccos():
|
|
|
877
877
|
cirq.testing.assert_same_circuits(
|
|
878
878
|
cirq.align_left(cirq.merge_operations(circuit, merge_func)), expected_circuit
|
|
879
879
|
)
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
def test_merge_3q_unitaries_to_circuit_op_3q_gate_absorbs_overlapping_2q_gates():
|
|
883
|
+
q = cirq.LineQubit.range(3)
|
|
884
|
+
c_orig = cirq.Circuit(
|
|
885
|
+
cirq.Moment(
|
|
886
|
+
cirq.H(q[0]).with_tags("ignore"),
|
|
887
|
+
cirq.H(q[1]).with_tags("ignore"),
|
|
888
|
+
cirq.H(q[2]).with_tags("ignore"),
|
|
889
|
+
),
|
|
890
|
+
cirq.Moment(cirq.CNOT(q[0], q[2]), cirq.X(q[1]).with_tags("ignore")),
|
|
891
|
+
cirq.CNOT(q[0], q[1]),
|
|
892
|
+
cirq.CNOT(q[1], q[2]),
|
|
893
|
+
cirq.CCZ(*q),
|
|
894
|
+
strategy=cirq.InsertStrategy.NEW,
|
|
895
|
+
)
|
|
896
|
+
cirq.testing.assert_has_diagram(
|
|
897
|
+
c_orig,
|
|
898
|
+
'''
|
|
899
|
+
┌──────────┐
|
|
900
|
+
0: ───H[ignore]────@─────────────@───────@───
|
|
901
|
+
│ │ │
|
|
902
|
+
1: ───H[ignore]────┼X[ignore]────X───@───@───
|
|
903
|
+
│ │ │
|
|
904
|
+
2: ───H[ignore]────X─────────────────X───@───
|
|
905
|
+
└──────────┘
|
|
906
|
+
''',
|
|
907
|
+
)
|
|
908
|
+
|
|
909
|
+
c_new = cirq.merge_k_qubit_unitaries_to_circuit_op(
|
|
910
|
+
c_orig, k=3, merged_circuit_op_tag="merged", tags_to_ignore=["ignore"]
|
|
911
|
+
)
|
|
912
|
+
cirq.testing.assert_has_diagram(
|
|
913
|
+
cirq.drop_empty_moments(c_new),
|
|
914
|
+
'''
|
|
915
|
+
[ 0: ───@───@───────@─── ]
|
|
916
|
+
[ │ │ │ ]
|
|
917
|
+
0: ───H[ignore]───────────────[ 1: ───┼───X───@───@─── ]───────────
|
|
918
|
+
[ │ │ │ ]
|
|
919
|
+
[ 2: ───X───────X───@─── ][merged]
|
|
920
|
+
│
|
|
921
|
+
1: ───H[ignore]───X[ignore]───#2───────────────────────────────────
|
|
922
|
+
│
|
|
923
|
+
2: ───H[ignore]───────────────#3───────────────────────────────────
|
|
924
|
+
''',
|
|
925
|
+
)
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
def test_merge_3q_unitaries_to_circuit_op_3q_gate_absorbs_disjoint_gates():
|
|
929
|
+
q = cirq.LineQubit.range(3)
|
|
930
|
+
c_orig = cirq.Circuit(
|
|
931
|
+
cirq.Moment(cirq.CNOT(q[0], q[1]), cirq.X(q[2])),
|
|
932
|
+
cirq.CCZ(*q),
|
|
933
|
+
strategy=cirq.InsertStrategy.NEW,
|
|
934
|
+
)
|
|
935
|
+
cirq.testing.assert_has_diagram(
|
|
936
|
+
c_orig,
|
|
937
|
+
'''
|
|
938
|
+
0: ───@───@───
|
|
939
|
+
│ │
|
|
940
|
+
1: ───X───@───
|
|
941
|
+
│
|
|
942
|
+
2: ───X───@───
|
|
943
|
+
''',
|
|
944
|
+
)
|
|
945
|
+
|
|
946
|
+
c_new = cirq.merge_k_qubit_unitaries_to_circuit_op(
|
|
947
|
+
c_orig, k=3, merged_circuit_op_tag="merged", tags_to_ignore=["ignore"]
|
|
948
|
+
)
|
|
949
|
+
cirq.testing.assert_has_diagram(
|
|
950
|
+
cirq.drop_empty_moments(c_new),
|
|
951
|
+
'''
|
|
952
|
+
[ 0: ───@───@─── ]
|
|
953
|
+
[ │ │ ]
|
|
954
|
+
0: ───[ 1: ───X───@─── ]───────────
|
|
955
|
+
[ │ ]
|
|
956
|
+
[ 2: ───X───@─── ][merged]
|
|
957
|
+
│
|
|
958
|
+
1: ───#2───────────────────────────
|
|
959
|
+
│
|
|
960
|
+
2: ───#3───────────────────────────
|
|
961
|
+
''',
|
|
962
|
+
)
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
def test_merge_3q_unitaries_to_circuit_op_3q_gate_doesnt_absorb_unmergeable_gate():
|
|
966
|
+
q = cirq.LineQubit.range(3)
|
|
967
|
+
c_orig = cirq.Circuit(
|
|
968
|
+
cirq.CCZ(*q),
|
|
969
|
+
cirq.Moment(cirq.CNOT(q[0], q[1]), cirq.X(q[2]).with_tags("ignore")),
|
|
970
|
+
cirq.CCZ(*q),
|
|
971
|
+
strategy=cirq.InsertStrategy.NEW,
|
|
972
|
+
)
|
|
973
|
+
cirq.testing.assert_has_diagram(
|
|
974
|
+
c_orig,
|
|
975
|
+
'''
|
|
976
|
+
0: ───@───@───────────@───
|
|
977
|
+
│ │ │
|
|
978
|
+
1: ───@───X───────────@───
|
|
979
|
+
│ │
|
|
980
|
+
2: ───@───X[ignore]───@───
|
|
981
|
+
''',
|
|
982
|
+
)
|
|
983
|
+
|
|
984
|
+
c_new = cirq.merge_k_qubit_unitaries_to_circuit_op(
|
|
985
|
+
c_orig, k=3, merged_circuit_op_tag="merged", tags_to_ignore=["ignore"]
|
|
986
|
+
)
|
|
987
|
+
cirq.testing.assert_has_diagram(
|
|
988
|
+
cirq.drop_empty_moments(c_new),
|
|
989
|
+
'''
|
|
990
|
+
[ 0: ───@───@─── ]
|
|
991
|
+
[ │ │ ]
|
|
992
|
+
0: ───[ 1: ───@───X─── ]───────────────────────@───
|
|
993
|
+
[ │ ] │
|
|
994
|
+
[ 2: ───@─────── ][merged] │
|
|
995
|
+
│ │
|
|
996
|
+
1: ───#2───────────────────────────────────────@───
|
|
997
|
+
│ │
|
|
998
|
+
2: ───#3───────────────────────────X[ignore]───@───
|
|
999
|
+
''',
|
|
1000
|
+
)
|
|
1001
|
+
|
|
1002
|
+
|
|
1003
|
+
def test_merge_3q_unitaries_to_circuit_op_prefer_to_merge_into_earlier_op():
|
|
1004
|
+
q = cirq.LineQubit.range(6)
|
|
1005
|
+
c_orig = cirq.Circuit(
|
|
1006
|
+
cirq.Moment(
|
|
1007
|
+
cirq.CCZ(*q[0:3]), cirq.X(q[3]), cirq.H(q[4]), cirq.H(q[5]).with_tags("ignore")
|
|
1008
|
+
),
|
|
1009
|
+
cirq.Moment(cirq.CNOT(q[0], q[1]), cirq.X(q[2]).with_tags("ignore"), cirq.CCZ(*q[3:6])),
|
|
1010
|
+
cirq.Moment(
|
|
1011
|
+
cirq.X(q[0]),
|
|
1012
|
+
cirq.X(q[1]),
|
|
1013
|
+
cirq.X(q[2]),
|
|
1014
|
+
cirq.X(q[3]).with_tags("ignore"),
|
|
1015
|
+
cirq.CNOT(*q[4:6]),
|
|
1016
|
+
),
|
|
1017
|
+
cirq.Moment(cirq.CCZ(*q[0:3]), cirq.CCZ(*q[3:6])),
|
|
1018
|
+
strategy=cirq.InsertStrategy.NEW,
|
|
1019
|
+
)
|
|
1020
|
+
cirq.testing.assert_has_diagram(
|
|
1021
|
+
c_orig,
|
|
1022
|
+
'''
|
|
1023
|
+
0: ───@───────────@───────────X───────────@───
|
|
1024
|
+
│ │ │
|
|
1025
|
+
1: ───@───────────X───────────X───────────@───
|
|
1026
|
+
│ │
|
|
1027
|
+
2: ───@───────────X[ignore]───X───────────@───
|
|
1028
|
+
|
|
1029
|
+
3: ───X───────────@───────────X[ignore]───@───
|
|
1030
|
+
│ │
|
|
1031
|
+
4: ───H───────────@───────────@───────────@───
|
|
1032
|
+
│ │ │
|
|
1033
|
+
5: ───H[ignore]───@───────────X───────────@───
|
|
1034
|
+
''',
|
|
1035
|
+
)
|
|
1036
|
+
|
|
1037
|
+
c_new = cirq.merge_k_qubit_unitaries_to_circuit_op(
|
|
1038
|
+
c_orig, k=3, merged_circuit_op_tag="merged", tags_to_ignore=["ignore"]
|
|
1039
|
+
)
|
|
1040
|
+
cirq.testing.assert_has_diagram(
|
|
1041
|
+
cirq.drop_empty_moments(c_new),
|
|
1042
|
+
'''
|
|
1043
|
+
[ 0: ───@───@───X─── ] [ 0: ───────@─── ]
|
|
1044
|
+
[ │ │ ] [ │ ]
|
|
1045
|
+
0: ───[ 1: ───@───X───X─── ]────────────────────────────────────────────────────────[ 1: ───────@─── ]───────────
|
|
1046
|
+
[ │ ] [ │ ]
|
|
1047
|
+
[ 2: ───@─────────── ][merged] [ 2: ───X───@─── ][merged]
|
|
1048
|
+
│ │
|
|
1049
|
+
1: ───#2────────────────────────────────────────────────────────────────────────────#2───────────────────────────
|
|
1050
|
+
│ │
|
|
1051
|
+
2: ───#3───────────────────────────────X[ignore]────────────────────────────────────#3───────────────────────────
|
|
1052
|
+
|
|
1053
|
+
[ 3: ───X───@─────── ]
|
|
1054
|
+
[ │ ]
|
|
1055
|
+
3: ────────────────────────────────────[ 4: ───H───@───@─── ]───────────X[ignore]───@────────────────────────────
|
|
1056
|
+
[ │ │ ] │
|
|
1057
|
+
[ 5: ───────@───X─── ][merged] │
|
|
1058
|
+
│ │
|
|
1059
|
+
4: ────────────────────────────────────#2───────────────────────────────────────────@────────────────────────────
|
|
1060
|
+
│ │
|
|
1061
|
+
5: ───H[ignore]────────────────────────#3───────────────────────────────────────────@────────────────────────────
|
|
1062
|
+
''', # noqa: E501
|
|
1063
|
+
)
|
cirq/value/abc_alt.py
CHANGED
cirq/value/classical_data.py
CHANGED
|
@@ -16,7 +16,8 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import abc
|
|
18
18
|
import enum
|
|
19
|
-
from
|
|
19
|
+
from collections.abc import Mapping, Sequence
|
|
20
|
+
from typing import Self, TYPE_CHECKING
|
|
20
21
|
|
|
21
22
|
from cirq.value import digits, value_equality_attr
|
|
22
23
|
|
cirq/value/condition.py
CHANGED
cirq/value/digits.py
CHANGED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterable
|
|
18
|
+
from typing import Any, overload
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
def big_endian_bits_to_int(bits: Iterable[Any]) -> int:
|
|
@@ -168,6 +169,11 @@ def big_endian_int_to_digits(
|
|
|
168
169
|
>>> cirq.big_endian_int_to_digits(11, base=[2, 3, 4])
|
|
169
170
|
[0, 2, 3]
|
|
170
171
|
"""
|
|
172
|
+
if digit_count and base == 2:
|
|
173
|
+
binary_chars = bin(val).removeprefix('0b')
|
|
174
|
+
zeros_count = digit_count - len(binary_chars)
|
|
175
|
+
if zeros_count >= 0:
|
|
176
|
+
return [0] * zeros_count + [1 if c == "1" else 0 for c in binary_chars]
|
|
171
177
|
if isinstance(base, int):
|
|
172
178
|
if digit_count is None:
|
|
173
179
|
raise ValueError('No digit count. Provide `digit_count` when base is an int.')
|
|
@@ -192,4 +198,5 @@ def big_endian_int_to_digits(
|
|
|
192
198
|
f'left behind {val!r} instead of 0.'
|
|
193
199
|
)
|
|
194
200
|
|
|
195
|
-
|
|
201
|
+
result.reverse()
|
|
202
|
+
return result
|
cirq/value/duration.py
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import datetime
|
|
20
|
-
from
|
|
20
|
+
from collections.abc import Set
|
|
21
|
+
from typing import Any, TYPE_CHECKING, TypeAlias, Union
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
import sympy
|
|
@@ -84,21 +85,21 @@ class Duration:
|
|
|
84
85
|
"""
|
|
85
86
|
self._time_vals: list[_NUMERIC_INPUT_TYPE] = [0, 0, 0, 0]
|
|
86
87
|
self._multipliers = [1, 1000, 1000_000, 1000_000_000]
|
|
87
|
-
if value is not None
|
|
88
|
+
if value is not None:
|
|
88
89
|
if isinstance(value, datetime.timedelta):
|
|
89
90
|
# timedelta has microsecond resolution.
|
|
90
91
|
self._time_vals[2] = int(value / datetime.timedelta(microseconds=1))
|
|
91
92
|
elif isinstance(value, Duration):
|
|
92
93
|
self._time_vals = value._time_vals
|
|
93
|
-
|
|
94
|
+
elif value != 0:
|
|
94
95
|
raise TypeError(f'Not a `cirq.DURATION_LIKE`: {repr(value)}.')
|
|
95
96
|
input_vals = [picos, nanos, micros, millis]
|
|
96
97
|
self._time_vals = _add_time_vals(self._time_vals, input_vals)
|
|
97
98
|
|
|
98
99
|
def _is_parameterized_(self) -> bool:
|
|
99
|
-
return
|
|
100
|
+
return any(isinstance(val, sympy.Basic) for val in self._time_vals)
|
|
100
101
|
|
|
101
|
-
def _parameter_names_(self) ->
|
|
102
|
+
def _parameter_names_(self) -> Set[str]:
|
|
102
103
|
return protocols.parameter_names(self._time_vals)
|
|
103
104
|
|
|
104
105
|
def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool) -> Duration:
|
cirq/value/linear_dict.py
CHANGED
|
@@ -16,23 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
-
from
|
|
20
|
-
AbstractSet,
|
|
21
|
-
Any,
|
|
19
|
+
from collections.abc import (
|
|
22
20
|
Callable,
|
|
23
|
-
Generic,
|
|
24
21
|
ItemsView,
|
|
25
22
|
Iterable,
|
|
26
23
|
Iterator,
|
|
27
24
|
KeysView,
|
|
28
25
|
Mapping,
|
|
29
26
|
MutableMapping,
|
|
30
|
-
|
|
31
|
-
Self,
|
|
32
|
-
TYPE_CHECKING,
|
|
33
|
-
TypeVar,
|
|
27
|
+
Set,
|
|
34
28
|
ValuesView,
|
|
35
29
|
)
|
|
30
|
+
from typing import Any, Generic, overload, Self, TYPE_CHECKING, TypeVar
|
|
36
31
|
|
|
37
32
|
import numpy as np
|
|
38
33
|
import sympy
|
|
@@ -344,7 +339,7 @@ class LinearDict(Generic[TVector], MutableMapping[TVector, 'cirq.TParamValComple
|
|
|
344
339
|
def _is_parameterized_(self) -> bool:
|
|
345
340
|
return any(protocols.is_parameterized(v) for v in self._terms.values())
|
|
346
341
|
|
|
347
|
-
def _parameter_names_(self) ->
|
|
342
|
+
def _parameter_names_(self) -> Set[str]:
|
|
348
343
|
return set(name for v in self._terms.values() for name in protocols.parameter_names(v))
|
|
349
344
|
|
|
350
345
|
def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool) -> LinearDict:
|
cirq/value/measurement_key.py
CHANGED
cirq/value/periodic_value.py
CHANGED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Set
|
|
18
|
+
from typing import Any, TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
import sympy
|
|
20
21
|
|
|
@@ -95,7 +96,7 @@ class PeriodicValue:
|
|
|
95
96
|
|
|
96
97
|
return is_parameterized(self.value) or is_parameterized(self.period)
|
|
97
98
|
|
|
98
|
-
def _parameter_names_(self) ->
|
|
99
|
+
def _parameter_names_(self) -> Set[str]:
|
|
99
100
|
# HACK: Avoids circular dependencies.
|
|
100
101
|
from cirq.protocols import parameter_names
|
|
101
102
|
|
cirq/value/product_state.py
CHANGED
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
17
|
import abc
|
|
18
|
+
from collections.abc import Iterator, Sequence
|
|
18
19
|
from dataclasses import dataclass
|
|
19
|
-
from typing import
|
|
20
|
+
from typing import TYPE_CHECKING
|
|
20
21
|
|
|
21
22
|
import numpy as np
|
|
22
23
|
|
cirq/vis/density_matrix.py
CHANGED
|
@@ -84,7 +84,7 @@ def plot_density_matrix(
|
|
|
84
84
|
show_text: bool = False,
|
|
85
85
|
title: str | None = None,
|
|
86
86
|
) -> plt.Axes:
|
|
87
|
-
"""Generates a plot for a given density matrix.
|
|
87
|
+
r"""Generates a plot for a given density matrix.
|
|
88
88
|
|
|
89
89
|
1. Each entry of the density matrix, a complex number, is plotted as an
|
|
90
90
|
Argand Diagram where the partially filled red circle represents the magnitude
|
cirq/vis/heatmap.py
CHANGED
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
17
|
import copy
|
|
18
|
+
from collections.abc import Mapping, Sequence
|
|
18
19
|
from dataclasses import astuple, dataclass
|
|
19
|
-
from typing import Any, cast,
|
|
20
|
+
from typing import Any, cast, overload, SupportsFloat
|
|
20
21
|
|
|
21
22
|
import matplotlib as mpl
|
|
22
23
|
import matplotlib.collections as mpl_collections
|
cirq/vis/histogram.py
CHANGED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Mapping, Sequence
|
|
18
|
+
from typing import Any, SupportsFloat
|
|
18
19
|
|
|
19
20
|
import numpy as np
|
|
20
21
|
from matplotlib import pyplot as plt
|
cirq/vis/state_histogram.py
CHANGED
cirq/work/collector.py
CHANGED
cirq/work/observable_grouping.py
CHANGED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Callable, Iterable
|
|
18
|
+
from typing import cast
|
|
18
19
|
|
|
19
20
|
from cirq import ops, value
|
|
20
21
|
from cirq.work.observable_settings import _max_weight_observable, _max_weight_state, InitObsSetting
|
|
@@ -20,7 +20,8 @@ import itertools
|
|
|
20
20
|
import os
|
|
21
21
|
import tempfile
|
|
22
22
|
import warnings
|
|
23
|
-
from
|
|
23
|
+
from collections.abc import Iterable, Mapping, Sequence
|
|
24
|
+
from typing import Any, TYPE_CHECKING
|
|
24
25
|
|
|
25
26
|
import numpy as np
|
|
26
27
|
import pandas as pd
|
|
@@ -16,7 +16,8 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import dataclasses
|
|
18
18
|
import datetime
|
|
19
|
-
from
|
|
19
|
+
from collections.abc import Iterable, Mapping
|
|
20
|
+
from typing import Any, TYPE_CHECKING
|
|
20
21
|
|
|
21
22
|
import numpy as np
|
|
22
23
|
import sympy
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import dataclasses
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Iterable
|
|
7
|
+
from typing import TYPE_CHECKING
|
|
7
8
|
|
|
8
9
|
from cirq import circuits, ops, study
|
|
9
10
|
from cirq.work.observable_measurement import measure_grouped_settings, StoppingCriteria
|
cirq/work/observable_settings.py
CHANGED
cirq/work/sampler.py
CHANGED
cirq/work/sampler_test.py
CHANGED
{cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.7.0.
|
|
3
|
+
Version: 1.7.0.dev20251203004401
|
|
4
4
|
Summary: A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
|
|
5
5
|
Home-page: http://github.com/quantumlib/cirq
|
|
6
6
|
Author: The Cirq Developers
|
|
@@ -28,10 +28,10 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
License-File: LICENSE
|
|
29
29
|
Requires-Dist: attrs>=21.3.0
|
|
30
30
|
Requires-Dist: duet>=0.2.8
|
|
31
|
-
Requires-Dist: matplotlib~=3.
|
|
31
|
+
Requires-Dist: matplotlib~=3.9
|
|
32
32
|
Requires-Dist: networkx~=3.4
|
|
33
|
-
Requires-Dist: numpy
|
|
34
|
-
Requires-Dist: pandas~=2.
|
|
33
|
+
Requires-Dist: numpy~=2.0
|
|
34
|
+
Requires-Dist: pandas~=2.2
|
|
35
35
|
Requires-Dist: sortedcontainers~=2.0
|
|
36
36
|
Requires-Dist: scipy~=1.12
|
|
37
37
|
Requires-Dist: sympy
|