Re: Best practice for config files?

Jason H <[email protected]> Sat, 24 May 2025 11:46:25 -0000 (UTC)
Newsgroups comp.lang.python
Organization A noiseless patient Spider
Message-ID <[email protected]>
On 22/05/2025 20:59, Michael F. Stemper wrote:
>I recently wrote a program to do some record-keeping for me. I found
>myself hard-coding a bunch of different values into it. This didn't
>seem right, so I made my first use of configparser.ConfigParser().
>Created the configuration file and everything is working fine.
>
>However, I wrote it based on the assumption that the program is
>running in the directory where the config file is stored, and has
>a specific name. I started having some second thoughts here.
>
>I thought about putting the location of the configuration file in
>the configuration file, but that seemed like a non-starter.[1]
>
>Should I specify the location of the config file with a command-line
>option, or is requiring the program to be executed in the directory
>containing the configuration file considered acceptable practice?
>
>
>
>[1] See Tegan Jovanka in _Castrovalva_ for more on this idea.

So, I use an environment variable because my config is shared between Python
 and Java auto test frameworks. I think keeping the config adjacent to the
 .py files is also workable because a Python program can know where it is:

from pathlib import Path

script_path = Path(__file__).resolve()
script_directory = script_path.parent

print(f"The script is located at: {script_path}")
print(f"The script is located in the directory: {script_directory}")


--
A PICKER OF UNCONSIDERED TRIFLES