0.1.0 |
|
---|
#34 in #unpack
490KB
1.5K SLoC
Unpack
从您的项目中提取Python包以及更多。
Unpack 有几个目标
- 轻松导航和删除已使用、未使用和未跟踪的Python包。
- 快速识别上述类别中包的磁盘使用量。
- 查看各种包及其依赖关系之间的关系。
为了实现这些目标,Unpack
- 通过遍历 抽象语法树 来收集所有项目的导入。
- 从 依赖规范文件 收集所有声明的依赖。
- 将本地环境的 site-packages 映射到解决依赖及其暴露的导入。
- 识别本地site-package依赖,以避免意外删除其他包正在使用的依赖。
- 计算包大小和总磁盘使用量。
包状态
-
-used
表示包已本地安装,它的别名之一在项目中正在使用,并且相应的依赖已在pyproject.toml
或requirements.txt
中声明。此状态表示完全集成且管理得当的包。 -
-unused
表示包已本地安装,并且相应的依赖已在pyproject.toml
或requirements.txt
中声明,但未在项目中积极使用。 注意: 此包不得是任何积极-used
包的依赖项,才能被视为未使用。 -
-untracked
表示包已安装,其别名之一在项目中正在使用,但未在pyproject.toml
或requirements.txt
中声明。这突出了那些隐式使用但未正式声明的包,这可能导致依赖关系管理和部署中的不一致或问题。
演示
📦 Unused Packages
package | version | size
--------------+--------------+----------
scikit-learn | ^1.4.1.post1 | 46.9 MiB
keras | ^3.0.5 | 8.8 MiB
pydantic | ^1.9.0 | 3.1 MiB
💽 Total disk space: 58.9 MiB
Note: There might be false-positives.
For example, unpack cannot detect usage of packages that are not imported under `[tool.poetry.*]`.
Similarly, it can only detect declared packages in requirements.txt or pyproject.toml.
依赖项
~20–31MB
~515K SLoC