Skip to main content

conf-finder

test test coverage

Configuration file finder.

The configuration file/directory is searched for in the following locations by default:

  • The current directory
  • Git root repository (if the current directory is within a repository)
  • XDG config home ($XDG_CONFIG_HOME; if not set, ~/.config is used)
  • Home directory

To locate the configuration directory, the tool searches for a dot-prefixed name (e.g., .mytool) in all locations except for the XDG config home. Within the XDG config home, a name without the dot prefix (e.g., mytool) is searched for.

If no directory is found, the path under the XDG config home is returned.

To locate the configuration file, the tool first searches for a dot-prefixed file (e.g., .myconf.txt) in all locations except for the XDG config home. Within the XDG config home, a file name without the dot prefix (e.g., myconf.txt) is searched for. Following this, an attempt is made to find the file within the located configuration directories.

If no file is found, the path under the configuration directory within the XDG config home is returned.

Requirement

  • Python 3.9, 3.10, 3.11

Installation

$ pip install conf-finder

Usage

from conf_finder import ConfFinder


cf = ConfFinder('mytool')
print(cf.directory())

This script searches for:

  • ./.mytool
  • /.mytool if here is under the git repository.
  • $XDG_CONFIG_HOME/mytool (If XDG_CONFIG_HOME is not set, use ~/.config.)
  • ~/.mytool

If no directory is found, return $XDG_CONFIG_HOME/mytool (or ~/.config/mytool).

from conf_finder import ConfFinder


cf = ConfFinder('mytool')
print(cf.conf(exe='toml'))

This script searches for:

  • ./.mytool.toml
  • /.mytool.toml if here is under the git repository.
  • $XDG_CONFIG_HOME/mytool.toml (If XDG_CONFIG_HOME is not set, use ~/.config.)
  • ~/.mytool.toml
  • ./.mytool/conf.toml
  • /.mytool/conf.toml
  • $XDG_CONFIG_HOME/mytool/conf.toml
  • ~/.mytool/conf.toml
from conf_finder import ConfFinder


cf = ConfFinder('mytool')
print(cf.conf('mytool', 'toml', 'myconf'))

This script searches for:

  • ./.myconf.toml
  • /.myconf.toml
  • $XDG_CONFIG_HOME/myconf.toml
  • ~/.myconf.toml
  • ./.mytool/myconf.toml
  • /.mytool/myconf.toml
  • $XDG_CONFIG_HOME/mytool/myconf.toml
  • ~/.mytool/myconf.toml

If you wish to search for only files directly placed under the search directories, conf_type to 'file':

from conf_finder import ConfFinder


cf = ConfFinder('mytool', conf_type='file')
print(cf.conf('mytool', 'toml', 'myconf'))

This script searches for:

  • ./.myconf.toml
  • /.myconf.toml
  • $XDG_CONFIG_HOME/myconf.toml
  • ~/.myconf.toml

If no file is found, $XDG_CONFIG_HOME/myconf.toml is returned.

To search for only directories, conf_type to 'dir' instead.

Metadata

Release files for conf-finder 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for conf-finder 0.3.1
File Size Uploaded
conf_finder-0.3.1.tar.gz 74.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for conf-finder 0.3.1
File Interpreter ABI Platform
conf_finder-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 84.2 kB

Release files / conf_finder-0.3.1.tar.gz

Download URL conf_finder-0.3.1.tar.gz
Size 74.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3df3a3eaf2a1af8920c3b91b6b2068a4620c5b4e6fac8711e6da4582e0ed591f
BLAKE2b-256 checksum
How to use checksums
257e233812e2ab32874a11da2113bce4981df6d6d43da94221204aa6afc986b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.15

Release files / conf_finder-0.3.1-py3-none-any.whl

Download URL conf_finder-0.3.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f4e7d4a87839f54433bd3d7ed3be09fc1e1ca8f251f7df3d2ff87dbfbcd1bd69
BLAKE2b-256 checksum
How to use checksums
9653c5d92b192f8e6d0ab7e08c629db999750a2d07c2771ba76195e365017b7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.15

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page