Python 对于使用公共模块的脚本,我应该将助手函数放在哪里?

Python 对于使用公共模块的脚本,我应该将助手函数放在哪里?,python,Python,我一直在开发一组Python脚本,为了保持简单,可以使用我专门为这些脚本编写的解析器来操作一组输入文件。该项目的设计通常如下所示: /project/project/__init__.py /project/project/parser.py /project/project/helperfunctions.py /project/preferences.ini /project/script1.py /project/script2.py /project/scripts/preferenc

我一直在开发一组Python脚本,为了保持简单,可以使用我专门为这些脚本编写的解析器来操作一组输入文件。该项目的设计通常如下所示:

/project/project/__init__.py
/project/project/parser.py
/project/project/helperfunctions.py
/project/preferences.ini
/project/script1.py
/project/script2.py
/project/scripts/preferences.ini
/project/scripts/script1.py
/project/scripts/script2.py
/project/parser.py
/project/setup.py
每个脚本都从
helperfunctions.py
调用某些函数,以执行诸如读取首选项文件之类的任务,否则每个脚本都必须复制这些代码。辅助函数根本不在解析器中使用

但现在我决定让项目朝着解析器本身发展,同时仍然将脚本放在一边。现在这个项目看起来是这样的:

/project/project/__init__.py
/project/project/parser.py
/project/project/helperfunctions.py
/project/preferences.ini
/project/script1.py
/project/script2.py
/project/scripts/preferences.ini
/project/scripts/script1.py
/project/scripts/script2.py
/project/parser.py
/project/setup.py
我认为这是一个更简洁的设计,但问题是我不确定这些助手函数应该放在哪里。我的想法是:

  • 在解析器旁边安装
    setup.py
    install
    helperfunctions.py
    。我反对这一点,因为helper函数只提供了与解析器无关的方便方法
  • 将helper函数作为“隐藏”类合并到解析器中。我反对这一点的理由与上述相同
  • 将助手函数放入
    /project/scripts/
    ,避开安装。我不喜欢这个想法,因为这意味着
    helperfunctions.py
    本身就是一个脚本

解决这个问题最具python风格的方法是什么?

一个选项是在
\uuuu init\uuuuuuuuuupy.py
中放置辅助函数,因此您可以稍后从解析模块调用它们

我不知道你的函数有多复杂。。。它们只是函数,或者可能是助手类


思考的方式是从用户(解析器和那些辅助函数)的角度出发。您(或任何人)将如何调用这些函数?

这些函数占用大约200 loc的空间,它们处理诸如智能地迭代文件之类的任务(即,用户可以在脚本上放置一个文件夹,它将遍历它可以解析的每个文件)。我会看看是否可以为我的问题添加更多细节。我已经阅读了您编辑的问题:如果函数与脚本相关,我会将它们放在脚本/文件夹中。如果您仍然希望它们随安装一起分发,但不是解析器模块的一部分,那么您可以在示例/或类似的源代码中提供它们?