A modern Python development toolkit.
Project description
jbussdieker-config
A modern Python development toolkit plugin for managing configuration settings within the jbussdieker CLI framework. This plugin provides a simple and intuitive way to view, set, and manage configuration values for the jbussdieker ecosystem.
🚀 Features
- Configuration Management: View and modify configuration settings for jbussdieker plugins
- JSON-Based Storage: Persistent configuration stored in JSON format
- Custom Settings: Support for custom configuration values beyond built-in settings
- Type-Aware: Automatic type conversion for boolean, string, and other data types
- Environment Override: Configurable config file location via environment variables
- Default Values: Sensible defaults for common development settings
📦 Installation
pip install jbussdieker-config --upgrade
🔧 Prerequisites
- Python 3.9 or higher
- jbussdieker CLI framework
🎯 Usage
View Current Configuration
Display all current configuration settings:
jbussdieker config
Set Configuration Values
Set a configuration value using the KEY=VALUE format:
jbussdieker config --set user_name="John Doe"
jbussdieker config --set user_email="john@example.com"
jbussdieker config --set private=false
Custom Settings
Set custom configuration values that aren't part of the built-in settings:
jbussdieker config --set custom_setting="value"
📋 Configuration Settings
The plugin manages the following built-in configuration settings:
User Information
user_name: Your full name (default: "Joshua B. Bussdieker")user_email: Your email address (default: "jbussdieker@gmail.com")github_org: Your GitHub organization (default: "jbussdieker")
Project Settings
private: Whether projects should be private by default (default: true)storage_url: URL for storage configurationopenai_api_key: OpenAI API key for AI-powered features
Logging Configuration
log_level: Logging level (default: "INFO")log_format: Log format string (default: "%(levelname)s: %(message)s")
Custom Settings
custom_settings: Dictionary for storing custom configuration values
🔍 How It Works
- Configuration Storage: Settings are stored in
~/.jbussdieker.jsonby default - Environment Override: Use
JBUSSDIEKER_CONFIGenvironment variable to specify a custom config file path - Type Conversion: Boolean values are automatically converted from string representations
- Persistence: Changes are immediately saved to the configuration file
- Validation: Built-in settings are validated against expected types
🛠️ Development
This plugin is part of the jbussdieker ecosystem. It integrates seamlessly with the jbussdieker CLI framework.
Project Structure
src/jbussdieker/config/
├── __init__.py # Package initialization and version
├── cli.py # CLI interface and argument parsing
└── config.py # Configuration management and storage
Configuration File Location
By default, the configuration is stored in:
~/.jbussdieker.json
You can override this by setting the JBUSSDIEKER_CONFIG environment variable:
export JBUSSDIEKER_CONFIG="/path/to/custom/config.json"
📝 License
This project is licensed under MIT.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📚 Related
- jbussdieker - The main CLI framework
- jbussdieker-commit - AI-powered commit message generation
Project details
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 jbussdieker_config-0.5.1.tar.gz.
File metadata
- Download URL: jbussdieker_config-0.5.1.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
476b50900c749bbcfe17b972fcf0060c664dd6739b6f79a4b02b96a9f28c9d7d
|
|
| MD5 |
8d64c19dd3cae5465df295e27cd7adcc
|
|
| BLAKE2b-256 |
43c4544c914fa491d4b60fb08170843739459888f4ad1ffaea7ce2c3ff295b1f
|
File details
Details for the file jbussdieker_config-0.5.1-py3-none-any.whl.
File metadata
- Download URL: jbussdieker_config-0.5.1-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a795d0efbc0eeeaf43741b2c68ea1bf13756a2c7e299822bf0cfdda2fa48cbbd
|
|
| MD5 |
7fee9672430e4e499758d20e3a5a761b
|
|
| BLAKE2b-256 |
bcd0cb202fccf69357922e6940a88b47732166f772261351e8f172667ff39ee5
|