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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jbussdieker_config-0.5.1.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jbussdieker_config-0.5.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

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

Hashes for jbussdieker_config-0.5.1.tar.gz
Algorithm Hash digest
SHA256 476b50900c749bbcfe17b972fcf0060c664dd6739b6f79a4b02b96a9f28c9d7d
MD5 8d64c19dd3cae5465df295e27cd7adcc
BLAKE2b-256 43c4544c914fa491d4b60fb08170843739459888f4ad1ffaea7ce2c3ff295b1f

See more details on using hashes here.

File details

Details for the file jbussdieker_config-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for jbussdieker_config-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a795d0efbc0eeeaf43741b2c68ea1bf13756a2c7e299822bf0cfdda2fa48cbbd
MD5 7fee9672430e4e499758d20e3a5a761b
BLAKE2b-256 bcd0cb202fccf69357922e6940a88b47732166f772261351e8f172667ff39ee5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page