{ lib, stdenv, buildPythonPackage, fetchFromGitHub, setuptools, pytestCheckHook, python, gitUpdater, }: buildPythonPackage rec { pname = "psutil"; version = "7.1.3"; pyproject = true; src = fetchFromGitHub { owner = "giampaolo"; repo = "psutil"; tag = "release-${version}"; hash = "sha256-vMGUoiPr+QIe1N+I++d/DM9i2jeHTI68npGoJ2vKF10="; }; postPatch = '' # stick to the old SDK name for now # https://developer.apple.com/documentation/iokit/kiomasterportdefault/ # https://developer.apple.com/documentation/iokit/kiomainportdefault/ substituteInPlace psutil/arch/osx/cpu.c \ --replace-fail kIOMainPortDefault kIOMasterPortDefault ''; build-system = [ setuptools ]; nativeCheckInputs = [ pytestCheckHook ]; # Segfaults on darwin: # https://github.com/giampaolo/psutil/issues/1715 doCheck = !stdenv.hostPlatform.isDarwin; # In addition to the issues listed above there are some that occure due to # our sandboxing which we can work around by disabling some tests: # - cpu_times was flaky on darwin # - the other disabled tests are likely due to sandboxing (missing specific errors) enabledTestPaths = [ # Note: $out must be referenced as test import paths are relative "${placeholder "out"}/${python.sitePackages}/psutil/tests/test_system.py" ]; disabledTests = [ # Some of the tests have build-system hardware-based impurities (like # reading temperature sensor values). Disable them to avoid the failures # that sometimes result. "cpu_freq" "cpu_times" "disk_io_counters" "sensors_battery" "sensors_temperatures" "user" "test_disk_partitions" # problematic on Hydra's Linux builders, apparently ]; pythonImportsCheck = [ "psutil" ]; passthru.updateScript = gitUpdater { rev-prefix = "release-"; }; meta = { description = "Process and system utilization information interface"; homepage = "https://github.com/giampaolo/psutil"; changelog = "https://github.com/giampaolo/psutil/blob/${src.tag}/HISTORY.rst"; license = lib.licenses.bsd3; maintainers = [ ]; }; }