#python-packages #unpack #python #dependencies #tool

已删除 py-unpack

Unpack是一个简单、快速且用户友好的工具,用于分析Python项目的打包。

0.1.0 2024年4月10日

#34 in #unpack

MITLGPL-3.0-only

490KB
1.5K SLoC

Logos logo

Unpack

CI License: MIT

从您的项目中提取Python包以及更多。

Unpack 有几个目标

  • 轻松导航和删除已使用、未使用和未跟踪的Python包。
  • 快速识别上述类别中包的磁盘使用量。
  • 查看各种包及其依赖关系之间的关系。

为了实现这些目标,Unpack

  • 通过遍历 抽象语法树 来收集所有项目的导入。
  • 依赖规范文件 收集所有声明的依赖。
  • 将本地环境的 site-packages 映射到解决依赖及其暴露的导入。
  • 识别本地site-package依赖,以避免意外删除其他包正在使用的依赖。
  • 计算包大小和总磁盘使用量。

包状态

  • -used 表示包已本地安装,它的别名之一在项目中正在使用,并且相应的依赖已在 pyproject.tomlrequirements.txt 中声明。此状态表示完全集成且管理得当的包。

  • -unused 表示包已本地安装,并且相应的依赖已在 pyproject.tomlrequirements.txt 中声明,但未在项目中积极使用。 注意: 此包不得是任何积极 -used 包的依赖项,才能被视为未使用。

  • -untracked 表示包已安装,其别名之一在项目中正在使用,但未在 pyproject.tomlrequirements.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