1{ lib
2, pythonOlder
3, buildPythonPackage
4, fetchFromGitHub
5 # Python Inputs
6, qiskit-aer
7, qiskit-aqua
8, qiskit-ibmq-provider
9, qiskit-ignis
10, qiskit-terra
11 # Optional inputs
12, withOptionalPackages ? true
13, qiskit-finance
14, qiskit-machine-learning
15, qiskit-nature
16, qiskit-optimization
17 # Check Inputs
18, pytestCheckHook
19}:
20
21let
22 optionalQiskitPackages = [
23 qiskit-finance
24 qiskit-machine-learning
25 qiskit-nature
26 qiskit-optimization
27 ];
28in
29buildPythonPackage rec {
30 pname = "qiskit";
31 # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
32 version = "0.32.0";
33
34 disabled = pythonOlder "3.6";
35
36 src = fetchFromGitHub {
37 owner = "qiskit";
38 repo = "qiskit";
39 rev = version;
40 sha256 = "sha256-fKR072hOD0a9TtWulqyKUT3Riwq+NHTtciR+NN5JC1Y=";
41 };
42
43 propagatedBuildInputs = [
44 qiskit-aer
45 qiskit-aqua
46 qiskit-ibmq-provider
47 qiskit-ignis
48 qiskit-terra
49 ] ++ lib.optionals withOptionalPackages optionalQiskitPackages;
50
51 checkInputs = [ pytestCheckHook ];
52
53 pythonImportsCheck = [
54 "qiskit"
55 "qiskit.aqua"
56 "qiskit.circuit"
57 "qiskit.ignis"
58 "qiskit.providers.aer"
59 "qiskit.providers.ibmq"
60 ];
61
62 meta = with lib; {
63 description = "Software for developing quantum computing programs";
64 homepage = "https://qiskit.org";
65 downloadPage = "https://github.com/QISKit/qiskit/releases";
66 changelog = "https://qiskit.org/documentation/release_notes.html";
67 license = licenses.asl20;
68 maintainers = with maintainers; [ drewrisinger pandaman ];
69 };
70}