Introduction

configoose is a module enabling Python programs and libraries to use configuration files while leaving users free to store these configuration files to the location that suits them in their file system and even in other locations.

Motivation

As a regular writer of programs that use configuration files, I have always found restrictive to impose on users the locations where to store these files. As a user, I like to be able to organize my storage space as I see fit. configoose is designed to respond to this need.

Principle

How can a program find its configuration file if it can be anywhere on the file system, in a place that users choose as they want?

configoose answers this question as follows: the program uses an abstract address to designate its configuration file, and it asks a third party where is the configuration file that has been registered for this abstract address. This third party is the configoose module. It maintains a database connecting abstract addresses to configuration file locations and therefore enables Python programs or modules to access these files.

Abstract addresses can be arbitrary strings such as my-own-program-configuration or dc4yhyxxhwu8cymbxne66pvpc. These strings must be specific enough to avoid addresses collisions between the configurations of several programs.