项目作者: capless

项目描述 :
Easy access of environment variables from Python with support for typing (ex. booleans, strings, lists, tuples, integers, floats, and dicts). Now with CLI settings file converter.
高级语言: Python
项目地址: git://github.com/capless/envs.git
创建时间: 2016-06-30T18:29:45Z
项目社区:https://github.com/capless/envs

开源协议:Apache License 2.0

下载


envs

Easy access of environment variables from Python with support for booleans, strings, lists, tuples, integers, floats, and dicts.

Use Case

If you need environment variables for your settings but need an easy way of using Python objects instead of just strings. For example, if you need a list of strings.

Features

  • CLI to convert settings
  • CLI to list and check environment variables
  • Use strings, lists, tuples, integers, floats or dicts. IMPORTANT: When setting the variables in your environmenet (ex. in .env file) wrap them in single or double quotes (ex. "['some','list']")

Build Status

Quick Start

Install

Install without CLI Requirements

  1. pip install envs

Install with CLI Requirements

  1. pip install envs["cli"]

Run Convert Settings

IMPORTANT: Don’t name this file the same as the original module (you have added the imports back yet).

  1. envs convert_settings --settings-file your.settings.module

Copy and Paste the Imports and Logic Code From Original File

Envs does not copy and paste your imports from your original code, so you have to do this manually.

Run List Envs

This tells you what envs have default v

  1. envs list_envs --settings-file your.settings.module

General API

  1. from envs import env
  2. env('SOMEVAR','default value for that var',var_type='string',allow_none=True)

Strings

Environment Variable Example: SECRET_KEY=’adfadfadfafasf’

  1. >>>from envs import env
  2. >>>env('SECRET_KEY','default secret key here')
  3. 'adfadfadfafasf'

Lists

Environment Variable Example: SERVER_NAMES=”[‘coastal’,’inland’,’western’]”

  1. >>>from envs import env
  2. >>>env('SERVER_NAMES',var_type='list')
  3. ['coastal','inland','western']

Tuples

Environment Variable Example: SERVER_NAMES=”(‘coastal’,’inland’,’western’)”

  1. >>>from envs import env
  2. >>>env('SERVER_NAMES',var_type='tuple')
  3. ('coastal','inland','western')

Dicts

Environment Variable Example: DATABASE=”{‘USER’:’name’,’PASSWORD’:’password’}”

  1. >>>from envs import env
  2. >>>env('DATABASE',var_type='dict')
  3. {'USER':'name','PASSWORD':'password'}

Integers

Environment Variable Example: NO_SERVERS=12

  1. >>>from envs import env
  2. >>>env('NO_SERVERS',var_type='integer')
  3. 12

Floats

Environment Variable Example: INDEX_WEIGHT=0.9

  1. >>>from envs import env
  2. >>>env('INDEX_WEIGHT',var_type='float')
  3. 0.9

Booleans

Environment Variable Example: USE_PROFILE=false

  1. >>>from envs import env
  2. >>>env('USE_PROFILE',var_type='boolean')
  3. False

Decimals

Environment Variable Example: HALF_SEVEN=3.5

  1. >>> from envs import env
  2. >>> env('HALF_SEVEN', var_type='decimal')
  3. Decimal('3.5')

Command Line Utils

IMPORTANT: All of the command arguments will fallback to becoming prompts if not set when calling the commands.

Convert Module (convert_module)

Converts an existing settings file so it uses envs. IMPORTANT: This command does not copy your import stataements to the new module.

Arguments

  • settings-file: - Dot notated import string for settings file
  1. envs convert_module --settings-file your.settings

List Envs (list_envs)

Shows a list of env instances set in a settings file.

  • settings-file: - Dot notated import string for settings file
  • keep-result: - Keep the .env_results file generated by this command (default: False)
  1. envs list_envs --settings-file your.settings --keep-result False

Check Envs (check_envs)

Make sure that the defined envs with no default value have a value set in the environment. This command will raise an EnvsValueException if there is environment variable that should be set that is not. This command is meant for use with a CI/CD tool as a way to halt the build if there isn’t a value for an environment variable.

  • settings-file: - Dot notated import string for settings file
  1. envs check_envs --settings-file your.settings

Author

Twitter::@brianjinwright
Github: bjinwright