Skip to content

The settings and configuration on ideal practices for cloud native app development.

License

Notifications You must be signed in to change notification settings

GuangTianLi/configalchemy

Repository files navigation

ConfigAlchemy

CI Test Status Documentation Status

中文

The Settings and Configuration on ideal practices for cloud-native app development and package building.

Installation

$ pipenv install configalchemy
✨🍰✨

Only Python 3.6+ is supported.

Example

from configalchemy import BaseConfig

class DefaultConfig(BaseConfig):
    NAME = "test"

config = DefaultConfig()
config.NAME
>>> 'test'

Features

  • Base on The Twelve-Factor App Configuration.

  • Configurable dynamic configurator

  • Configuration-Oriented Development

    • Define default config value and its type which is used in your project
    • Use class to support inheritance to explicitly define configurable config
  • Override config value from multiple source with priority supported

    • Callable function return value
    • File (default: json)
    • Environment Variables
  • Proper Typecast before overriding

  • Generic Config Type Support by custom typecast

  • Lazy and Proxy Object Support.

  • Extension

TODO

  • IOC - Injector, Singleton