#1150567 ITP: pylibftdi - minimal Pythonic interface to FTDI devices using libftdi

Package:
wnpp
Source:
wnpp
Submitter:
Hans-Christoph Steiner
Date:
2026-10-19 10:03:01 UTC
Severity:
normal
#1150567#5
Date:
2026-10-10 20:33:10 UTC
From:
To:
* Package name    : pylibftdi
   Version         : 0.23.0
   Upstream Author : Ben Bass <benbass@codedstructure.net>
* URL             : https://github.com/codedstructure/pylibftdi
* License         : MIT
   Programming Lang: Python
   Package source  : https://salsa.debian.org/python-team/packages/pylibftdi
   Description     : minimal Pythonic interface to FTDI devices using libftdi

pylibftdi is a minimal Pythonic interface to FTDI devices using libftdi.

Features:

* No dependencies beyond standard library and a libftdi install.
* Supports parallel and serial devices
* Support for multiple devices
* File-like interface wherever appropriate
* Cross-platform

The primary interface is the Device class in the pylibftdi package; this gives
serial access on relevant FTDI devices (e.g. the UM232R), providing a file-like
interface (read, write). Baudrate is controlled with the baudrate property.

If a Device instance is created with mode='t' (text mode) then read() and
write() can use the given encoding (defaulting to latin-1). This allows easier
integration with passing unicode strings between devices.

Multiple devices are supported by passing the desired device serial number (as a
string) in the device_id parameter - this is the first parameter in both
Device() and BitBangDevice() constructors. Alternatively the device
'description' can be given, and an attempt will be made to match this if
matching by serial number fails.

#1150567#10
Date:
2026-10-13 02:57:32 UTC
From:
To:
This is an automated message from the Debian DFSG, Licensing & New
Packages Team.

The Debian NEW review of pylibftdi 0.24.1-1 has been completed.

Decision: ACCEPTED
Reviewer: Andrew McMillan

Review comment:

Hi,

Some issues found in the review that could be fixed...

1. [important] [packaging] Autopkgtest cannot run: python3-pytest is not installed

 - Files: `debian/tests/control:1-4`, `debian/tests/unittests:6-10`
 - Evidence: `debian/tests/control` has `Depends: @builddeps@`; `debian/tests/unittests` runs `python${i} -m pytest -v tests`; `pyproject.toml` lists pytest only under `[dependency-groups] dev`.
 - Problem: The only dependency of the declared `Testsuite: autopkgtest` (DSC `Testsuite: autopkgtest`) is `@builddeps@`, which expands to the Build-Depends of the source; none of them provides the pytest runner, and the Debian build never installs upstream's dev dependency group. The test therefore fails with `ModuleNotFoundError: No module named 'pytest'`, so the salsa-ci pipeline and the autopkgtest suite advertised in the package are red. This is a genuine functional defect, not a lintian nit.
 - Fix: Declare the runner, e.g. `Depends: @, @builddeps@, python3-pytest` (or add python3-pytest to Build-Depends).

2. [minor] [packaging] Autopkgtest does not test the installed package

 - Files: `debian/tests/control:2`, `pyproject.toml:113-115`
 - Evidence: `Depends: @builddeps@` only (no `@`), plus `[tool.pytest.ini_options] pythonpath = ["src", "."]`.
 - Problem: Because the test Depends omit `@` (the binary package(s) built by this source), python3-pylibftdi is not installed in the testbed; together with `pythonpath = ["src", "."]`, pytest imports pylibftdi from the unpacked source tree, so the shipped bytes are never exercised. The tests could pass while a broken installed package goes unnoticed.
 - Fix: Use `Depends: @, @builddeps@, python3-pytest` so the tests run against the installed binary (this also fixes the missing pytest issue).

3. [minor] [packaging] debian/watch is in the old version 3 format

 - Files: `debian/watch`
 - Evidence: `version=3`
 - Problem: Version 5 is the current format of `debian/watch`.
 - Fix: Convert it to version 5; a mechanical conversion is suggested below:

==========================================================
Version: 5

 # Run the "uscan" command to check for upstream updates and more.
 Template: Github
 Dist: https://github.com/codedstructure/pylibftdi
==========================================================


Thanks!

