Commit ff10dc67 authored by qbisi's avatar qbisi
Browse files

python312Packages.mpi-pytest: init at 2025.4.0

parent 55e8dc37
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
{
  lib,
  buildPythonPackage,
  fetchFromGitHub,
  setuptools,
  mpi4py,
  pytest,
  pytestCheckHook,
  mpiCheckPhaseHook,
}:

buildPythonPackage rec {
  pname = "mpi-pytest";
  version = "2025.4.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "firedrakeproject";
    repo = "mpi-pytest";
    tag = "v${version}";
    hash = "sha256-r9UB5H+qAJc6k2SVAiOCI2yRDLNv2zKRmfrAan+cX9I=";
  };

  # A temporary fixup to support fork mode with openmpi implemention
  # See https://github.com/firedrakeproject/mpi-pytest/pull/17
  postPatch = lib.optionalString (mpi4py.mpi.pname == "openmpi") ''
    substituteInPlace pytest_mpi/plugin.py \
      --replace-fail '"-genv", CHILD_PROCESS_FLAG, "1"' '"-x", f"{CHILD_PROCESS_FLAG}=1"'
  '';

  build-system = [
    setuptools
  ];

  dependencies = [
    mpi4py
    pytest
  ];

  pythonImportsCheck = [
    "pytest_mpi"
  ];

  nativeCheckInputs = [
    pytestCheckHook
    mpiCheckPhaseHook
    mpi4py.mpi
  ];

  __darwinAllowLocalNetworking = true;

  meta = {
    homepage = "https://github.com/firedrakeproject/mpi-pytest";
    description = "Pytest plugin that lets you run tests in parallel with MPI";
    changelog = "https://github.com/firedrakeproject/mpi-pytest/releases/tag/${src.tag}";
    license = lib.licenses.gpl3Only;
    maintainers = with lib.maintainers; [ qbisi ];
  };
}
+2 −0
Original line number Diff line number Diff line
@@ -9102,6 +9102,8 @@ self: super: with self; {
  mpegdash = callPackage ../development/python-modules/mpegdash { };
  mpi-pytest = callPackage ../development/python-modules/mpi-pytest { };
  mpi4py = callPackage ../development/python-modules/mpi4py { };
  mpire = callPackage ../development/python-modules/mpire { };