我有以下情况:我正在开发几个使用我编写的库模块的项目.库模块包含几个类和函数.在每个项目中,使用库的一些代码子集.
但是,当我为其他用户发布项目时,我只想放弃该项目使用的代码而不是整个模块.这意味着,对于给定的项目,我希望从库代码中删除未使用的库函数(即创建一个新的简化库).有没有可以自动执行此操作的工具?
编辑
一些澄清/答复:
我给你的第一个建议是用更强的模块化设计你的代码,这样你就可以拥有你想要保留在尽可能多的Python模块/鸡蛋中的所有功能,因为你必须使其灵活,只拥有你需要的每个功能您的项目。我认为这是让代码易于管理和可读的唯一方法。
也就是说,如果您真的想按照您在问题中描述的方式进行操作,据我所知,没有任何工具可以完全按照您所说的操作,因为这是一种不常见的使用模式。
但我认为编写一个使用绳索来执行此操作的工具并不困难。它进行静态和动态代码分析(因此您可以找到正在使用哪些导入的对象,从而猜测导入的模块中未使用哪些内容),并且还提供了许多重构工具来移动或删除代码。
无论如何,我认为要真正制作一个工具来准确找到当前代码中使用的所有代码,您需要对代码进行完整的单元测试覆盖,否则您应该真正有条理地导入模块的代码(仅使用from foo import bar并避免模块之间的链接导入)。