Releases: lukehsiao/pyproject-udeps
Release list
v0.3.7
Patch Changes
1a400ab- fix: upgraderuff_python_astandruff_python_parserto 0.0.6, which raises the minimum supported Rust version to 1.95. The 0.0.4 releases pulledcompact_str0.9 while derivingGetSizethroughget-size2, whose 0.10.2 release moved tocompact_str0.10. That combination no longer compiles, so staying on 0.0.4 would have meant pinningget-size2to a version we do not otherwise depend on.
$ git-stats v0.3.6..v0.3.7 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 4 9 +164 -224 -60 Total 4 9 +164 -224 -60
v0.3.6
Patch Changes
-
9c92b19- fix: the name map was audited against the wheel contents of the 1,500 most-downloaded PyPI packages, adding roughly 190 entries (pillow→PIL,pyjwt→jwt,dnspython→dns,opencv-python→cv2, and many more). -
61844e0- feat: declared package names are now matched case-insensitively with-,_, and.treated as equivalent (PEP 503 normalization), and imports now match packages keyed to any dotted prefix of the module path (sofrom airflow.providers.common.sql.hooks.sql import Xmarksapache-airflow-providers-common-sqlas used). Together these eliminate whole classes of false positives, like declaringFlaskwhile importingflask, or importing a deep submodule of a namespace package.
$ git-stats v0.3.5..v0.3.6 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 8 15 +613 -65 +548 Total 8 15 +613 -65 +548
v0.3.5
Patch Changes
bae4549- fix: add name-map aliases forpyyaml,python-dateutil,pydocket,amplitude-analytics,opentelemetry-api, andopentelemetry-test-utils, eliminating false positives on projects that import these packages.
$ git-stats v0.3.4..v0.3.5 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 2 7 +208 -63 +145 Total 2 7 +208 -63 +145
v0.3.4
Patch Changes
83aed9d- feature:pyproject-udepsandpyproject-udeps-binare now available on the AUR.
$ git-stats v0.3.3..v0.3.4 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 2 6 +187 -6 +181 Total 2 6 +187 -6 +181
v0.3.3
Patch Changes
8c2f37f- chore: addpython-ulid->ulidmapping to eliminate false positive.
$ git-stats v0.3.2..v0.3.3 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 1 3 +7 -1 +6 Total 1 3 +7 -1 +6
v0.3.2
Patch Changes
406b665- chore: add thepyserial->serialalias to avoid a false positive.
$ git-stats v0.3.1..v0.3.2 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 1 2 +6 0 +6 Total 1 2 +6 0 +6
v0.3.1
Patch Changes
bb6a635- build: fix publishing token.
$ git-stats v0.3.0..v0.3.1 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 1 1 +5 0 +5 dependabot[bot] 1 4 +6 -6 0 Total 2 5 +11 -6 +5
v0.3.0
Minor Changes
-
#4
e25c754- feat: publish prebuilt binaries on GitHub releases.Releases now attach binaries for ten targets (Linux gnu/musl on x86_64, aarch64, and armv7; macOS x86_64 and aarch64; Windows x86_64 and aarch64) with sha256 checksums, so
cargo binstall pyproject-udepsworks and CI can install viataiki-e/install-actionwithout a compile. -
#4
e25c754- feat: renamepoetry-udepstopyproject-udeps.The tool is no longer poetry-only, so the name follows the file it actually analyzes. Install it with
cargo install pyproject-udeps(orcargo binstall pyproject-udeps); the binary is nowpyproject-udeps. The ignorefile is.pyprojectudepsignore, and an existing.poetryudepsignorekeeps working as a fallback. One lastpoetry-udepsrelease on crates.io points here. -
#4
e25c754- feat: parse Python with ruff's parser instead of scanning text for import statements.Imports are now collected from a real AST, which fixes a family of accuracy bugs:
from x import a, bcounted onlya,from x import *counted nothing,'''-quoted docstrings were not skipped, and text likex = "import os"produced phantom imports. Imports nested in functions andtry/except ImportErrorblocks are found, files with syntax errors still contribute whatever parses, andimportlib.import_module("...")and__import__("...")calls with literal arguments now count as usage. Reports may legitimately change on upgrade: dependencies that only appeared inside strings or docstrings will newly show up as unused. -
#4
e25c754- feat: support uv and plain PEP 621 projects, not just poetry.Dependencies are now read from every place
pyproject.tomlcan declare them:[project.dependencies], every[project.optional-dependencies]extra,[tool.poetry.dependencies], every[tool.poetry.group.*](previously only thedevgroup was checked), PEP 735[dependency-groups], and the legacy[tool.uv] dev-dependenciesarray. Hybrid layouts take the union, so a wrong guess about which tool manages the project can never drop a declaration.--virtualenvalso stopped assuming poetry: the environment is discovered from the lockfile and tool tables, usingpoetry env info -pfor poetry projects,$UV_PROJECT_ENVIRONMENTor.venvfor uv projects, and$VIRTUAL_ENVor.venvotherwise.
Patch Changes
-
#4
e25c754- fix: stop reporting used dev dependencies that import under a different name.A dev dependency imported through an alias (for example
scikit-learnimported assklearn) was still reported as unused under--dev, because the match removed the wrong bookkeeping entry. -
#4
e25c754- fix: stop crashing onimport dbt.adaptersand on non-UTF-8 Python files.A bare two-segment
import dbt.adapterspanicked the matcher, and a single.pyfile with non-UTF-8 bytes (latin-1 comments in legacy code, say) crashed the project scan. Both now behave: the dbt heuristic only fires with an adapter segment present, and files are read lossily everywhere. -
#4
e25c754- fix: honor the--no-ignoreflag.The flag was accepted but never read, so there was no way to see the report without ignorefile filtering. It now bypasses the ignorefile as documented.
All notable changes to this project will be documented in this file. See conventional commits for commit guidelines.
$ git-stats v0.2.10..v0.3.0 Author Commits Changed Files Insertions Deletions Net Δ Luke Hsiao 25 101 +6233 -1906 +4327 Total 25 101 +6233 -1906 +4327