Python configuration file and command line executable to run a script with
Project description
Python Configuration and a command line Runner
Python configuration file and command line executable to run a script with.
Why a python file as configuration?
- Configuration of any complexity
- No need to serialize the configuration
- No need other meta-languages for the configuration
Usage
In the code
Configuration file (e.g. config.py
):
num_epochs = 100
batch_size = 256
model = resnet18(10)
train_loader = get_train_loader("/path/to/dataset", batch_size=batch_size)
unsup_dataloader = get_train_unsup_loader("/path/to/unsup_dataset", batch_size=batch_size)
...
Script file (e.g. training.py
):
from torch.utils.data import DataLoader
from py_config_runner import ConfigObject, TrainvalConfigSchema
class SSLTrainvalConfigSchema(TrainvalConfigSchema):
unsup_dataloader: DataLoader
def training(config):
# ...
print(config.config_filepath)
print(config.output_path)
print(config.num_epochs)
print(config.model)
print(len(config.train_loader))
def main():
config_filepath = "/path/to/config.py"
config = ConfigObject(config_filepath)
SSLTrainvalConfigSchema.validate(config)
# Add more things at runtime
config.output_path = "/tmp/output"
training(config)
With launcher
cd /path/to/my/project
py_config_runner scripts/training.py configs/train/baseline.py
or
cd /path/to/my/project
python -u -m py_config_runner scripts/training.py configs/train/baseline.py
or if your specific launcher requires only python script files:
cd /path/to/my/project
python -m special_launcher `py_config_runner_script` scripts/training.py configs/train/baseline.py
The only condition on the script file is it should contain run(config, **kwargs)
callable method. Additionally,
argument kwargs contains logger
(e.g. kwargs['logger']
) and local_rank
(e.g. kwargs['logger']
)
for distributed computations.
No restrictions are applied on the configuration file. It is user's responsibility to provide the script file that can
consume given configuration file. Provided configuration file is loaded as python module and exposed into the script as
the module named config
.
Examples
Installation
pip install py-config-runner
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
File details
Details for the file py_config_runner-0.3.0.tar.gz
.
File metadata
- Download URL: py_config_runner-0.3.0.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | beda14507df7b208cc31749439c3feb35df30a99f571c2c8fae3f9efbcf52c35 |
|
MD5 | 5b250c3d3f08a5bf14c68d330bb4d1a1 |
|
BLAKE2b-256 | c697682607205da06054614dfa1e0209a2e7065b96410c4cdc9e194cbe2db750 |
File details
Details for the file py_config_runner-0.3.0-py2.py3-none-any.whl
.
File metadata
- Download URL: py_config_runner-0.3.0-py2.py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aaca4ef6df7cb3b06fa1253c3b806e6006f324be3c0b3a704dfa56fad53df307 |
|
MD5 | b7fddb626cc11583e95f62dddc1876b1 |
|
BLAKE2b-256 | f1b62b60314d702d3a7f6bbed37d0fcfe8af3bbe933bfbf6c43bb2834457f662 |