Full review details: https://dfsg-new-queue.debian.org/reviews/pylibftdi

#1150567#15
Date:
2026-10-13 03:00:19 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
pylibftdi, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1150567@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Hans-Christoph Steiner <hans@eds.org> (supplier of updated pylibftdi package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 11 Oct 2026 16:13:01 +0200
Source: pylibftdi
Binary: python3-pylibftdi
Architecture: source all
Version: 0.24.1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Hans-Christoph Steiner <hans@eds.org>
Description:
 python3-pylibftdi - Minimal Pythonic interface to FTDI devices using libftdi
Closes: 1150567
Changes:
 pylibftdi (0.24.1-1) unstable; urgency=medium
 .
   * Initial release (Closes: #1150567)
Checksums-Sha1:
 235f028986e7a5cb535ff0737d70119085b1c515 1755 pylibftdi_0.24.1-1.dsc
 4bcc324c58505839d02b9072b94c7bb942fbf037 101579 pylibftdi_0.24.1.orig.tar.gz
 b730e3714fad33e699d283ec3e1b966885071c52 2612 pylibftdi_0.24.1-1.debian.tar.xz
 c733e1ac4a41beb0aff06509a97209382361fc76 6447 pylibftdi_0.24.1-1_amd64.buildinfo
 5aba5b57f0ffae3677c28e4a2e06db52c79978c4 31296 python3-pylibftdi_0.24.1-1_all.deb
Checksums-Sha256:
 e9894891b7eec41d4b244f8a489d0a38cfc8667653a8b2216802d05aa9b0007b 1755 pylibftdi_0.24.1-1.dsc
 6d729d62e5ef29e42fdff8bc35774c20b13115753486068dcddcf30ef73d61cc 101579 pylibftdi_0.24.1.orig.tar.gz
 4d51485094721ee676b8780dc67ea2b46f6a993d3c2a2f7b064d3f58322a2e70 2612 pylibftdi_0.24.1-1.debian.tar.xz
 ef687fd1ae371e3964996a3c79d3cfc4c3ca9b50a7986886f1255ac182ec3289 6447 pylibftdi_0.24.1-1_amd64.buildinfo
 e11c6cb58b6cec2f35af090ac142db7fd34bf852e611fab770546f87c0c30bda 31296 python3-pylibftdi_0.24.1-1_all.deb
Files:
 aeb4720b957ca44e9287e79cdec388c9 1755 python optional pylibftdi_0.24.1-1.dsc
 9e0d30a0c485e618fbaa40eaab742f63 101579 python optional pylibftdi_0.24.1.orig.tar.gz
 a0f22a82ebfcc04c4ad583b3497f6d90 2612 python optional pylibftdi_0.24.1-1.debian.tar.xz
 74f8cac4088ad781536283f2e75ffa37 6447 python optional pylibftdi_0.24.1-1_amd64.buildinfo
 07c1c149538bdcb785cb50c736862e78 31296 python optional python3-pylibftdi_0.24.1-1_all.deb
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEElyI52+aGmfUmwGoFPhd4F7obm/oFAmrLmokACgkQPhd4F7ob
m/q7jggAnBo4DZF9l3QFnpIX2+ec6871eMIYMouF/RuCgxt49TqeG2toP7Rqakyn
peND7r0RF1nubSfvg7f/5sLE/Zec0G6aDPWIViE+f3Qw3oAPvQJJT+tAld2VIQT4
Gp1PT9aNyGr+YdMFHEG1x2o2TrvY9y/4KuvlpzjBswExOqwZROLAsarIvLKYQM2i
n8czh290ieGp1fKLFTqt/sp+40HdAeEyEFfs5/dqBpVjJFK+jPfFumoSC558Ia2R
8W054N28oyArH1DwOLIIbEJUG3i5raYDFe6GZHuzdvbad8g/ivrE/56r6SNU/xjW
CWYs3z9pWxyENhsAzjyNsXE9oqAs0w==
=q3aM
-----END PGP SIGNATURE-----

#1150567#20
Date:
2026-10-19 09:52:47 UTC
From:
To:
Thanks for the thorough and rapid review!  I applied all the fixes you
suggested, and will upload the source package once the CI passes.

awm@debian.org: