1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 deprecated,
7 ipython,
8 matplotlib-inline,
9 nest-asyncio,
10 networkx,
11 numpy,
12 packaging,
13 poetry-core,
14 pytest-asyncio,
15 pytest-mock,
16 pytestCheckHook,
17 qcs-sdk-python,
18 respx,
19 rpcq,
20 scipy,
21 syrupy,
22 types-deprecated,
23 typing-extensions,
24}:
25
26buildPythonPackage rec {
27 pname = "pyquil";
28 version = "4.16.2";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "rigetti";
33 repo = "pyquil";
34 tag = "v${version}";
35 hash = "sha256-itDy42rhHiX9oXQQ+eKE3/Xdh4cBzdS3jetanTrxuFo=";
36 };
37
38 pythonRelaxDeps = [
39 "lark"
40 "networkx"
41 "numpy"
42 "packaging"
43 "qcs-sdk-python"
44 "rpcq"
45 ];
46
47 build-system = [ poetry-core ];
48
49 dependencies = [
50 deprecated
51 matplotlib-inline
52 networkx
53 numpy
54 packaging
55 qcs-sdk-python
56 rpcq
57 scipy
58 types-deprecated
59 typing-extensions
60 ];
61
62 nativeCheckInputs = [
63 nest-asyncio
64 pytest-asyncio
65 pytest-mock
66 pytestCheckHook
67 respx
68 syrupy
69 ipython
70 ];
71
72 # tests hang
73 doCheck = false;
74
75 pythonImportsCheck = [ "pyquil" ];
76
77 meta = {
78 description = "Python library for creating Quantum Instruction Language (Quil) programs";
79 homepage = "https://github.com/rigetti/pyquil";
80 changelog = "https://github.com/rigetti/pyquil/blob/${src.tag}/CHANGELOG.md";
81 license = lib.licenses.asl20;
82 maintainers = with lib.maintainers; [ fab ];
83 };
84}