Skip to main content

An easy way to manage environment specific configuration

Project description

Yamz

An easy way to manage environment specific configurations.

Requirements

  • Python >=3.6

Why Yamz?

All the other names I managed to think of were already taken, so... here we are.

How to use

I recommend using environments names such as: production, development, etc., Also, if you would like to include variables from your environment, make sure to add a $ prefix ($HOME) and Yamz will make sure it's included.

Note: global settings will be available in all environments

  • pip install yamz
  • Configure your environment in config.yaml (requires PyYAML)
    global:
      TEST: some_test
    production:
      HOME: $HOME
      MYSQL_DB_HOST: 1.2.3.4
      MYSQL_DB_PASS: $MYSQL_DB_PASS
    
  • Configure your environment in config.json
    {
      "global": {
        "TEST": "some_test"
      },
      "production": {
        "HOME": "$HOME",
        "MYSQL_DB_HOST": "1.2.3.4",
        "MYSQL_DB_PASS": "$MYSQL_DB_PASS"
      }
    } 
    
import os

from yamz import Yamz
from yamz.providers.default import YamlProvider, JsonProvider

base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
path = os.path.join(base, 'config.yaml')

env = Yamz(path, provider=YamlProvider) # or JsonProvider
prod_env = env.load("production")

prod_env.MYSQL_DB_HOST # 1.2.3.4

prod_env.YAMZ_ENV # production

Contributions

If you'd like to contribute and make Yamz better, feel free to open up a PR. I'll review it at my earliest convenience!

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

yamz-0.2.2.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

yamz-0.2.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file yamz-0.2.2.tar.gz.

File metadata

  • Download URL: yamz-0.2.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.9

File hashes

Hashes for yamz-0.2.2.tar.gz
Algorithm Hash digest
SHA256 63c843568aab751ab01a97f85e38d5478e6bf4382fd2b7935c581bca33cb0fe7
MD5 04bd2328b9348e62f9b913b860251647
BLAKE2b-256 102ace285d24c6979cba1bbc4b2382362079eec0b9890baf9cc5bfc5e9f8facf

See more details on using hashes here.

File details

Details for the file yamz-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: yamz-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.9

File hashes

Hashes for yamz-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2a5ccc42ecf20b74fc417f50e97f2d4e35130ed6d1779dc7661337b610859ac7
MD5 a8dc6982b7b7a27ef33ca64ee78bdeca
BLAKE2b-256 91351723cf573bfb2981e753befe94b54e675625dd865976d1c2f3a91c5b2dc3

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