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, proof, 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 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(proof), import_resource(documents), import_resource(inventory), import_resource(versions)), ) 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') 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. """ 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."""