使用Python导出映射模块以便于重构

Emi*_*ile 14 python refactoring module python-module

我有一堆Python模块,我想要清理,重新组织和重构(有一些重复的代码,一些未使用的代码...),我想知道是否有一个工具来制作哪个模块使用哪个模块的地图.

理想情况下,我想要一张这样的地图:

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
Run Code Online (Sandbox Code Playgroud)

...所以我可以告诉哪些文件我可以先开始移动(file_utils.py,db_access.py),我的main.py没有使用哪些文件,因此可以删除等等.(我实际上在工作大约60个模块)

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

您知道有助于代码重组的任何工具(甚至是简单的脚本)吗?

你知道我正在做什么的更准确的术语吗?代码重组?

Kat*_*iel 14

Python就是modulefinder这样做的.编写一个将这些信息转换为导入图形的脚本非常容易(您可以使用例如graphviz进行渲染):这里有一个清晰的解释.还有snakefood为你做所有工作(并使用ASTs!)

您可能希望查看pylintpychecker执行更多常规维护任务.