ClearConf is a library created to support easy and manageble python configuration. It consists in a CLI tool to manage the configuration directory, and in a python class (BaseConfig) which adds additional functionalities to a configuration class.
Project description
clearconf
ClearConf is a library created to support easy and manageble python configuration. It consists in a CLI tool to manage configuration and in a python class (BaseConfig) which adds additional functionalities to a configuration class.
Installation
To install ClearConf just run
pip install clearconf
Usage
The first step to use clearconf would be to use the CLI tool in the root of your project to initialize it:
cconf init
This will generate a config
directory where you will store your configurations and a .clearconf
file used by ClearConf to keep track of configurations.
After this you can start populating your config directory. You can find examples of configuration files in the Example section.
❗ClearConf recursively recognize as configuration all python files ending with
_conf
Finally you can import a generic configuration in your script as
from configs import Config
and use it as you please.
When the script is run, if a default configuration has been set via the CLI
cconf defaults add main.py test_conf.py
such configuration will be dynamically imported.
Otherwise, clearconf will list all the available configuration and ask you to pick one.
0: example3_conf
1: example1_conf
2: example2_conf
3: example4_conf
Choose a configuration file:
CLI
For more informations on the command line interface check the related README here
Examples
Example 1
A configuration file for machine learning could be structure as follow.
from models import MLP
from datasets import ImageNet
class Config(BaseConfig):
seed = 1234
class Model:
architecture = MLP
class Params:
num_layers = 16
layers_dim = [96] * num_layers
class Data:
dataset = ImageNet
class Params:
root = './data/PCN'
split = 'PCN.json'
subset = 'train'
The training/test script could read the configuration as follows:
from configs import Config
Model = Config.Model
Data = Config.Data
model = Model.architecture(**Model.Params.to_dict())
dataset = Data.dataset(**Data.Params.to_dict())
Example 2
It is also possible to simplify the configuration further using inheritance. For example the Model configuration seen before would look like this:
from models import MLP
class Config(BaseConfig):
seed = 1234
class Model(MLP):
class Params:
num_layers = 16
layers_dim = [96] * num_layers
The corresponding scirp is:
from configs import Config
Model = Config.Model
model = Model(**Model.Params.to_dict())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for clearconf-0.3.16-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 785c546f8aacce39f233be611f83e6eeadd456cd5df7a12940c6034bc3cb3464 |
|
MD5 | 5bb46e950781c4b47e48c9dbeb76508c |
|
BLAKE2b-256 | 9a6c56f7b58b967bbbee99deef254a648edddd74b5145be0610f2f1e28ad0eda |