Пример #1
0
def get_variable(name: str = None, function: FunctionType = str):
    env = Env()
    env.read_env()

    for var in VARIABLES:
        env(var)

    if name not in VARIABLES:
        return None
    if name:
        return function(env.dump().get(name))
    else:
        return env.dump()
Пример #2
0
def get_env():
    if path.exists(os.getcwd() + '/.env'):
        # Load env file
        env = Env()
        env.read_env(os.getcwd() + '/.env')
        # Retrieve the values:
        # Flask application
        env.bool("DEBUG")
        env.bool("CSRF_ENABLED")
        env.str("HOST")
        env.int("PORT")
        env.str("SECRET_KEY")
        # Postgres database
        env.str("DATABASE_USER")
        env.str("DATABASE_PASSWORD")
        env.str("DATABASE_HOST")
        env.str("DATABASE_PORT")
        env.str("DATABASE_NAME")
        # SqlAlchemy
        env.str("SQLALCHEMY_TRACK_MODIFICATIONS")
        env.str("MIGRATION_PATH")
        env.bool("SQLALCHEMY_ECHO")
        return env.dump()
    env = dict()
    # Retrieve the values:
    # Flask application
    env['DEBUG'] = bool(os.getenv('DEBUG')) or None
    env['CSRF_ENABLED'] = bool(os.getenv('CSRF_ENABLED')) or None
    env['HOST'] = os.getenv('HOST') or None
    env['PORT'] = int(os.getenv('PORT') or 5000)
    env['SECRET_KEY'] = os.getenv('SECRET_KEY') or None
    # Postgres database
    env['DATABASE_USER'] = os.getenv('DATABASE_USER') or None
    env['DATABASE_PASSWORD'] = os.getenv('DATABASE_PASSWORD') or None
    env['DATABASE_HOST'] = os.getenv('DATABASE_HOST') or None
    env['DATABASE_PORT'] = os.getenv('DATABASE_PORT') or None
    env['DATABASE_NAME'] = os.getenv('DATABASE_NAME') or None
    # SqlAlchemy
    env['SQLALCHEMY_TRACK_MODIFICATIONS'] = os.getenv(
        "SQLALCHEMY_TRACK_MODIFICATIONS") or True
    env['MIGRATION_PATH'] = os.getenv('MIGRATION_PATH') or ''
    env['SQLALCHEMY_ECHO'] = bool(os.getenv('SQLALCHEMY_ECHO')) or None
    return env
Пример #3
0
import os

from environs import Env

# Prefixed envvars
os.environ["CANTEEN_HOST"] = "lolcathost"
os.environ["CANTEEN_PORT"] = "3000"
# A non-prefixed envvar
os.environ["NODE_ENV"] = "production"


env = Env()
with env.prefixed("CANTEEN_"):
    host = env.str("HOST", "localhost")
    port = env.int("PORT", 5000)
node_env = env.str("NODE_ENV", "development")


assert host == "lolcathost"
assert port == 3000
assert node_env == "production"
print(env.dump())
Пример #4
0
from environs import Env

os.environ["GITHUB_USER"] = "******"
os.environ["API_KEY"] = "123abc"
os.environ["SHIP_DATE"] = "1984-06-25"
os.environ["ENABLE_LOGIN"] = "******"
os.environ["MAX_CONNECTIONS"] = "42"
os.environ["GITHUB_REPOS"] = "webargs,konch,ped"
os.environ["COORDINATES"] = "23.3,50.0"
os.environ["MYAPP_HOST"] = "lolcathost"
os.environ["MYAPP_PORT"] = "3000"

env = Env()
# reading an environment variable
gh_user = env("GITHUB_USER")  # => 'sloria'
# casting
api_key = env.str("API_KEY")  # => '123abc'
date = env.date("SHIP_DATE")  # => datetime.date(1984, 6, 25)
# providing a default value
enable_login = env.bool("ENABLE_LOGIN", False)  # => True
enable_feature_x = env.bool("ENABLE_FEATURE_X", False)  # => False
# parsing lists
gh_repos = env.list("GITHUB_REPOS")  # => ['webargs', 'konch', 'ped']
coords = env.list("COORDINATES", subcast=float)  # => [23.3, 50.0]

with env.prefixed("MYAPP_"):
    host = env("HOST", "localhost")
    port = env.int("PORT", 5000)

pprint(env.dump(), indent=2)
Пример #5
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from environs import Env
import json
from pprint import pprint
# with open(".env.test", "w") as fobj:
#     fobj.write("A=foo\n")
#     fobj.write("B=123\n")

env = Env()
env.read_env(".env.test", recurse=False)

assert env("A") == "foo"
assert env.int("B") == 12

with open('to.json', 'w') as outfile:
    json.dump(env.dump(), outfile)

pprint(env.dump(), indent=2)
Пример #6
0
os.environ["GITHUB_USER"] = "******"
os.environ["API_KEY"] = "123abc"
os.environ["SHIP_DATE"] = "1984-06-25"
os.environ["ENABLE_LOGIN"] = "******"
os.environ["MAX_CONNECTIONS"] = "42"
os.environ["GITHUB_REPOS"] = "webargs,konch,ped"
os.environ["COORDINATES"] = "23.3,50.0"
os.environ["MYAPP_HOST"] = "lolcathost"
os.environ["MYAPP_PORT"] = "3000"


