📄 ConfigBuddy
Manage your configuration files with elegance! 🎨
✨ Features
- 📝 Multiple format support (YAML, JSON, INI)
- 🔍 Smart configuration comparison and visualization
- 🔄 Intelligent configuration merging
- ✅ JSON Schema validation
- 🌳 Tree-style visualization
🚀 Getting Started
Installation
pip install configbuddy
CLI Usage
ConfigBuddy provides a powerful CLI interface for managing your configuration files:
Visualize Configuration
configbuddy visualize config.yaml
Compare Configurations
configbuddy diff base.yaml --compare other.yaml
Merge Configurations
configbuddy merge base.yaml override.yaml -o merged.yaml
Validate Configuration
configbuddy validate config.yaml --schema schema.json
Generate Schema
configbuddy generate-schema config.yaml -o schema.json
Python API Usage
from configbuddy import Config
# Load configuration files
config1 = Config.from_file('config1.yaml')
config2 = Config.from_file('config2.json')
# Visualize configuration
config1.visualize()
# Compare configurations
diff = config1.diff_with(config2)
diff.visualize()
# Merge configurations
merged, conflicts = config1.merge_with(config2)
if conflicts:
print("Merge conflicts detected:", conflicts)
💡 Examples
Loading and Saving
# Load from YAML
config = Config.from_file('config.yaml')
# Save as JSON
config.save('config.json')
Configuration Comparison
# Compare two configs
diff = config1.diff_with(config2)
# Check differences
print("Added:", diff.added)
print("Removed:", diff.removed)
print("Modified:", diff.modified)
Configuration Merging
# Deep merge (default)
merged, conflicts = config1.merge_with(config2)
# Shallow merge
merged, conflicts = config1.merge_with(config2, strategy='shallow')
Visualization Example
config.yaml
├── database
│ ├── host: "localhost"
│ ├── port: 5432
│ └── credentials
│ ├── username: "admin"
│ └── password: "******"
└── logging
├── level: "INFO"
└── format: "%(asctime)s - %(message)s"
🎯 Use Cases
- 🔄 Manage dev/staging/prod configurations
- 🤝 Share and merge team configurations
- 🔍 Track configuration changes
- 📊 Version control experiment settings (ML/Data Science)
🛣️ Roadmap
- CLI interface
- PyPi Upload
- Comment preservation
- XML/TOML support
- Web dashboard (visualization/comparison)
🤝 Contributing
Bug reports, feature suggestions, and pull requests are welcome! See CONTRIBUTING.md for details.
📝 License
MIT License - see LICENSE for details.
🌟 Star History
Made with ❤️ by Harim Kang
Release files for configbuddy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| configbuddy-0.1.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| configbuddy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / configbuddy-0.1.0.tar.gz
| Download URL | configbuddy-0.1.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ed7d6b4128297217c7c795ff3a28c1dd6bffa055104e30c17c9633688718a26
|
|
BLAKE2b-256 checksum How to use checksums |
76aebcf0bd9ac7e936b2437e3240aef7191686ea10a742bac0ccb240896d91b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|
Release files / configbuddy-0.1.0-py3-none-any.whl
| Download URL | configbuddy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c4edf0fbe3fbd8698d1f1d3fa0a729a8b547976c24b39bfbcda45703fdf7c8f4
|
|
BLAKE2b-256 checksum How to use checksums |
2588fd6b9263d5307235307df1644a1971b20e33cf45fbe7dbf3741ea2f7eae5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.15
|