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
--
https://mail.python.org/mailman3//lists/python-list.python.org

Reply via email to