Configuration management package for Kaggle projects using OmegaConf
Project description
kef
Hierarchical configuration management for Kaggle projects using OmegaConf.
Overview
kef provides a unified interface for merging repository-wide base configurations with project-specific overrides. It is designed for monorepos or projects where multiple experiments share global infrastructure settings but require local hyperparameter variations.
Installation
uv add kef
Configuration Hierarchy
kef automatically discovers and merges configurations in the following priority (lowest to highest):
- Base Configuration:
kef.yamllocated at the git repository root. - Project Configuration:
key.yaml(preferred) orkef.yamlfound in the current directory or its parent hierarchy.
Project-level configurations override base configurations.
API Usage
Access the merged configuration singleton:
from kef import cfg
# Access via dot notation
print(cfg.ml.model.max_iter)
# Access via dictionary keys
print(cfg["mlflow"]["tracking_uri"])
# Convert to native dictionary
config_dict = cfg.to_dict()
If you need to reload the configuration (e.g., after changing directories programmatically):
from kef import reload_config
cfg = reload_config()
Command Line Interface
kef includes a CLI for inspecting the configuration applied in the current workspace.
View Configuration
# Render the entire merged configuration with syntax highlighting
kef view
# View a specific section or key
kef view ml.feature_engineering
# View without resolving OmegaConf interpolations
kef view --no-resolve
Discovery Info
Check which files are being used:
kef info
Shell Completion
To enable tab completion for kef commands and options, add the following to your shell profile:
Zsh
eval "$(_KEF_COMPLETE=zsh_source kef)"
Bash
eval "$(_KEF_COMPLETE=bash_source kef)"
Fish
_KEF_COMPLETE=fish_source kef | source
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details on our code of conduct, development workflow, and semantic commit message conventions.
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kef-0.1.1.tar.gz.
File metadata
- Download URL: kef-0.1.1.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2116871c8546fe817609ff9766289c17bf1a603b7a1595913394e9845f7cab7
|
|
| MD5 |
e4ac831ffa369624a085c756501748bf
|
|
| BLAKE2b-256 |
0441c0dc98be1c9e29fc09c455596b75784e7d2744b9dc4e1ab4254044792292
|
File details
Details for the file kef-0.1.1-py3-none-any.whl.
File metadata
- Download URL: kef-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c19f4b20ee6a97686767c3d637c236b3ddb5a43f267d4ff5502450b3b0fccb71
|
|
| MD5 |
627d4927ff57a1ec864eb0284c664f06
|
|
| BLAKE2b-256 |
a9bfb5bf8daec9ad8381d11fea65b1c8a9d388d5110f95a36c252597c14784d3
|