Exemplo n.º 1
0
    def __init__(self):
        self._config = None
        self.env = Env()
        self.env.read_env()

        print(  # noqa: T001
            'Using overridden values for',
            self.ENV_VARS.intersection(os.environ.keys()),
            file=sys.stderr,
        )
Exemplo n.º 2
0
import os

from environs import Env, EnvError
from marshmallow.validate import OneOf, Email, Length

os.environ["TTL"] = "-2"
os.environ["NODE_ENV"] = "invalid"
os.environ["EMAIL"] = "^_^"

env = Env()

# simple validator
try:
    env.int("TTL", validate=lambda n: n > 0)  # => 'sloria'
except EnvError as err:
    print(err)

# marshmallow validator
try:
    env.str(
        "NODE_ENV",
        validate=OneOf(["production", "development"],
                       error="NODE_ENV must be one of: {choices}"),
    )
except EnvError as err:
    print(err)

# multiple validators
try:
    env.str("EMAIL", validate=[Length(min=4), Email()])
except EnvError as err:
Exemplo n.º 3
0
import os
from pathlib import Path

from environs import Env

env = Env()
env.read_env('.env')

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = env.str('SECRET_KEY')

DEBUG = env.bool('DEBUG')

ALLOWED_HOSTS = []

# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'store.apps.StoreConfig',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
Exemplo n.º 4
0
Generated by 'django-admin startproject' using Django 3.1.7.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

from pathlib import Path
from environs import Env

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
ENV = Env()
ENV.read_env()

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ENV.str('SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

# Application definition
Exemplo n.º 5
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())
Exemplo n.º 6
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)
Exemplo n.º 7
0
class Config:
    ENV_VARS = {
        'API_ALLOW_DEBUG',
        'API_HOST',
        'API_WS_PORT',
        'CACHE_HOST',
        'CACHE_PORT',
        'CACHE_SIGN_KEY',
        'CACHE_TIMEOUT',
        'CACHE_TTL',
        'ENV',
        'LOG_LEVEL',
        'ROLLBAR_ACCESS_TOKEN',
        'ROLLBAR_LEVEL',
        'VERSION',
    }

    def __init__(self):
        self._config = None
        self.env = Env()
        self.env.read_env()

        print(  # noqa: T001
            'Using overridden values for',
            self.ENV_VARS.intersection(os.environ.keys()),
            file=sys.stderr,
        )

    def __getitem__(self, value):
        if self._config is None:
            raise RuntimeError('Config is not loaded, cannot access it')

        return self._config[value]

    def setup_config(self):
        # API must not start in prod like nev if we don't have a sign key for cache.
        # This is for security reasons.
        env = self.env.str('ENV', 'production')
        cache_sign_key = self.env.str('CACHE_SIGN_KEY', '')
        if env != 'development' and not cache_sign_key:
            raise EnvironmentError('You must supply a CACHE_SIGN_KEY env var')

        self._config = MappingProxyType({
            'api': {
                'allow_debug': self.env.bool('API_ALLOW_DEBUG', False),
                # Binding to all interfaces, bandit don't allow this (#104)
                'host': self.env.str('API_HOST', '0.0.0.0'),  # noqa: S104
                'ws_port': self.env.int('API_WS_PORT', 8181),
            },
            'cache': {
                'host': self.env.str('CACHE_HOST', 'aot-redis'),
                'port': self.env.int('CACHE_PORT', 6379),
                # Sign key must be of type bytes, not str.
                'sign_key': cache_sign_key.encode('utf-8'),
                'timeout': self.env.int('CACHE_TIMEOUT', 5),
                'ttl': self.env.int('CACHE_TTL', 2 * 24 * 60 * 60),  # 2 days
            },
            # Amount of time to wait for pending futures before forcing them to shutdown.
            'cleanup_timeout': self.env.int('CLEANUP_TIMEOUT', 5),
            'env': env,
            'log': {
                'level': self.env.str('LOG_LEVEL', None),
            },
            'rollbar': {
                'access_token': self.env.str('ROLLBAR_ACCESS_TOKEN', None),
                'level': self.env.int('ROLLBAR_LEVEL', 30),
            },
            'version': self.env.str('VERSION', 'latest'),
        })
Exemplo n.º 8
0
Django settings for forenings_medlemmer project.

For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
import logging
from environs import Env
import dj_database_url

env = Env()
env.read_env()

logger = logging.getLogger(__name__)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [
            # insert your TEMPLATE_DIRS here
        ],
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
Exemplo n.º 9
0
import sys
import os

from environs import Env
env = Env()

FROM_EXAMPLE = env.bool('FROM_EXAMPLE', False)
if FROM_EXAMPLE:
    from dotenv import load_dotenv
    load_dotenv('./mishards/.env.example')
else:
    env.read_env()

