diff --git a/pkgs/development/python-modules/cirq/default.nix b/pkgs/development/python-modules/cirq/default.nix index f0b576299b2..f8afdcbbb05 100644 --- a/pkgs/development/python-modules/cirq/default.nix +++ b/pkgs/development/python-modules/cirq/default.nix @@ -1,114 +1,28 @@ -{ stdenv -, lib +{ lib , buildPythonPackage -, pythonOlder -, fetchFromGitHub -, google-api-core -, matplotlib -, networkx -, numpy -, pandas -, protobuf -, requests -, scipy -, sortedcontainers -, sympy -, tqdm -, typing-extensions +, cirq-core +, cirq-google # test inputs -, freezegun , pytestCheckHook -, pytest-asyncio -, pytest-benchmark -, ply -, pydot -, pyyaml -, pygraphviz }: buildPythonPackage rec { pname = "cirq"; - version = "0.10.0"; - - disabled = pythonOlder "3.6"; - - src = fetchFromGitHub { - owner = "quantumlib"; - repo = "cirq"; - rev = "v${version}"; - sha256 = "0xinml44n2lfl0q2lb2apmn69gsszlwim83082f66vyk0gpwd4lr"; - }; - - postPatch = '' - substituteInPlace requirements.txt \ - --replace "matplotlib~=3.0" "matplotlib" \ - --replace "networkx~=2.4" "networkx" \ - --replace "numpy~=1.16" "numpy" \ - --replace "protobuf~=3.13.0" "protobuf" - ''; + inherit (cirq-core) version src meta; propagatedBuildInputs = [ - google-api-core - matplotlib - networkx - numpy - pandas - protobuf - requests - scipy - sortedcontainers - sympy - tqdm - typing-extensions + cirq-core + cirq-google ]; # pythonImportsCheck = [ "cirq" "cirq.Circuit" ]; # cirq's importlib hook doesn't work here - checkInputs = [ - pytestCheckHook - freezegun - pytest-asyncio - pytest-benchmark - ply - pydot - pyyaml - pygraphviz + checkInputs = [ pytestCheckHook ]; + + # Don't run submodule or development tool tests + disabledTestPaths = [ + "cirq-google" + "cirq-core" + "dev_tools" ]; - pytestFlagsArray = [ - "--ignore=dev_tools" # Only needed when developing new code, which is out-of-scope - "--ignore=cirq/contrib/" # requires external (unpackaged) python packages, so untested. - "--benchmark-disable" # Don't need to run benchmarks when packaging. - ]; - disabledTests = lib.optionals stdenv.isAarch64 [ - # Seem to fail due to math issues on aarch64? - "expectation_from_wavefunction" - "test_single_qubit_op_to_framed_phase_form_output_on_example_case" - ] ++ [ - # slow tests, for quicker building - "test_anneal_search_method_calls" - "test_density_matrix_from_state_tomography_is_correct" - "test_example_runs_qubit_characterizations" - "test_example_runs_hello_line_perf" - "test_example_runs_bc_mean_field_perf" - "test_main_loop" - "test_clifford_circuit_2" - "test_decompose_specific_matrices" - "test_two_qubit_randomized_benchmarking" - "test_kak_decomposition_perf" - "test_example_runs_simon" - "test_decompose_random_unitary" - "test_decompose_size_special_unitary" - "test_api_retry_5xx_errors" - "test_xeb_fidelity" - "test_example_runs_phase_estimator_perf" - "test_cross_entropy_benchmarking" - ]; - - meta = with lib; { - description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits."; - homepage = "https://github.com/quantumlib/cirq"; - changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}"; - license = licenses.asl20; - maintainers = with maintainers; [ drewrisinger ]; - }; }