Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clearconf-0.3.12.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

clearconf-0.3.12-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file clearconf-0.3.12.tar.gz.

File metadata

  • Download URL: clearconf-0.3.12.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.12 Linux/5.19.0-45-generic

File hashes

Hashes for clearconf-0.3.12.tar.gz
Algorithm Hash digest
SHA256 2ed4d638c7475907d510303c4e17fc99ac2172b2cda28397f3e6ff8b2acff598
MD5 31960a271e82a221a2b0ed5cbc534508
BLAKE2b-256 8f52a2dfd44713f18a33c9f58e673ce05b3a3b6f837d350cdd50284142eee4e1

See more details on using hashes here.

File details

Details for the file clearconf-0.3.12-py3-none-any.whl.

File metadata

  • Download URL: clearconf-0.3.12-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.12 Linux/5.19.0-45-generic

File hashes

Hashes for clearconf-0.3.12-py3-none-any.whl
Algorithm Hash digest
SHA256 268925ecec1d6fd1b34b60b0744b0af1dc3528ed67593d9b56404b06f518cbcb
MD5 e1c287c4eac1fe82b2a2241857059a72
BLAKE2b-256 038ef7e39ef4eb18d0b585eda320cc07aadb86db2cd08887a226d46fa422ea5b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page