Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions pkgs/development/python-modules/qiskit-terra/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{ lib
, pythonOlder
, buildPythonPackage
, fetchFromGitHub
, cython
, dill
, jsonschema
, numpy
, marshmallow
, marshmallow-polyfield
, matplotlib
, networkx
, ply
, psutil
, scipy
, sympy
# test requirements
, ddt
, hypothesis
, ipywidgets
, nbformat
, nbconvert
, pillow
, pydot
, python
, pygraphviz
, pylatexenc
, pytestCheckHook
}:

buildPythonPackage rec {
pname = "qiskit-terra";
version = "0.12.0";

disabled = pythonOlder "3.5";

src = fetchFromGitHub {
owner = "Qiskit";
repo = pname;
rev = version;
sha256 = "1yarfziy2w8n1d7zyyxykfs68608j8md4kwfyhbyc6wy483fk9sy";
};

nativeBuildInputs = [ cython ];

propagatedBuildInputs = [
dill
jsonschema
numpy
marshmallow
marshmallow-polyfield
matplotlib
networkx
ply
psutil
scipy
sympy
];


# *** Tests ***
checkInputs = [
ddt
hypothesis
ipywidgets
nbformat
nbconvert
pillow
pydot
pygraphviz
pylatexenc
pytestCheckHook
];

pythonImportsCheck = [
"qiskit"
"qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
];

dontUseSetuptoolsCheck = true; # can't find setup.py, so fails. tested by pytest

disabledTests = [
"test_long_name" # generated circuit images differ for some reason
"test_jupyter_jobs_pbars" # needs IBMQ provider package (qiskit-ibmq-provider), circular dependency
];

pytestFlagsArray = [
"--ignore=test/randomized/test_transpiler_equivalence.py" # collection requires qiskit-aer, which would cause circular dependency
];

# Moves tests to $PACKAGEDIR/test. They can't be run from /build because of finding
# cythonized modules and expecting to find some resource files in the test directory.
preCheck = ''
export PACKAGEDIR=$out/${python.sitePackages}
echo "Moving Qiskit test files to package directory"
cp -r $TMP/source/test $PACKAGEDIR
cp -r $TMP/source/examples $PACKAGEDIR
cp -r $TMP/source/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/

# run pytest from Nix's $out path
pushd $PACKAGEDIR
'';
postCheck = ''
rm -rf test
rm -rf examples
popd
'';


meta = with lib; {
description = "Provides the foundations for Qiskit.";
longDescription = ''
Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
'';
homepage = "https://github.com/QISKit/qiskit-terra";
license = licenses.asl20;
maintainers = with maintainers; [ drewrisinger ];
};
}
2 changes: 2 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6948,6 +6948,8 @@ in {

qiskit = callPackage ../development/python-modules/qiskit { };

qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };

qasm2image = callPackage ../development/python-modules/qasm2image { };

simpy = callPackage ../development/python-modules/simpy { };
Expand Down