Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / seabreeze / default.nix
blob119e36d663ef90096f409edca62fdbdf90388ac3
1 { lib
2 , fetchFromGitHub
3 , buildPythonPackage
5 # build-system
6 , cython
7 , git
8 , pkgconfig
9 , setuptools
10 , setuptools-scm
12 # dependneices
13 , numpy
15 # optional-dependenices
16 , pyusb
18 # tests
19 , mock
20 , pytestCheckHook
21 , zipp
24 ## Usage
25 # In NixOS, add the package to services.udev.packages for non-root plugdev
26 # users to get device access permission:
27 #    services.udev.packages = [ pkgs.python3Packages.seabreeze ];
29 buildPythonPackage rec {
30   pname = "seabreeze";
31   version = "2.6.0";
32   pyproject = true;
34   src = fetchFromGitHub {
35     owner = "ap--";
36     repo = "python-seabreeze";
37     rev = "refs/tags/v${version}";
38     hash = "sha256-Ead9G4i8/mFwPqL2PGsndtmX93Njld3nvTTr6ROJTac=";
39     leaveDotGit = true;
40   };
42   nativeBuildInputs = [
43     cython
44     git
45     pkgconfig
46     setuptools
47     setuptools-scm
48   ];
50   propagatedBuildInputs = [
51     numpy
52   ];
54   passthru.optional-dependencies = {
55     pyseabreeze = [
56       pyusb
57     ];
58   };
60   postInstall = ''
61     mkdir -p $out/etc/udev/rules.d
62     cp os_support/10-oceanoptics.rules $out/etc/udev/rules.d/10-oceanoptics.rules
63   '';
65   # few backends enabled, but still some tests
66   nativeCheckInputs = [
67     pytestCheckHook
68     mock
69     zipp
70   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
72   setupPyBuildFlags = [ "--without-cseabreeze" ];
74   meta = with lib; {
75     homepage = "https://github.com/ap--/python-seabreeze";
76     description = "A python library to access Ocean Optics spectrometers";
77     maintainers = [];
78     license = licenses.mit;
79   };