python - 在 Python 中映射模块导入以便于重构

标签 python refactoring module python-module

我有一堆 Python 模块我想清理、重组和重构(有一些重复的代码,一些未使用的代码......),我想知道是否有一个工具可以制作一个模块使用的 map 哪个其他模块。

理想情况下,我想要这样的 map :

main.py
 -> task_runner.py
  -> task_utils.py
  -> deserialization.py
   -> file_utils.py
 -> server.py
  -> (deserialization.py)
  -> db_access.py

checkup_script.py
re_test.py
main_bkp0.py
unit_tests.py

... 这样我就可以知道哪些文件我可以先开始移动(file_utils.py、db_access.py),哪些文件没有被我的 main.py 使用,因此可以删除,等等。(我'我实际上使用了大约 60 个模块)

编写执行此操作的脚本可能不会非常复杂(尽管导入处理有不同的语法),但我也希望我不是第一个这样做的人想要这样做(如果有人为此制作了一个工具,它可能包括其他巧妙的功能,例如告诉我哪些类和函数可能没有被使用)。

您是否知道任何有助于代码重组的工具(即使是简单的脚本)?

你知道我正在尝试做的事情的更准确的术语吗?代码重组?

最佳答案

Python 的 modulefinder做这个。编写将此信息转换为导入图(您可以使用例如 graphviz 呈现)的脚本非常容易:这里是 clear explanation .还有 snakefood它为您完成了所有工作(并且还使用了 AST!)

您可能想查看 pylintpychecker用于更一般的维护任务。

关于python - 在 Python 中映射模块导入以便于重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3573694/

相关文章:

python - 在 TensorFlow 中获取矩阵的对角线

python - 对象中的 AttributeError 没有属性 'toHtml' - pyqt5

python - 仅通过B表的插入操作更新A表的字段

java - 如何将大型 Java 项目分成较小的组件

使用泛型进行 Swift 重构 : how can I imply runtime values from the generic type?

Javascript代码分析: Count function, javascript文件中的变量调用和使用

java - 默认情况下,IntelliJ 将哪些文件夹添加到其不同运行配置的类路径中?

module - 如何实现 Prestashop 前端 Controller

perl - 为 dzil 测试创建并运行作者测试

python - 如何在 python-fedex 中为国际货件添加海关值(value)?