Deutsch   English   Français   Italiano  
<100sbih$mdvl$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Jason H <jason_hindle@yahoo.com>
Newsgroups: comp.lang.python
Subject: Re: Best practice for config files?
Date: Sat, 24 May 2025 11:46:25 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <100sbih$mdvl$1@dont-email.me>
References: <100nvn0$3kq1t$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 24 May 2025 13:46:25 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="074d6e6827f1ff21623eabd3b7feae90";
	logging-data="735221"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18POe/fbNOKZWPFl1eTvvQUbp0ropEEOkQ="
User-Agent: PhoNews/3.13.3 (Android/15)
Cancel-Lock: sha1:aGrcltZdBJV7bhzStFwVwk5Tzvo=
In-Reply-To: <100nvn0$3kq1t$1@dont-email.me>

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