title: Share 50+ constants between modules in a pythonic way
body: <p>I understand this is not a 'coding' question but I need a coding solution.</p>
  <p>I have multiple packages I wrote, all supposed to be encapsulated, and independent on external parameters other than a few input arguments.</p>
  <p>On the other side, I have a general file <code>constants.py</code> with 50+ constants which those packages <strong>better</strong> use in order to provide an output dictionary without hardcoded names :</p>
  <p>A PACKAGE OUTPUT:</p>
  <pre><code>{
  'sub_name':xyz,
  'sub_type':yzg
  }
  </code></pre>
  <p>Here <code>sub_name</code> should be given to the package as input so the general program will know what to do with <code>sub_name</code> output.</p>
  <p>How <em>should</em> I share <code>constants.py</code> with the packages ?</p>
  <p>The obvious way is to just <code>import constants.py</code>, which makes the package dependent on an external file somewhere else in the program.
  The other way is to keep constants in some <code>class Keys</code> and send it as argument.
  Could/should I send <code>constants.py</code> as an argument ?</p>
  <p>I find it hard to understand how packages should be written and organized when inside a larger project, in a way they can be reused by other devs independently.</p>