"""This module conatins only global application class and object.
Please, do not import any other modules there. """


class Application:
    """Store settings for different parts of application.

    SCHEMA_PATHS - additional paths to store RPC/CLI schemas
    VALIDATOR - SchemaValidator object
    MIDDLEWARE - dict with middleware to apply
    MIDDLEWARE_EXCLUDE - dict with middleware that should be excluded
    MODULES_WITH_MODELS - list of modules with models
    MIGRATIONS_DIRS - list of dirs with migrations
    """

    SCHEMA_PATHS = None
    VALIDATOR = None
    MIDDLEWARE = None
    MIDDLEWARE_EXCLUDE = None
    MODULES_WITH_MODELS = []
    MIGRATIONS_DIRS = []
    MIGRATIONS_ATTACHED_DBS = []


app = Application()
