Skip to main content

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 configuration
  • openai_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

  1. Configuration Storage: Settings are stored in ~/.jbussdieker.json by default
  2. Environment Override: Use JBUSSDIEKER_CONFIG environment variable to specify a custom config file path
  3. Type Conversion: Boolean values are automatically converted from string representations
  4. Persistence: Changes are immediately saved to the configuration file
  5. 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

Metadata

Release files for jbussdieker-config 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jbussdieker-config 0.5.1
File Size Uploaded
jbussdieker_config-0.5.1.tar.gz 7.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jbussdieker-config 0.5.1
File Interpreter ABI Platform
jbussdieker_config-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / jbussdieker_config-0.5.1.tar.gz

Download URL jbussdieker_config-0.5.1.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
476b50900c749bbcfe17b972fcf0060c664dd6739b6f79a4b02b96a9f28c9d7d
BLAKE2b-256 checksum
How to use checksums
43c4544c914fa491d4b60fb08170843739459888f4ad1ffaea7ce2c3ff295b1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / jbussdieker_config-0.5.1-py3-none-any.whl

Download URL jbussdieker_config-0.5.1-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a795d0efbc0eeeaf43741b2c68ea1bf13756a2c7e299822bf0cfdda2fa48cbbd
BLAKE2b-256 checksum
How to use checksums
bcd0cb202fccf69357922e6940a88b47732166f772261351e8f172667ff39ee5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page