Metadata-Version: 2.1
Name: configalchemy
Version: 0.4.3
Summary: The Settings and Configuration on ideal practices for app development.
Home-page: https://github.com/GuangTianLi/configalchemy
Author: GuangTian Li
Author-email: guangtian_li@qq.com
License: UNKNOWN
Description: =============
        ConfigAlchemy
        =============
        
        .. image:: https://img.shields.io/pypi/v/configalchemy.svg
                :target: https://pypi.python.org/pypi/configalchemy
        
        .. image:: https://github.com/GuangTianLi/configalchemy/workflows/test/badge.svg
                :target: https://github.com/GuangTianLi/configalchemy/actions
                :alt: CI Test Status
        
        .. image:: https://readthedocs.org/projects/configalchemy/badge/?version=latest
                :target: https://configalchemy.readthedocs.io/en/latest/?badge=latest
                :alt: Documentation Status
        
        .. image:: https://img.shields.io/pypi/pyversions/configalchemy.svg
                :target: https://pypi.org/project/configalchemy/
        
        .. image:: https://codecov.io/gh/GuangTianLi/configalchemy/branch/master/graph/badge.svg
          :target: https://codecov.io/gh/GuangTianLi/configalchemy
        
        .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
          :target: https://github.com/psf/black
        
        
        
        The Settings and Configuration on ideal practices for app development and package building.
        
        
        * Free software: MIT license
        * Documentation: https://configalchemy.readthedocs.io.
        
        Installation
        ----------------
        
        .. code-block:: shell
        
            $ pipenv install configalchemy
            ✨🍰✨
        
        Only **Python 3.6+** is supported.
        
        Example
        --------
        
        .. code-block:: python
        
                from configalchemy import BaseConfig
        
                class DefaultConfig(BaseConfig):
                    NAME = "test"
        
                config = DefaultConfig()
                config.NAME
                >>> 'test'
        
        Features
        ----------
        
        - 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
        
        - Extension
        
            - Full `Apollo - A reliable configuration management system <https://github.com/ctripcorp/apollo>`_ Features Support
        
        TODO
        -------
        
        - Add More Proper Log
        
        
        =======
        History
        =======
        
        0.4.* (2020-06)
        ------------------
        
        * Refatory configure function
        * Support property configuration
        
        0.3.* (2020-03)
        ------------------
        
        * Add proxy and lazy module.
        * Add find_caller to trace source of config value
        * Refactory ConfigMeta data structure
        
        0.2.* (2019-08)
        ------------------
        
        * Change global variable to weak reference
        * Remove Lock (Prepare to implement optimistic raw lock if necessary)
        * Improve Priority Data Structure
        * Improve Field Validation
        * Use OOP to define call function
        * Properer validation and typecast
        * Improve Type Annotations
        * Import JSON type
        
        0.1.0 (2019-08-01)
        ------------------
        
        * Init Project.
        
Keywords: configalchemy
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.6.0
Provides-Extra: apollo
Provides-Extra: tests
