diff --git a/pkgs/by-name/co/conduit/package.nix b/pkgs/by-name/co/conduit/package.nix index 22c208d18637..62100ccf20b4 100644 --- a/pkgs/by-name/co/conduit/package.nix +++ b/pkgs/by-name/co/conduit/package.nix @@ -7,6 +7,7 @@ # passthru conduit, + python3Packages, nix-update-script, mpiSupport ? false, @@ -50,6 +51,8 @@ stdenv.mkDerivation (finalAttrs: { passthru = { tests = { withMpi = conduit.override { mpiSupport = true; }; + pythonModule = python3Packages.conduit; + pythonModuleWithMpi = python3Packages.conduit-mpi; }; updateScript = nix-update-script { }; }; diff --git a/pkgs/development/python-modules/conduit/default.nix b/pkgs/development/python-modules/conduit/default.nix new file mode 100644 index 000000000000..9fd15ff2eea0 --- /dev/null +++ b/pkgs/development/python-modules/conduit/default.nix @@ -0,0 +1,65 @@ +{ + lib, + stdenv, + pkgs, + buildPythonPackage, + setuptools, + numpy, + pip, + + mpiSupport ? false, +}: +let + conduit = pkgs.conduit.override { inherit mpiSupport; }; +in +buildPythonPackage { + inherit (conduit) + pname + version + src + nativeBuildInputs + buildInputs + ; + pyproject = true; + + # Needed for cmake to find openmpi + strictDeps = false; + + postPatch = '' + substituteInPlace setup.py \ + --replace-fail \ + "'-j2'" \ + "f'-j{os.environ.get(\"NIX_BUILD_CORES\")}'" + ''; + + dontUseCmakeConfigure = true; + + env.ENABLE_MPI = mpiSupport; + + build-system = [ + setuptools + ]; + + dependencies = [ + numpy + pip + ]; + + pythonImportsCheck = [ "conduit" ]; + + # No python tests + doCheck = false; + + meta = { + description = "Python bindings for the conduit library"; + inherit (conduit.meta) + homepage + changelog + license + platforms + ; + maintainers = with lib.maintainers; [ GaetanLepage ]; + # Cross-compilation is broken + broken = stdenv.hostPlatform != stdenv.buildPlatform; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a15144f3a643..92efd5f4c3c2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2646,6 +2646,10 @@ self: super: with self; { conda-package-streaming = callPackage ../development/python-modules/conda-package-streaming { }; + conduit = callPackage ../development/python-modules/conduit { }; + + conduit-mpi = callPackage ../development/python-modules/conduit { mpiSupport = true; }; + confection = callPackage ../development/python-modules/confection { }; configargparse = callPackage ../development/python-modules/configargparse { };