Loading configuration files is a common task in many projects. This package does the job.
The recommended way to install cfg_load is:
$ pip install cfg_load[all] --user
Note: You might have to escape [ and ] in some shells like ZSH.
If you want the latest version:
$ git clone https://github.com/MartinThoma/cfg_load.git; cd cfg_load
$ pip instell -e .[all] --user
cfg_load is intended to be used as a library. In your code, it will mostly
be used like this:
import cfg_load
config = cfg_load.load('some/path.yaml')
In order to check if it is doing what you expect, you can use it as a command line tool:
$ cfg_load examples/cifar10_baseline.yaml
{ 'dataset': { 'script_path': '/home/moose/GitHub/cfg_loader/datasets/cifar10_keras.py'},
'evaluate': { 'augmentation_factor': 32,
'batch_size': 1000,
'data_augmentation': { 'channel_shift_range': 0,
'featurewise_center': False,
'height_shift_range': 0.15,
'horizontal_flip': True,
'rotation_range': 0,
'samplewise_center': False,
'samplewise_std_normalization': False,
'shear_range': 0,
'vertical_flip': False,
'width_shift_range': 0.15,
'zca_whitening': False,
'zoom_range': 0}},
'model': { 'script_path': '/home/moose/GitHub/cfg_loader/models/baseline.py'},
'optimizer': { 'initial_lr': 0.0001,
'script_path': '/home/moose/GitHub/cfg_loader/optimizers/adam_keras.py'},
'train': { 'artifacts_path': '/home/moose/GitHub/cfg_loader/artifacts/cifar10_baseline',
'batch_size': 64,
'data_augmentation': { 'channel_shift_range': 0,
'featurewise_center': False,
'height_shift_range': 0.1,
'horizontal_flip': True,
'rotation_range': 0,
'samplewise_center': False,
'samplewise_std_normalization': False,
'shear_range': 0,
'vertical_flip': False,
'width_shift_range': 0.1,
'zca_whitening': False,
'zoom_range': 0},
'epochs': 1000,
'script_path': '/home/moose/GitHub/cfg_loader/train/train_keras.py'}}
You can see that it automatically detected that the file is a YAML file and
when you compare it to cfg_load examples/cifar10_baseline.yaml --raw you can
also see that it made the paths absolute.
cfg = cfg_load.load('examples/test.json')_ will ever be touched._path will be made absolute.[something]_module_path triggers cfg_load to load the
file found at [something]_module_path as a Python module to
cfg.modules['something'].cfg_load applies json.loads to the
environment variable._load_url has to have source_url and sink_path.
Files from source_url will be loaded automatically and stored in the
sink_path. A policy parameter can specify if it should be load_always
or load_if_missing.Not there, but planned fo the future:
[something]_cfg_path will trigger cfg_load to search for
another config file and append it at [something]. By this way you can
define configuration files recursively.Check tests with tox.
$ claude mcp add cfg_load \
-- python -m otcore.mcp_server <graph>