On Fri, Aug 13, 2010 at 07:48:22AM +1000, Nick Coghlan wrote:
2010/8/12 Éric Araujo
: Choosing an arbitrary location we think is good on every system is fine and non risky I think, as long as Python let the various distribution change those paths though configuration.
Don’t you have a bootstrapping problem? How do you know where to look at the sysconfig file that tells where to look at config files?
I'd hardcode a list of locations. [os.path.join(os.path.dirname(__file__), 'sysconfig.cfg'), os.path.join('/etc', 'sysconfig.cfg')] The distributor has a limited choice of options on where to look. A good alternative would be to make the config file overridable. That way you can have sysconfig.cfg next to sysconfig.py or in a known config directory relative to the python stdlib install but also let the distributions and individual sites override the defaults by making changes to /etc/python3/sysconfig.cfg for instance.
Personally, I'm not clear on what a separate syconfig.cfg file offers over clearly separating the directory configuration settings and continuing to have distributions patch sysconfig.py directly. The bootstrapping problem (which would encourage classifying synconfig.cfg as source code and placing it alongside syscongig.py) is a major part of that point of view.
Here's some advantages but some of them are of dubious worth: * Allows users/site-administrators to change paths and not have packaging systems overwrite the changes. * Makes it conceptually cleaner to make this overridable via user defined config files since it's now a matter of parsing several config files instead of having a hardcoded value in the file and overridable values outside of it. * Allows sites to add additional paths to the config file. * Makes it clear to distributions that the values in the config file are available for making changes to rather than having to look for it in code and not know the difference between thaat or say, the encoding parameter in python2. * Documents the format to use for overriding the paths if individual sites can override the defaults that are shipped in the system version of python. -Toshio