SERVER_VERSIONS = ['1.0.x']
DEBUG = env.bool('DEBUG', False)
MAX_RETRY = env.int('MAX_RETRY', 3)

LOG_LEVEL = env.str('LOG_LEVEL', 'DEBUG' if DEBUG else 'INFO')
LOG_PATH = env.str('LOG_PATH', '/tmp/mishards')
LOG_NAME = env.str('LOG_NAME', 'logfile')
TIMEZONE = env.str('TIMEZONE', 'UTC')

from utils.logger_helper import config
config(LOG_LEVEL, LOG_PATH, LOG_NAME, TIMEZONE)

SERVER_PORT = env.int('SERVER_PORT', 19530)
SERVER_TEST_PORT = env.int('SERVER_TEST_PORT', 19530)
WOSERVER = env.str('WOSERVER')
MAX_WORKERS = env.int('MAX_WORKERS', 50)

import logging
from environs import Env

env = Env()

training_service_config = {
    "host": env("TRAINING_SERVICE_HOST"),
    "port": env("TRAINING_SERVICE_PORT"),
    "api_train_path": env("TRAINING_SERVICE_API_TRAIN_PATH"),
    "timeout": env.int("TRAINING_REQUESTS_TIMEOUT"),
    "appinsights_key": env("APP_INSIGHTS_INSTRUMENTATION_KEY")
}

mlflow_models_mapping = env.json('MLFLOW_MODELS_MAPPING')
service_config = {
    "service_name": env("SERVICE_NAME"),
    "log_level": env.int("LOG_LEVEL", logging.INFO),
    "port": env.int("PORT", 80)
}
Exemplo n.º 11
0
    def __init__(self, home_path=None, config_path=None):
        if not home_path or not Path(home_path).resolve().exists():
            raise ValueError("environment variable DIRECTOR_HOME is not set correctly")
        self.DIRECTOR_HOME = env_path = str(home_path)

        if config_path:
            if not Path(config_path).resolve().exists():
                raise ValueError(
                    "environment variable DIRECTOR_CONFIG is not set correctly"
                )
            env_path = config_path

        env = Env()
        env.read_env(env_path)

        self.ENABLE_DARK_THEME = env.bool("DIRECTOR_ENABLE_DARK_THEME", False)
        self.ENABLE_HISTORY_MODE = env.bool("DIRECTOR_ENABLE_HISTORY_MODE", False)
        self.ENABLE_CDN = env.bool("DIRECTOR_ENABLE_CDN", True)
        self.STATIC_FOLDER = env.str(
            "DIRECTOR_STATIC_FOLDER", str(Path(self.DIRECTOR_HOME).resolve() / "static")
        )
        self.API_URL = env.str("DIRECTOR_API_URL", "http://127.0.0.1:8000/api")
        self.FLOWER_URL = env.str("DIRECTOR_FLOWER_URL", "http://127.0.0.1:5555")
        self.WORKFLOWS_PER_PAGE = env.int("DIRECTOR_WORKFLOWS_PER_PAGE", 1000)
        self.REFRESH_INTERVAL = env.int("DIRECTOR_REFRESH_INTERVAL", 30000)

        # Authentication
        self.AUTH_ENABLED = env.bool("DIRECTOR_AUTH_ENABLED", False)

        # SQLAlchemy configuration
        self.SQLALCHEMY_TRACK_MODIFICATIONS = False
        self.SQLALCHEMY_DATABASE_URI = env.str("DIRECTOR_DATABASE_URI", "")
        self.SQLALCHEMY_ENGINE_OPTIONS = {
            "pool_recycle": env.int("DIRECTOR_DATABASE_POOL_RECYCLE", -1),
        }

        # Celery configuration
        self.CELERY_CONF = {
            "task_always_eager": False,
            "broker_url": env.str("DIRECTOR_BROKER_URI", "redis://localhost:6379/0"),
            "result_backend": env.str(
                "DIRECTOR_RESULT_BACKEND_URI", "redis://localhost:6379/1"
            ),
            "broker_transport_options": {"master_name": "director"},
        }

        # Sentry configuration
        self.SENTRY_DSN = env.str("DIRECTOR_SENTRY_DSN", "")
Exemplo n.º 12
0
import datetime
import os
import subprocess
import time
from difflib import unified_diff

import requests
from environs import Env

env = Env()
env.read_env()

URL_BASE = env.str("URL_BASE")


class Client:
    last = None
    ping_interval: int = 60 * 60  # 1 hour

    def __init__(self, interval_in_seconds: int, api_key: str):
        assert interval_in_seconds > 10
        self.interval: int = interval_in_seconds
        self.api_key = api_key

    def loop(self):
        raise NotImplementedError

    def ping(self):
        requests.post(f"{URL_BASE}/ping", json={"key": self.api_key})

    def on_update(self, new):
