1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pyserial,
6 pythonOlder,
7 pyusb,
8 setuptools,
9}:
10
11buildPythonPackage rec {
12 pname = "pyftdi";
13 version = "0.57.1";
14 pyproject = true;
15
16 disabled = pythonOlder "3.9";
17
18 src = fetchFromGitHub {
19 owner = "eblot";
20 repo = "pyftdi";
21 tag = "v${version}";
22 hash = "sha256-RkZXcGvCZXmFrLvj7YqHc6FeZskEqMSQcYgizBSuwIk=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 pyserial
29 pyusb
30 ];
31
32 # Tests require access to the serial port
33 doCheck = false;
34
35 pythonImportsCheck = [ "pyftdi" ];
36
37 meta = with lib; {
38 description = "User-space driver for modern FTDI devices";
39 longDescription = ''
40 PyFtdi aims at providing a user-space driver for popular FTDI devices.
41 This includes UART, GPIO and multi-serial protocols (SPI, I2C, JTAG)
42 bridges.
43 '';
44 homepage = "https://github.com/eblot/pyftdi";
45 changelog = "https://github.com/eblot/pyftdi/releases/tag/v${version}";
46 license = licenses.bsd3;
47 maintainers = with maintainers; [ fab ];
48 };
49}