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