Skip to main content

A friendly enviroment variable parser to describe envs and parse them. This will make documenting environment variables easier.

Project description

Env Parser

A friendly enviroment variable parser to describe envs and parse them. This will make documenting environment variables easier.

Basic Usage

Import the config function and provide a configuration .yaml or .yml file to it as bellow:

envs:
    env_id:
        name: string
        description: string
        options: [value_type]
        required: true | false
        value_type: str | int | bool | float

example:

envs:
  redis_url:
    name: 'REDIS_URL'
    description: "The redis database URL"
    options: ['redis://localhost:6379']
    required: true
    value_type: str

The config function returns a dict with the parsed envs converted to it's type.

Env Properties

  • name: it should be the same string as in your .env file
  • description: a short description of what is it
  • options: a list of the possible values the env can receive
    • If any different value is provided, it will issue an error
  • required: if the env variable is required or not
  • value_type: a string representing the convertion type of the env value
    • Currently supports: str, int, bool and float

Multiple Environs

To use multiple environs, must set the multi key to true and you have to add them as top level after the envs: directive. We have three possible environs: development, staging, production.

envs:
    multi: true
    active: 'development' | 'staging' | 'production' 
    development:
        # Normal env declaration
    staging:
        # Normal env declaration
    production:
        # Normal env declaration

In your .env (or wherever you put your envs), for each type of environ, the env must have the correct prefix:

  • DEV_ for development
  • STAG_ for staging
  • PROD_ for production

The loader will return a tuple: (active, envs) with the active environ and all of the parsed environs, respectively.

If no active is provided, it will return (None, envs).

If you enable environs, you can't have misplaced envs outside of them to avoid possible security issues.

Possible Errors

  • If an environment is empty, it will issue a waring
  • If a name different than the reserved ones for a eviron is giver, it will issue an error
    • Custom environs are in progress!
  • If your not using environments and make use of the active: true|false directive, it will treat it as a env variable and issue a invalid env error

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

envify-1.0.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envify-1.0.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file envify-1.0.0.tar.gz.

File metadata

  • Download URL: envify-1.0.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.5.0-1018-azure

File hashes

Hashes for envify-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fe6b6b551824a381a599c8ea969e750a1279d9225ba33568c2221c64af81c7b8
MD5 cd0ae6946f1bcfca53fdecf6e2c39b33
BLAKE2b-256 97ff049e84fdbfa502c06794cf62e177c057194d1d7b1a2300dff88f4d2f9ede

See more details on using hashes here.

File details

Details for the file envify-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: envify-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.5.0-1018-azure

File hashes

Hashes for envify-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07dec5cf50a6a8ed065fef239544ef651443fcb238ad02714e18131194470991
MD5 9ae11501a3bd846fe196cf1a8113da44
BLAKE2b-256 947f9331df6a3b3961e00ea8c9e7bf46121437271badb9322c6999d6d162d6fe

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