Exemplo n.º 13
0
import os
import sys

from environs import Env

env = Env()
env.read_env()

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "HOST": env("DATABASE_HOST"),
        "PORT": env("DATABASE_PORT"),
        "NAME": env("DATABASE_NAME"),
        "USER": env("DATABASE_USER"),
        "PASSWORD": env("DATABASE_PASSWORD"),
    }
}

INSTALLED_APPS = ["datacenter"]

SECRET_KEY = env("DJANGO_SECRET_KEY")

DEBUG = env.bool("DJANGO_DEBUG", default=True)

ROOT_URLCONF = "project.urls"

ALLOWED_HOSTS = env.list("DJANGO_ALLOWED_HOSTS")

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
Exemplo n.º 14
0
"""
Django settings for config project.

Generated by 'django-admin startproject' using Django 3.1.5.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

from pathlib import Path
from environs import Env

env = Env()
env.read_env()

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env.str("SECRET_KEY")
#env.str('SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env.bool("DEBUG", default=False)
#env.bool("DEBUG", default=False)
Exemplo n.º 15
0
"""
Django settings for MediDoc project.

Generated by 'django-admin startproject' using Django 3.0.7.

For more information on this file, see
https://docs.djangoproject.com/en/3.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""

import os
from environs import Env

env = Env()
env.read_env()

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env.str("SECRET_KEY")

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env.bool("DEBUG", default=True)

ALLOWED_HOSTS = []
Exemplo n.º 16
0
# -*- coding: utf-8 -*-
"""Application configuration.

Most configuration is set via environment variables.

For local development, use a .env file to set
environment variables.
"""
from environs import Env

env = Env()
env.read_env()

ENV = env.str('FLASK_ENV', default='production')
DEBUG = ENV == 'development'
SQLALCHEMY_DATABASE_URI = env.str('DATABASE_URL')
SECRET_KEY = env.str('SECRET_KEY')
BCRYPT_LOG_ROUNDS = env.int('BCRYPT_LOG_ROUNDS', default=13)
DEBUG_TB_ENABLED = DEBUG
DEBUG_TB_INTERCEPT_REDIRECTS = False
CACHE_TYPE = 'simple'  # Can be "memcached", "redis", etc.
SQLALCHEMY_TRACK_MODIFICATIONS = False
WEBPACK_MANIFEST_PATH = 'webpack/manifest.json'
Exemplo n.º 17
0
import sys
from environs import Env, EnvError

CONNECTION_STRING_FORMAT = 'postgresql+psycopg2://%s:%s@%s:%s/%s'

env = Env()
env.read_env()


def get_db_url():
    user = env.str('DB_USER')
    password = env.str('DB_PASSWORD')
    host = env.str('DB_HOST')
    port = env.str('DB_PORT')
    name = env.str('DB_NAME')

    return CONNECTION_STRING_FORMAT % (
        user,
        password,
        host,
        port,
        name
    )


