diff --git a/pkgs/development/python-modules/experiment-utilities/default.nix b/pkgs/development/python-modules/experiment-utilities/default.nix new file mode 100644 index 000000000000..46c50e1e2ec0 --- /dev/null +++ b/pkgs/development/python-modules/experiment-utilities/default.nix @@ -0,0 +1,69 @@ +{ lib +, buildPythonPackage +, cloudpickle +, dill +, fasteners +, fetchFromGitLab +, qgrid +, ipywidgets +, odfpy +, scipy +, plotly +, pytestCheckHook +, pyyaml +, tabulate +, tensorboard +, torch +}: + +buildPythonPackage rec { + pname = "experiment-utilities"; + version = "0.3.4"; + + src = fetchFromGitLab { + owner = "creinke"; + repo = "exputils"; + domain = "gitlab.inria.fr"; + rev = "refs/tags/version_${version}"; + hash = "sha256-zjmmLUpGjUhpw2+stLJE6cImesnBSvrcid5bHMftX/Q="; + }; + + # This dependency constraint (<=7.6.5) was due to a bug in qgrid that has been patched in its + # owned derivation + postPatch = '' + substituteInPlace setup.cfg \ + --replace "ipywidgets >= 7.5.1,<= 7.6.5" "ipywidgets >= 7.5.1" + ''; + + propagatedBuildInputs = [ + cloudpickle + dill + fasteners + ipywidgets + odfpy + plotly + pyyaml + qgrid + scipy + tabulate + tensorboard + ]; + + nativeCheckInputs = [ + pytestCheckHook + torch + ]; + + disabledTests = [ + "test_experimentstarter" + ]; + + pythonImportsCheck = [ "exputils" ]; + + meta = with lib; { + description = "Various tools to run scientific computer experiments."; + homepage = "https://gitlab.inria.fr/creinke/exputils"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8fde74d34615..7a584d335f1e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3453,6 +3453,8 @@ self: super: with self; { expecttest = callPackage ../development/python-modules/expecttest { }; + experiment-utilities = callPackage ../development/python-modules/experiment-utilities { }; + expiring-dict = callPackage ../development/python-modules/expiring-dict { }; expiringdict = callPackage ../development/python-modules/expiringdict { };