Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / cirq-core / default.nix
blob0563c2f1a71c1093e51b744f988a1a2db25a9a0c
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , pythonOlder
5 , fetchFromGitHub
6 , duet
7 , matplotlib
8 , networkx
9 , numpy
10 , pandas
11 , requests
12 , scipy
13 , sortedcontainers
14 , sympy
15 , tqdm
16 , typing-extensions
17   # Contrib requirements
18 , withContribRequires ? false
19 , autoray ? null
20 , opt-einsum
21 , ply
22 , pylatex ? null
23 , pyquil ? null
24 , quimb ? null
25   # test inputs
26 , pytestCheckHook
27 , freezegun
28 , pytest-asyncio
31 buildPythonPackage rec {
32   pname = "cirq-core";
33   version = "1.3.0";
34   format = "setuptools";
36   disabled = pythonOlder "3.9";
38   src = fetchFromGitHub {
39     owner = "quantumlib";
40     repo = "cirq";
41     rev = "refs/tags/v${version}";
42     hash = "sha256-JAJJciFg3BuRha1wTKixtKWcYy3NA2mNpniPyPHTTe8=";
43   };
45   sourceRoot = "${src.name}/${pname}";
47   postPatch = ''
48     substituteInPlace requirements.txt \
49       --replace "matplotlib~=3.0" "matplotlib"
50    '';
52   propagatedBuildInputs = [
53     duet
54     matplotlib
55     networkx
56     numpy
57     pandas
58     requests
59     scipy
60     sortedcontainers
61     sympy
62     tqdm
63     typing-extensions
64   ] ++ lib.optionals withContribRequires [
65     autoray
66     opt-einsum
67     ply
68     pylatex
69     pyquil
70     quimb
71   ];
73   nativeCheckInputs = [
74     pytestCheckHook
75     pytest-asyncio
76     freezegun
77   ];
79   disabledTestPaths = lib.optionals (!withContribRequires) [
80     # Requires external (unpackaged) libraries, so untested
81     "cirq/contrib/"
82     # No need to test the version number
83     "cirq/_version_test.py"
84   ];
86   disabledTests = lib.optionals stdenv.isAarch64 [
87     # https://github.com/quantumlib/Cirq/issues/5924
88     "test_prepare_two_qubit_state_using_sqrt_iswap"
89   ];
91   meta = with lib; {
92     description = "Framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits";
93     homepage = "https://github.com/quantumlib/cirq";
94     changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
95     license = licenses.asl20;
96     maintainers = with maintainers; [ drewrisinger fab ];
97   };