def get_env_config():
    env_config = {}

    try:
        env_config.update({
            'sqlalchemy_database_uri': get_db_url(),
Exemplo n.º 18
0
import time
import grpc
import locust
from environs import Env
from ai_serving_pb2 import RecordSpec, Record, PredictRequest, Value, ListValue
from ai_serving_pb2_grpc import DeploymentServiceStub


env = Env()
MODEL_NAME = env.str('MODEL_NAME', 'lgb')
HOST = env.str('HOST', 'localhost:9091')
DATA_SIZE = env.int('DATA_SIZE', 100)


class Test(locust.User):

    def on_start(self):
        channel = grpc.insecure_channel(HOST)
        self.stub = DeploymentServiceStub(channel)

        data = [0.5 for _ in range(13)] + [1 for _ in range(26)]
        values = ListValue(values=[Value(number_value=x) for x in data])
        values = Value(list_value=values)
        values = ListValue(values=[values for _ in range(DATA_SIZE)])
        self.request = PredictRequest(X=RecordSpec(
            records=[Record(fields={
                'num_feat': Value(list_value=values)
            })]))
        self.request.model_spec.name = MODEL_NAME

    @locust.task
Exemplo n.º 19
0
import os

from environ import Env as DjangoEnv
from environs import Env

env = Env()
env.add_parser('db_settings', DjangoEnv.db_url_config)
env.add_parser('email_settings', DjangoEnv.email_url_config)

PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
VAR_DIR = os.path.join(PROJECT_DIR, 'var')

INSTALLED_APPS = [
	# Rules for this list:
	# - Group apps by module
	# - Sort groups by time (recently added go last)
	# - Sort apps within a group alphabetically
	# - If you need to place an app out of order, leave a comment explaining the reason why.
	'django.contrib.admin',
	'django.contrib.auth',
	'django.contrib.contenttypes',
	'django.contrib.sessions',
	'django.contrib.staticfiles',

	'aldjemy',

	'funrun.match',
	'funrun.history',
]

MIDDLEWARE_CLASSES = [
Exemplo n.º 20
0
import json
from datetime import datetime, timezone

import requests
from environs import Env
from furl import furl


env = Env()


GITHUB_TOKEN = env.str("GITHUB_TOKEN")


session = requests.Session()
session.headers = {
    "User-Agent": "OpenSAFELY Jobs",
}


class GitHubAPI:
    """
    A thin wrapper around requests, furl, and the GitHub API.

    Initialising this class with a token will set that token in the sessions
    headers.

    "public" functions should construct a URL and make requests against the
    session object attached to the instance.

    This object is not expected to be used in most tests so we can avoid mocking.
Exemplo n.º 21
0
from environs import Env

env = Env()
env.read_env()

SECRET_KEY = env('SECRET_KEY', '')
DEBUG = env.bool('DEBUG', False)

HTTP_HOST = env('HTTP_HOST', 'localhost')
HTTP_PORT = env.int('HTTP_PORT', 8085)

DB_HOST = env('DB_HOST', 'localhost')
DB_PORT = env.int('DB_PORT', 5432)
DB_NAME = env('DB_NAME', 'airy')
DB_USERNAME = env('DB_USERNAME', 'airy')
DB_PASSWORD = env('DB_PASSWORD', 'airy')

TIMEZONE = env('TIMEZONE', 'Europe/Moscow')

SMTP_SERVER = env('SMTP_SERVER', 'localhost')
SMTP_PORT = env.int('SMTP_PORT', 25)
SMTP_USER = env('SMTP_USER', '')
SMTP_PASSWORD = env('SMTP_PASSWORD', '')
SMTP_SENDER = env('SMTP_SENDER', 'no-reply@localhost')

USER_NAME = env('USER_NAME', 'username')
USER_PASSWORD = env('USER_PASSWORD', 'password')
USER_EMAIL = env('USER_EMAIL')
Exemplo n.º 22
0
#
# This software contains code licensed as described in LICENSE.
#

# See MOTL_Simp_15.py for a commented script

import time
import logging
from environs import Env
import lgsvl

FORMAT = "[%(levelname)6s] [%(name)s] %(message)s"
logging.basicConfig(level=logging.WARNING, format=FORMAT)
log = logging.getLogger(__name__)

env = Env()

MAX_SPEED = 11.111  # (40 km/h, 25 mph)
SPEED_VARIANCE = 4
TIME_LIMIT = 30  # seconds
PARKING_ZONE_LENGTH = 24  # meters

LGSVL__SIMULATOR_HOST = env.str("LGSVL__SIMULATOR_HOST", "127.0.0.1")
LGSVL__SIMULATOR_PORT = env.int("LGSVL__SIMULATOR_PORT", 8181)
LGSVL__AUTOPILOT_0_HOST = env.str("LGSVL__AUTOPILOT_0_HOST", "127.0.0.1")
LGSVL__AUTOPILOT_0_PORT = env.int("LGSVL__AUTOPILOT_0_PORT", 9090)

print("MOTL_Simp_25 - ", end='')

sim = lgsvl.Simulator(LGSVL__SIMULATOR_HOST, LGSVL__SIMULATOR_PORT)
scene_name = env.str(
Exemplo n.º 23
0
import os
from environs import Env
print("start local")


# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print('BASE_DIR : {}'.format(BASE_DIR))

env = Env()
THE_ENV=os.path.join(BASE_DIR,'..','env','.env')
env.read_env(path=THE_ENV)
print('The .env file has been loaded. env: '+str(THE_ENV))

from .base import *

ENV_TYPE = LOC

ALLOWED_HOSTS = ['*','127.0.0.1',SERVER]

DEBUG_TOOLBAR_CONFIG = {
  'DISABLE_PANELS': [ 'debug_toolbar.panels.redirects.RedirectsPanel', ],
  'SHOW_TEMPLATE_CONTEXT': True,
}

INTERNAL_IPS = ['127.0.0.1', '192.168.0.1']

#get local urls for services
file_dir = os.path.dirname(__file__)
file_path = os.path.join(file_dir,'..','..','env', 'loc_settings.json')
with open(file_path, 'r') as fi:
Exemplo n.º 24
0
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""

# pylint: skip-file

import os
import socket

from django.contrib.messages import constants as message_constants
from environs import Env

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

env = Env()

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env('SECRET_KEY',
                 '++apz(*cojac+1u$io&w)wg^r5vgaon%@wvpd#@j5iv9!9#lsg')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env.bool('DEBUG', True)

ALLOWED_HOSTS = env('DJANGO_ALLOWED_HOSTS', 'localhost').split(" ")

# Application definition
Exemplo n.º 25
0
async def delete_role(request, role_id):
    """Delete a role by it's next_id.
    Args:
        role_id:
            str: the role_id field of the targeted role
    Returns:
        json:
            dict: {
                message:
                    str: the status of the role delete operation
                deleted:
                    int: count of the number of roles that were deleted
            }
    Raises:
        ApiForbidden:
            The user is not a system admin or owner of the targeted
            role.
        ApiNotFound:
            The role does not exist in RethinkDB.
        ApiInternalError:
            There was an error compiling blockchain transactions.
    """
    log_request(request)
    env = Env()
    if not env.int("ENABLE_NEXT_BASE_USE"):
        raise ApiDisabled("Not a valid action. Source not enabled")
    txn_key, txn_user_id = await get_transactor_key(request)

    # does the role exist?
    conn = await create_connection()
    if not await roles_query.does_role_exist(conn, role_id):
        LOGGER.warning(
            "Nonexistent Role – User %s is attempting to delete the nonexistent role %s",
            txn_user_id,
            role_id,
        )
        return await handle_not_found(
            request, ApiNotFound("The targeted role does not exist.")
        )
    conn.close()
    is_role_owner = await check_role_owner_status(txn_user_id, role_id)
    if not is_role_owner:
        is_admin = await check_admin_status(txn_user_id)
        if not is_admin:
            LOGGER.warning(
                "Permission Denied – User %s does not have sufficient privilege to delete role %s.",
                txn_user_id,
                role_id,
            )
            return await handle_errors(
                request, ApiForbidden("You do not have permission to delete this role.")
            )

    txn_list = []
    txn_list = await create_rjct_ppsls_role_txns(
        txn_key, role_id, txn_user_id, txn_list
    )
    txn_list = await create_del_admin_by_role_txns(txn_key, role_id, txn_list)
    txn_list = await create_del_mmbr_by_role_txns(txn_key, role_id, txn_list)
    txn_list = await create_del_ownr_by_role_txns(txn_key, role_id, txn_list)
    txn_list = create_del_role_txns(txn_key, role_id, txn_list)

    # validate transaction list
    if not txn_list:
        LOGGER.warning(
            "txn_list is empty. There was an error processing the delete role transactions. Transaction list: %s",
            txn_list,
        )
        return await handle_errors(
            request,
            ApiInternalError(
                "An error occurred while creating the blockchain transactions to delete the role."
            ),
        )

    batch = batcher.make_batch_from_txns(transactions=txn_list, signer_keypair=txn_key)
    batch_list = batcher.batch_to_list(batch=batch)
    await send(request.app.config.VAL_CONN, batch_list, request.app.config.TIMEOUT)
    return json(
        {"message": "Role {} successfully deleted".format(role_id), "deleted": 1}
    )
Exemplo n.º 26
0
from environs import Env

env = Env()
env.read_env()

DATABASE_URI = env.str("DATABASE_URI")
DEBUG = env.str("DEBUG", False)
FCM_API_KEY = env.str("FCM_API_KEY")
INARA_API_KEY = env.str("INARA_API_KEY")
Exemplo n.º 27
0
import pika
from environs import Env

env = Env()
env.read_env('.env')  # read .env file, if it exists

# required variables
HOST: str = env("HOST_RABBIT")
USER: str = env("USER_RABBIT")
PASSWORD: str = env("PASSWORD_RABBIT")
PORT: int = env.int("PORT_RABBIT")
# providing a default value
enable_login: bool = env.bool("ENABLE_LOGIN", False)  # => True


def get_rabbit_connection():
    credentials = pika.PlainCredentials(USER, PASSWORD)  # login + pass

    connection = pika.BlockingConnection(
        pika.ConnectionParameters(
            host=HOST,  # host, in Google Cloud Internal IP
            port=PORT,  # port, usually 5672 or 15672
            credentials=credentials  # login + pass))
        ))
    channel = connection.channel()

    return channel
Exemplo n.º 28
0
import pprint

import environs
from environs import Env

from food_management.erreurs.exceptions import ErreurFichierEnvironnement

try:

    os_env_var = os.environ
    print("User's Environment variable:")
    pprint.pprint(dict(os_env_var), width=1)
    """
        Démo : on accède aux variables d'environnement existantes 
    """
    obj_env = Env()
    computer_name = obj_env("COMPUTERNAME")
    print("computer_name ", computer_name)
    """
        Démo : on accède aux variables d'environnement de l'utilisateur 
    """
    try:
        """
            obj_env("PORT_MYSQL") permet de récupérer le num. du port dans le fichier ".env"
            obj_env.int("PORT_FLASK") permet de récupérer le num. du port (INTEGER) dans le fichier ".env"
        """
        obj_env.read_env()
        DEMO_PORT_MYSQL = obj_env("PORT_MYSQL")
        print("DEMO_PORT_MYSQL dans le fichier \".env\" ", DEMO_PORT_MYSQL)

        DEMO_PORT_FLASK = obj_env.int("PORT_FLASK")
Exemplo n.º 29
0
"""
Django settings for hotzone_config project.

Generated by 'django-admin startproject' using Django 3.1.2.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

from pathlib import Path
from environs import Env

env = Env()
env.read_env()
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!

SECRET_KEY = env('HOTZONE_SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['hotzone-p-3.herokuapp.com', 'localhost', '127.0.0.1']
Exemplo n.º 30
0
"""
Django settings for api project.

Generated by 'django-admin startproject' using Django 3.1.4.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""
import os
from pathlib import Path
from environs import Env
env = Env()
env.read_env()

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env("SECRET_KEY")

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env.bool("DEBUG")

ALLOWED_HOSTS = ['cart-rest-api.herokuapp.com', '127.0.0.1']
Exemplo n.º 31
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())
Exemplo n.º 32
0
 def default(cls):
     """Ignore environmental variables and use all default arguments as defined above"""
     # Put empty env to force using the given defaults
     cls.env = Env()
     cls.__init__(cls)
Exemplo n.º 33
0
import os

from environs import Env, EnvError
from marshmallow.validate import OneOf, Email, Length


os.environ["TTL"] = "-2"
os.environ["NODE_ENV"] = "invalid"
os.environ["EMAIL"] = "^_^"


env = Env()

# simple validator
try:
    env.int("TTL", validate=lambda n: n > 0)  # => 'sloria'
except EnvError as err:
    print(err)

# marshmallow validator
try:
    env.str(
        "NODE_ENV",
        validate=OneOf(
            ["production", "development"], error="NODE_ENV must be one of: {choices}"
        ),
    )
except EnvError as err:
    print(err)

Exemplo n.º 34
0
from environs import Env
env = Env()

DEBUG = env.bool('DEBUG', default=False)
BIND_HOST = env('BIND_HOST', default='0.0.0.0')
BIND_PORT = env.int('BIND_PORT', default=8888)

NEO4J_HOST = env('NEO4J_HOST', default='127.0.0.1')
NEO4J_PORT = env.int('NEO4J_PORT', default=7687)

NEO4J_USER = env('NEO4J_USER', default='neo4j')
NEO4J_PASSWORD = env('NEO4J_PASSWORD', default='neo4j')
NEO4J_SCHEME = env('NEO4J_SCHEME', default='bolt+routing')

SECRET_KEY = env("SECRET_KEY", "I'm Ron Burgundy?")
START_PAGIN = env.int('START_PAGIN', default=0)
LIMIT_PAGIN = env.int('LIMIT_PAGIN', default=1000)
LIMIT_NEWS = env.int('LIMIT_NEWS', default=1000)
Exemplo n.º 35
0
"""Application configuration.

Most configuration is set via environment variables.

For local development, use a .env file to set
environment variables.
"""
from os.path import abspath, dirname, join

from environs import Env


basedir = dirname(abspath(__file__))

env = Env()
env.read_env()

ENV = env.str('FLASK_ENV', default='production')
DEBUG = ENV == 'development'
SQLALCHEMY_DATABASE_URI = env.str('DATABASE_URL', default='sqlite:////' +
                                  join(basedir, 'db.sqlite3'))
SECRET_KEY = env.str('SECRET_KEY')
BCRYPT_LOG_ROUNDS = env.int('BCRYPT_LOG_ROUNDS', default=13)
DEBUG_TB_ENABLED = DEBUG
DEBUG_TB_INTERCEPT_REDIRECTS = False
CACHE_TYPE = 'simple'  # Can be "memcached", "redis", etc.
SQLALCHEMY_TRACK_MODIFICATIONS = False
WEBPACK_MANIFEST_PATH = 'webpack/manifest.json'

SECURITY_PASSWORD_SALT = SECRET_KEY
SECURITY_TRACKABLE = True
Exemplo n.º 36
0
import platform
from os.path import dirname, abspath, join
from environs import Env
from loguru import logger
from proxypool.utils.parse import parse_redis_connection_string


env = Env()
env.read_env()

# definition of flags
IS_WINDOWS = platform.system().lower() == 'windows'

# definition of dirs
ROOT_DIR = dirname(dirname(abspath(__file__)))
LOG_DIR = join(ROOT_DIR, env.str('LOG_DIR', 'logs'))

# definition of environments
DEV_MODE, TEST_MODE, PROD_MODE = 'dev', 'test', 'prod'
APP_ENV = env.str('APP_ENV', DEV_MODE).lower()
APP_DEBUG = env.bool('APP_DEBUG', True if APP_ENV == DEV_MODE else False)
APP_DEV = IS_DEV = APP_ENV == DEV_MODE
APP_PROD = IS_PROD = APP_ENV == PROD_MODE
APP_TEST = IS_TEST = APP_ENV == TEST_MODE

# redis host
REDIS_HOST = env.str('REDIS_HOST', '127.0.0.1')
# redis port
REDIS_PORT = env.int('REDIS_PORT', 6379)
# redis password, if no password, set it to None
REDIS_PASSWORD = env.str('REDIS_PASSWORD', None)
Exemplo n.º 37
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())
Exemplo n.º 38
0
import logging
import os
import sys
from typing import List

from environs import Env


env = Env()
env.read_env()

BASE_MESSAGE_FORMAT = "[%(asctime)s] [%(name)s:%(levelname)s] " \
                      "[%(module)s:%(funcName)s():%(process)d]"
DATE_FORMAT = "%d-%m-%Y %H:%M:%S"

LOG_FOLDER = env.path('LOG_FOLDER')
DEBUG = env.bool('DEBUG')

try:
    os.makedirs(LOG_FOLDER, exist_ok=True)
except PermissionError as e:
    pass


class LevelFilter(logging.Filter):
    def __init__(self,
                 levels: List[int] = None) -> None:
        self._levels = levels or []
        super().__init__(self.__class__.__name__)

    def filter(self,
Exemplo n.º 39
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())
Exemplo n.º 40
0
"""
Django settings for config project.

Generated by 'django-admin startproject' using Django 3.1.5.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

from pathlib import Path
from environs import Env

env = Env()
env.read_env()

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env.str('SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = env.bool("DEBUG", default=False)

ALLOWED_HOSTS = ['.herokuapp.com', 'localhost', '127.0.0.1']
Exemplo n.º 41
0
Generated by 'django-admin startproject' using Django 3.1.1.

For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

import sys
from pathlib import Path

from celery.schedules import crontab
from environs import Env

env = Env()

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parents[2]

POSTS_API_DIR = BASE_DIR / "posts_api"

sys.path.append(str(POSTS_API_DIR))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = env.str("SECRET_KEY")

# SECURITY WARNING: don't run with debug turned on in production!
Exemplo n.º 42
0
from datetime import datetime, timedelta

import jwt
from environs import Env
from fastapi import APIRouter, Depends, HTTPException
from fastapi.security import OAuth2PasswordRequestForm

router = APIRouter()
env = Env()
env.read_env()
with env.prefixed("JWT_"):
    algorithm = env("ALGORITHM")
    subject = env("TOKEN_SUBJECT")
    expiry = env.int("ACCESS_TOKEN_EXPIRE_MINUTES")
    username = env("USERNAME")
    password = env("PASSWORD")
    secret = env("RANDOM_SECRET")
    tally_user = env("TALLY_USERNAME")
    tally_pass = env("TALLY_PASSWORD")


def create_access_token(*, data: dict, expires_delta: timedelta = None):
    to_encode = data.copy()
    if expires_delta:
        expire = datetime.utcnow() + expires_delta
    else:  # pragma: no cover
        expire = datetime.utcnow() + timedelta(minutes=expiry)

    to_encode.update({"exp": expire, "sub": subject})
    encoded_jwt = jwt.encode(to_encode, secret, algorithm=algorithm)
    return encoded_jwt
Exemplo n.º 43
0
##### This is the beginning of the plugin code #####


def furl_parser(value):
    return Furl(value)


def urlparse_parser(value):
    return URL(value)


def setup(env):
    env.add_parser("furl", furl_parser)
    env.add_parser("yurl", urlparse_parser)


##### End of the plugin code #####


os.environ["GITHUB_URL"] = "https://github.com/sloria/environs"

# Our application activates the plugin using the setup function

env = Env()
setup(env)

# We now have the 'furl' and 'yurl' methods available

github_furl = env.furl("GITHUB_URL")
github_yurl = env.yurl("GITHUB_URL")
Exemplo n.º 44
0
import os
from environs import Env

env = Env()
env.read_env()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'HOST': env('DATABASE_HOST'),
        'PORT': env('DATABASE_PORT'),
        'NAME': env('DATABASE_NAME'),
        'USER': env('DATABASE_USER'),
        'PASSWORD': env('DATABASE_PASSWORD'),
    }
}

INSTALLED_APPS = ['datacenter']

SECRET_KEY = env('SECRET_KEY')

DEBUG = env.bool('DEBUG')

ROOT_URLCONF = "project.urls"

ALLOWED_HOSTS = ['*']

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
Exemplo n.º 45
0
    import urlparse

from furl import furl as Furl
from environs import Env

##### This is the beginning of the plugin code #####

def furl_parser(value):
    return Furl(value)

def urlparse_parser(value):
    return urlparse.urlparse(value)

def setup(env):
    env.add_parser('furl', furl_parser)
    env.add_parser('purl', urlparse_parser)

##### End of the plugin code #####

os.environ['GITHUB_URL'] = 'https://github.com/sloria/environs'

# Our application activates the plugin using the setup function

env = Env()
setup(env)

# We now have the 'furl' and 'purl' methods available

github_furl = env.furl('GITHUB_URL')
github_purl = env.purl('GITHUB_URL')
Exemplo n.º 46
0
# add attribute for loggedIn: NOT_LOGGED_IN
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_cors import CORS
from flask_heroku import Heroku
from environs import Env
import os

app = Flask(__name__)
CORS(app)
heroku = Heroku(app)

env= Env()
env.read_env()
DATABASE_URL = env('DATABASE_URL')

basedir = os.path.abspath(os.path.dirname(__file__))
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + os.path.join(basedir, "app.sqlite")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
# app.config["SQLALCHEMY_DATABASE_URI"] = DATABASE_URL


db = SQLAlchemy(app)
ma = Marshmallow(app)

## USER CLASS ##

class User(db.Model):
     __tablename__ = 'user'
Exemplo n.º 47
0
import os

from environs import Env, EnvError
from marshmallow.validate import OneOf, Email, Length


os.environ['TTL'] = '-2'
os.environ['NODE_ENV'] = 'invalid'
os.environ['EMAIL'] = '^_^'


env = Env()

# simple validator
try:
    env.int('TTL', validate=lambda n: n > 0)  # => 'sloria'
except EnvError as err:
    print(err)

# marshmallow validator
try:
    env.str('NODE_ENV',
            validate=OneOf(['production', 'development'],
                           error='NODE_ENV must be one of: {choices}'))
except EnvError as err:
    print(err)


# multiple validators
try:
    env.str('EMAIL',
Exemplo n.º 48
0
For more information on this file, see
https://docs.djangoproject.com/en/3.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""

# 导入配置
from environs import Env

from django3template.setting.log import *

# 默认dev环境
try:
    env = Env()
    runtime_environment = env("RUNTIME_ENVIRONMENT")
    if "PRD" == runtime_environment:
        from django3template.setting.prd import *
    elif "DEV" == runtime_environment:
        from django3template.setting.dev import *
    else:
        pass
except:
    from django3template.setting.dev import *

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '!h%sqh+*bf^&0yffi=t8v#_yv^q4ec5o56*+^@!&=om+1_nwxi'
Exemplo n.º 49
0
# Django settings for checkerservice project.

#https://blog.apptension.com/2017/11/09/how-to-configure-django-project-for-multiple-environments/

import os
from environs import Env
import json

print("start base")

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

env = Env()


ENV = env.str('FLASK_ENV', default='production')
DEBUG = ENV == 'development'
SQLALCHEMY_DATABASE_URI = env.str('DATABASE_URL')
SECRET_KEY = env.str('SECRET_KEY')
BCRYPT_LOG_ROUNDS = env.int('BCRYPT_LOG_ROUNDS', default=13)
DEBUG_TB_ENABLED = DEBUG
DEBUG_TB_INTERCEPT_REDIRECTS = False
CACHE_TYPE = 'simple'  # Can be "memcached", "redis", etc.
SQLALCHEMY_TRACK_MODIFICATIONS = False
WEBPACK_MANIFEST_PATH = 'webpack/manifest.json'
WTF_CSRF_CHECK_DEFAULT = False

LOC = 'loc'
DEV = 'dev'
TST = 'tst'
PRD = 'prd'
Exemplo n.º 50
0
# -*- coding: utf-8 -*-
"""Application settings."""
import logging
import os

from environs import Env

env = Env()
env.read_env()

FLASK_ENV = env("FLASK_ENV")
LOG_LEVEL = (env("LOG_LEVEL", default="") or logging.getLevelName(logging.WARNING)).upper()

LOCAL_TIMEZONE = env("LOCAL_TIMEZONE", default="Europe/Berlin")
TELEGRAM_TOKEN = env("TELEGRAM_TOKEN", default=None)
TELEGRAM_IDLE_TIMEOUT = env.int("TELEGRAM_IDLE_TIMEOUT", default=120)

# By default, database will be refreshed every time a test runs.
REFRESH_TEST_DATABASE = env.bool("REFRESH_TEST_DATABASE", default=True)

LONG_OVERDUE = env.int("LONG_OVERDUE", default=14)
MEDIUM_OVERDUE = env.int("MEDIUM_OVERDUE", default=7)

ICONS = env.list("ICONS")

TOGGL_API_TOKEN = env("TOGGL_API_TOKEN")

#: Working hours
HOME_HOURS = env.int("HOME_HOURS")

#: How many minutes before the reminder should be set