1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 substituteAll,
6 pythonOlder,
7 addOpenGLRunpath,
8 setuptools,
9 pytestCheckHook,
10 versioneer,
11}:
12
13buildPythonPackage rec {
14 pname = "pynvml";
15 version = "11.5.0";
16 pyproject = true;
17 disabled = pythonOlder "3.6";
18
19 src = fetchFromGitHub {
20 owner = "gpuopenanalytics";
21 repo = "pynvml";
22 rev = "refs/tags/${version}";
23 hash = "sha256-K3ZENjgi+TVDxr55dRK1y8SwzfgVIzcnD4oEI+KHRa4=";
24 };
25
26 patches = [
27 (substituteAll {
28 src = ./0001-locate-libnvidia-ml.so.1-on-NixOS.patch;
29 inherit (addOpenGLRunpath) driverLink;
30 })
31 ];
32
33 # unvendor versioneer
34 postPatch = ''
35 rm versioneer.py
36 '';
37
38 nativeBuildInputs = [
39 setuptools
40 versioneer
41 ];
42
43 pythonImportsCheck = [
44 "pynvml"
45 "pynvml.smi"
46 ];
47
48 nativeCheckInputs = [ pytestCheckHook ];
49
50 # OSError: /run/opengl-driver/lib/libnvidia-ml.so.1: cannot open shared object file: No such file or directory
51 doCheck = false;
52
53 meta = with lib; {
54 description = "Python bindings for the NVIDIA Management Library";
55 homepage = "https://github.com/gpuopenanalytics/pynvml";
56 license = licenses.bsd3;
57 maintainers = [ maintainers.bcdarwin ];
58 };
59}