Warning
Despite being public, this repository is still in development stage and have not been tested extensively yet.
kloch /klˈoʃ/ is a configuration system for launching software.
Configurations are yaml files referred as "environment profile" which specify
the parameters for one or multiple pre-defined launchers.
Launchers are internally defined python objects that specify how to execute a combinations of options and (optional) command.
In a very abstract way, kloch is a system that:
- serialize the arguments passed to a pre-defined function as yaml files.
 - execute that function by unserializing the parameters provided at runtime.
 
kloch was initially designed as the environment manager layer when used with
the rez package manager.
- offer a CLI and a public python API
 - custom config format for environment profiles:
- inheritance
 - inheritance merging rules with token system
 
 - arbitrary profile locations with flexible configuration
 - plugin system for launchers
 
- robust logging.
 - good amount of unittesting
 - good documentation with a lot of doc created at code level
 - python 3.7+ support (EOL was in June 2023).
 - PyYAML as only mandatory external python dependency.
 - flexible "meta" configuration from environment variable or config file.
 - clear public and private API
 
pip install kloch
kloch --help
# or:
python -m kloch --help Check the detailed documentation at https://knotsanimation.github.io/kloch/