Skip to main content

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 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

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

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.

Supported by

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