Skip to main content

global configparser object to be used across modules

Project description

pypi versions license

globconf

  • Creates a global configparser object, regardless of the project and module in need of it
  • A docker container can be used to host protected config files, consumable by the parser object
  • verify_required_options merges default options with the configparser ones, and optionally ENV options while validating required options have been set either way.

Getting Started

In a project using globconf:

from globconf import config, verify_required_options, read_config, fetch_config
# when starting the app, the config can be loaded from a specific path:
read_config(path='flaf.ini', force=True)  # reloads config, even if it already is loaded

# or from the globconfd container - caching supported as convenience for offline devs:
fetch_config('http://127.0.0.1:5000/cfg.ini', 'user', 'pass', cache_timeout=86400, force=True)

# if config is not explicitly loaded, config.ini is read from current folder (if there).

# verify_required_options checks presence of options, yielding a dict with the merged options 
# for the section
DEFAULTS = {'required': None, 'optional_a': 1234}
cfg = verify_required_options('Some section', ['required', 'options', 'for', 'the', 'section'])
 
# beyond this, its still basic ConfigParser as you know it..

In modules:

from globconf import verify_required_options
class cls(object):
    def __init__(self):
        self.cfg = verify_required_options('service now', ['host', 'user', 'pwd'])
        if self.cfg.get('verify_ssl', True) is False:
            import urllib3
            urllib3.disable_warnings(InsecureRequestWarning)

And your module is happy as long as someone has initialised the needed section in the global config.

globconfd via docker

docker run -it -v ./users.conf:env_users.conf -v ./cfgs:/configs -p 5000:5000 ssch/globconfd:latest -d

Prerequisites

configparser, diskcache, requests

Building

Build:

sudo python setup.py sdist bdist_wheel
twine upload dist/*

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

Nahh..

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

globconf-0.0.7.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

globconf-0.0.7-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file globconf-0.0.7.tar.gz.

File metadata

  • Download URL: globconf-0.0.7.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.4

File hashes

Hashes for globconf-0.0.7.tar.gz
Algorithm Hash digest
SHA256 005439f765e6e914254ba6bec79f6d52d8a419ae2362805c54f59eee6a85d2e9
MD5 3490825c01f74a9420dfc32825646b4d
BLAKE2b-256 2f404dcdba265f9bca46edafd8f970c4fbdac180128b05fc04004b56e607bfe0

See more details on using hashes here.

File details

Details for the file globconf-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: globconf-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.4

File hashes

Hashes for globconf-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1f06e1c40bd8756bab714e25e81c5eda8928ca8732f71497caca585d62578c2e
MD5 a7b305d9dfb70aae7a579b941e81484f
BLAKE2b-256 67e3dfd00ef035cb56c95e2c095e9b5af7a6577612520f50367a513ce52dd89a

See more details on using hashes here.

Supported by

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