title: Where should I put helper functions for scripts that utilize a common module?
body: <p>I've been developing a set of Python scripts that, to keep things simple, manipulate a set of input files using a parser that I wrote specifically for those scripts. The project's design generally looked like this:</p>
  
  <pre><code>/project/project/__init__.py
  /project/project/parser.py
  /project/project/helperfunctions.py
  /project/preferences.ini
  /project/script1.py
  /project/script2.py
  </code></pre>
  
  <p>Each script calls certain functions from <code>helperfunctions.py</code> for tasks like reading the preferences file -- code which would otherwise have to be duplicated for each script. The helper functions are not used from the parser at all.</p>
  
  <p>But now I've decided that I want to gear the project toward the parser itself, while still keeping the scripts off to the side. So now the project looks like this:</p>
  
  <pre><code>/project/scripts/preferences.ini
  /project/scripts/script1.py
  /project/scripts/script2.py
  /project/parser.py
  /project/setup.py
  </code></pre>
  
  <p>I think this is a much cleaner design, but the problem is that I'm not sure where to put those helper functions anymore. The ideas I've come up with are:</p>
  
  <ul>
  <li>Have <code>setup.py</code> install <code>helperfunctions.py</code> alongside the parser. I'm opposed to this because the helper functions just provide convenience methods that aren't really related to the parser.</li>
  <li>Merge the helper functions into the parser as a "hidden" class of sorts. I'm opposed to this for the same reasons as above.</li>
  <li>Put the helper functions into <code>/project/scripts/</code>, sidestepping installation. I don't like this idea because that would suggest <code>helperfunctions.py</code> is a script itself.</li>
  </ul>
  
  <p>What's the most Pythonic way to solve this problem?</p>