env = Env()
# reading an environment variable
gh_user = env("GITHUB_USER")  # => 'sloria'
# casting
api_key = env.str("API_KEY")  # => '123abc'
date = env.date("SHIP_DATE")  # => datetime.date(1984, 6, 25)
# providing a default value
enable_login = env.bool("ENABLE_LOGIN", False)  # => True
enable_feature_x = env.bool("ENABLE_FEATURE_X", False)  # => False
# parsing lists
gh_repos = env.list("GITHUB_REPOS")  # => ['webargs', 'konch', 'ped']
coords = env.list("COORDINATES", subcast=float)  # => [23.3, 50.0]

with env.prefixed("MYAPP_"):
    host = env("HOST", "localhost")
    port = env.int("PORT", 5000)

pprint(env.dump(), indent=2)
Пример #7
0
def get_env():
    if path.exists(os.getcwd() + '/.env'):
        # Load env file
        env = Env()
        env.read_env(os.getcwd() + '/.env')
        # Flask application
        env.bool("CSRF_ENABLED")
        env.bool("DEBUG")
        env.str("HOST")
        env.int("PORT")
        env.str("MIGRATION_PATH")
        env.bool("SQLALCHEMY_ECHO")
        env.str("TRACK_MODIFICATIONS")
        # Postgres database
        env.str("DATABASE_USER")
        env.str("DATABASE_PASSWORD")
        env.str("DATABASE_HOST")
        env.str("DATABASE_PORT")
        env.str("DATABASE_NAME")
        # JWT
        env.str("JWT_SECRET_KEY")
        # Mail
        env.str("MAIL_USERNAME")
        env.str("MAIL_PASSWORD")
        env.str("MAIL_SERVER")
        env.str("MAIL_PORT")
        env.str("MAIL_USE_SSL")
        # Redis
        env.str("REDIS_PORT")
        env.str("REDIS_HOST")
        env.str("REDIS_PASSWORD")
        # Scouter
        env.str("SCOUTER_HOST")
        env.str("SCOUTER_PORT")
        env.str("SCOUTER_X_API_KEY")
        return env.dump()
    env = dict()
    # Flask application
    env['DEBUG'] = bool(os.getenv('DEBUG')) or None
    env['CSRF_ENABLED'] = bool(os.getenv('CSRF_ENABLED')) or None
    env['HOST'] = os.getenv('HOST') or None
    env['PORT'] = int(os.getenv('PORT') or 5000)
    env['MIGRATION_PATH'] = os.getenv('MIGRATION_PATH') or ''
    env['SQLALCHEMY_ECHO'] = bool(os.getenv('SQLALCHEMY_ECHO')) or None
    env['TRACK_MODIFICATIONS'] = os.getenv("TRACK_MODIFICATIONS") or True
    # Postgres database
    env['DATABASE_USER'] = os.getenv('DATABASE_USER') or None
    env['DATABASE_PASSWORD'] = os.getenv('DATABASE_PASSWORD') or None
    env['DATABASE_HOST'] = os.getenv('DATABASE_HOST') or None
    env['DATABASE_PORT'] = os.getenv('DATABASE_PORT') or None
    env['DATABASE_NAME'] = os.getenv('DATABASE_NAME') or None
    # JWT
    env['JWT_SECRET_KEY'] = os.getenv('JWT_SECRET_KEY') or None
    # Mail
    env['MAIL_USERNAME'] = os.getenv("MAIL_USERNAME") or None
    env['MAIL_PASSWORD'] = os.getenv("MAIL_PASSWORD") or None
    env['MAIL_SERVER'] = os.getenv("MAIL_SERVER") or None
    env['MAIL_PORT'] = os.getenv("MAIL_PORT") or None
    env['MAIL_USE_SSL'] = os.getenv("MAIL_USE_SSL") or None
    # Redis
    env['REDIS_PORT'] = os.getenv("REDIS_PORT") or None
    env['REDIS_HOST'] = os.getenv("REDIS_HOST") or None
    env['REDIS_PASSWORD'] = os.getenv("REDIS_PASSWORD") or None
    # Scouter
    env['SCOUTER_HOST'] = os.getenv("SCOUTER_HOST") or None
    env['SCOUTER_PORT'] = os.getenv("SCOUTER_PORT") or None
    env['SCOUTER_X_API_KEY'] = os.getenv("SCOUTER_X_API_KEY") or None
    return env
Пример #8
0
import os
import pathlib

import marshmallow as ma
from environs import Env

os.environ["STATIC_PATH"] = "app/static"


class PathField(ma.fields.Field):
    def _deserialize(self, value, *args, **kwargs):
        return pathlib.Path(value)

    def _serialize(self, value, *args, **kwargs):
        return str(value)


env = Env()
env.parser_from_field("path", PathField)

static_path = env.path("STATIC_PATH")
assert isinstance(static_path, pathlib.Path)

print(env.dump())