diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix new file mode 100644 index 000000000000..2f0a99dc0f82 --- /dev/null +++ b/pkgs/development/python-modules/qiskit-ignis/default.nix @@ -0,0 +1,62 @@ +{ lib +, pythonOlder +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, numpy +, qiskit-terra +, scipy + # Check Inputs +, pytestCheckHook +, qiskit-aer +}: + +buildPythonPackage rec { + pname = "qiskit-ignis"; + version = "0.2.0"; + + disabled = pythonOlder "3.5"; + + # Pypi's tarball doesn't contain tests + src = fetchFromGitHub { + owner = "Qiskit"; + repo = pname; + rev = version; + sha256 = "08a60xk5dq5wmqc23r4hr2v2nsf9hs0ybz832vbnd6d80dl6izyc"; + }; + + patches = [ + # Update tests for compatibility with qiskit-aer 0.4 (#342). Remove in version > 0.2.0 + (fetchpatch { + url = "https://github.com/Qiskit/qiskit-ignis/commit/d78c494579f370058e68e360f10149db81b52477.patch"; + sha256 = "0ygkllf95c0jfvjg7gn399a5fd0wshsjpcn279kj7855m8j306h6"; + }) + # Fix statevector test over-eager validation (PR #333) + (fetchpatch { + url = "https://github.com/Qiskit/qiskit-ignis/commit/7cc8eb2e852b383ea429233fa43d3728931f1707.patch"; + sha256 = "0mdygykilg4qivdaa731z3y56l3ax4jp1sil9npqv0gn4p03c9g5"; + }) + ]; + + propagatedBuildInputs = [ + numpy + qiskit-terra + scipy + ]; + + # Tests + pythonImportsCheck = [ "qiskit.ignis" ]; + dontUseSetuptoolsCheck = true; + preCheck = ''export HOME=$TMPDIR''; + checkInputs = [ + pytestCheckHook + qiskit-aer + ]; + + meta = with lib; { + description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction"; + homepage = "https://github.com/QISKit/qiskit-ignis"; + license = licenses.asl20; + maintainers = with maintainers; [ drewrisinger ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1a412e679210..8e42fcd19f44 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7113,6 +7113,8 @@ in { qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { }; + qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { }; + qiskit-terra = callPackage ../development/python-modules/qiskit-terra { }; qasm2image = callPackage ../development/python-modules/qasm2image { };