from distutils.version import StrictVersion from itertools import chain from typing import Set from decouple import config from teal.auth import TokenAuth from teal.config import Config from teal.enums import Currency from teal.utils import import_resource from ereuse_devicehub.resources import action, agent, deliverynote, inventory, \ lot, tag, user from ereuse_devicehub.resources.device import definitions from ereuse_devicehub.resources.documents import documents from ereuse_devicehub.resources.enums import PriceSoftware from ereuse_devicehub.resources.versions import versions from ereuse_devicehub.resources.licences import licences from ereuse_devicehub.resources.metric import definitions as metric_def class DevicehubConfig(Config): RESOURCE_DEFINITIONS = set(chain(import_resource(definitions), import_resource(action), import_resource(user), import_resource(tag), import_resource(agent), import_resource(lot), import_resource(deliverynote), import_resource(documents), import_resource(inventory), import_resource(versions), import_resource(licences), import_resource(metric_def), ),) PASSWORD_SCHEMES = {'pbkdf2_sha256'} # type: Set[str] DB_USER = config('DB_USER', 'dhub') DB_PASSWORD = config('DB_PASSWORD', 'ereuse') DB_HOST = config('DB_HOST', 'localhost') DB_DATABASE = config('DB_DATABASE', 'devicehub') DB_SCHEMA = config('DB_SCHEMA', 'dbtest') SQLALCHEMY_DATABASE_URI = 'postgresql://{user}:{pw}@{host}/{db}'.format( user=DB_USER, pw=DB_PASSWORD, host=DB_HOST, db=DB_DATABASE, ) # type: str MIN_WORKBENCH = StrictVersion('11.0a1') # type: StrictVersion """The minimum version of ereuse.org workbench that this devicehub accepts. we recommend not changing this value. """ TMP_SNAPSHOTS = config('TMP_SNAPSHOTS', '/tmp/snapshots') TMP_LIVES = config('TMP_LIVES', '/tmp/lives') LICENCES = config('LICENCES', './licences.txt') """This var is for save a snapshots in json format when fail something""" API_DOC_CONFIG_TITLE = 'Devicehub' API_DOC_CONFIG_VERSION = '0.2' API_DOC_CONFIG_COMPONENTS = { 'securitySchemes': { 'bearerAuth': TokenAuth.API_DOCS } } API_DOC_CLASS_DISCRIMINATOR = 'type' PRICE_SOFTWARE = PriceSoftware.Ereuse PRICE_VERSION = StrictVersion('1.0') PRICE_CURRENCY = Currency.EUR """Official versions.""" """Admin email""" EMAIL_ADMIN = config('EMAIL_ADMIN', '')