From 3f2a308c2808a87e22e4cb26c06fc007a4483547 Mon Sep 17 00:00:00 2001 From: Drew Risinger Date: Thu, 8 Oct 2020 01:12:41 -0400 Subject: [PATCH] python3Packages.qiskit-terra: disable optional packages by default Removes visualization packages from default install. They can still be added to environment manually or by overriding the argument. --- .../python-modules/qiskit-terra/default.nix | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix index a306e3e1142..ad0ad3f17e9 100644 --- a/pkgs/development/python-modules/qiskit-terra/default.nix +++ b/pkgs/development/python-modules/qiskit-terra/default.nix @@ -16,7 +16,8 @@ , retworkx , scipy , sympy - # Python visualization requirements, semi-optional +, withVisualization ? false + # Python visualization requirements, optional , ipywidgets , matplotlib , pillow @@ -24,6 +25,12 @@ , pygments , pylatexenc , seaborn + # Crosstalk-adaptive layout pass +, withCrosstalkPass ? false +, z3 + # Classical function -> Quantum Circuit compiler +, withClassicalFunctionCompiler ? false +, tweedledum ? null # test requirements , ddt , hypothesis @@ -33,6 +40,20 @@ , python }: +let + visualizationPackages = [ + ipywidgets + matplotlib + pillow + pydot + pygments + pylatexenc + seaborn + ]; + crosstalkPackages = [ z3 ]; + classicalCompilerPackages = [ tweedledum ]; +in + buildPythonPackage rec { pname = "qiskit-terra"; version = "0.16.1"; @@ -53,7 +74,6 @@ buildPythonPackage rec { fastjsonschema jsonschema numpy - matplotlib networkx ply psutil @@ -62,25 +82,18 @@ buildPythonPackage rec { retworkx scipy sympy - # Optional/visualization inputs - ipywidgets - matplotlib - pillow - pydot - pygments - pylatexenc - seaborn - ]; - + ] ++ lib.optionals withVisualization visualizationPackages + ++ lib.optionals withCrosstalkPass crosstalkPackages + ++ lib.optionals withClassicalFunctionCompiler classicalCompilerPackages; # *** Tests *** checkInputs = [ + pytestCheckHook ddt hypothesis nbformat nbconvert - pytestCheckHook - ]; + ] ++ lib.optionals (!withVisualization) visualizationPackages; pythonImportsCheck = [ "qiskit" @@ -89,6 +102,7 @@ buildPythonPackage rec { pytestFlagsArray = [ "--ignore=test/randomized/test_transpiler_equivalence.py" # collection requires qiskit-aer, which would cause circular dependency + ] ++ lib.optionals (!withClassicalFunctionCompiler ) [ "--ignore=test/python/classical_function_compiler/" ];