示例#1
0
def create_app(config_module_class: str = None,
               template_folder: str = None) -> Flask:
    """ Support for importing arguments for a subclass of flask.Flask """
    args = ast.literal_eval(
        FLASK_APP_KWARGS_DICT_STR) if FLASK_APP_KWARGS_DICT_STR else {}

    tmpl_dir = template_folder if template_folder else os.path.join(
        PROJECT_ROOT, static_dir, 'dist/templates')
    app = app_wrapper_class(__name__,
                            static_folder=static_dir,
                            template_folder=tmpl_dir,
                            **args)

    # Support for importing a custom config class
    if not config_module_class:
        config_module_class = os.getenv('FRONTEND_SVC_CONFIG_MODULE_CLASS')

    app.config.from_object(config_module_class)

    if app.config.get('LOG_CONFIG_FILE'):
        logging.config.fileConfig(app.config['LOG_CONFIG_FILE'],
                                  disable_existing_loggers=False)
    else:
        logging.basicConfig(format=app.config['LOG_FORMAT'],
                            datefmt=app.config.get('LOG_DATE_FORMAT'))
        logging.getLogger().setLevel(app.config['LOG_LEVEL'])

    logging.info('Created app with config name {}'.format(config_module_class))
    logging.info('Using metadata service at {}'.format(
        app.config.get('METADATASERVICE_BASE')))
    logging.info('Using search service at {}'.format(
        app.config.get('SEARCHSERVICE_BASE')))

    api_bp = Blueprint('api', __name__)
    api = Api(api_bp)

    api.add_resource(IssuesAPI, '/api/issue/issues', endpoint='issues')
    api.add_resource(IssueAPI, '/api/issue/issue', endpoint='issue')

    app.register_blueprint(blueprint)
    app.register_blueprint(announcements_blueprint)
    app.register_blueprint(log_blueprint)
    app.register_blueprint(mail_blueprint)
    app.register_blueprint(metadata_blueprint)
    app.register_blueprint(preview_blueprint)
    app.register_blueprint(quality_blueprint)
    app.register_blueprint(search_blueprint)
    app.register_blueprint(api_bp)
    app.register_blueprint(dashboard_preview_blueprint)
    init_routes(app)

    init_custom_routes = app.config.get('INIT_CUSTOM_ROUTES')
    if init_custom_routes:
        init_custom_routes(app)

    # handles the deprecation warnings
    # and process any config/environment variables accordingly
    process_deprecations(app)

    return app
示例#2
0
def create_app(config_module_class: str, template_folder: str = None) -> Flask:
    """ Support for importing arguments for a subclass of flask.Flask """
    args = ast.literal_eval(os.getenv(
        'APP_WRAPPER_ARGS', '')) if os.getenv('APP_WRAPPER_ARGS') else {}

    tmpl_dir = template_folder if template_folder else os.path.join(
        PROJECT_ROOT, static_dir, 'dist/templates')
    app = app_wrapper_class(__name__,
                            static_folder=static_dir,
                            template_folder=tmpl_dir,
                            **args)
    """ Support for importing a custom config class """
    config_module_class = \
        os.getenv('FRONTEND_SVC_CONFIG_MODULE_CLASS') or config_module_class

    app.config.from_object(config_module_class)

    logging.basicConfig(format=app.config.get('LOG_FORMAT'),
                        datefmt=app.config.get('LOG_DATE_FORMAT'))
    logging.getLogger().setLevel(app.config.get('LOG_LEVEL'))
    logging.info('Created app with config name {}'.format(config_module_class))

    app.register_blueprint(blueprint)
    app.register_blueprint(announcements_blueprint)
    app.register_blueprint(mail_blueprint)
    app.register_blueprint(metadata_blueprint)
    app.register_blueprint(preview_blueprint)
    app.register_blueprint(search_blueprint)
    init_routes(app)

    return app
def create_app(config_module_class: str, template_folder: str = None) -> Flask:
    """ Support for importing arguments for a subclass of flask.Flask """
    args = ast.literal_eval(os.getenv('APP_WRAPPER_ARGS', '')) if os.getenv('APP_WRAPPER_ARGS') else {}

    tmpl_dir = template_folder if template_folder else os.path.join(PROJECT_ROOT, static_dir, 'dist/templates')
    app = app_wrapper_class(__name__, static_folder=static_dir, template_folder=tmpl_dir, **args)

    """ Support for importing a custom config class """
    config_module_class = \
        os.getenv('FRONTEND_SVC_CONFIG_MODULE_CLASS') or config_module_class

    app.config.from_object(config_module_class)

    if app.config.get('LOG_CONFIG_FILE'):
        logging.config.fileConfig(app.config.get('LOG_CONFIG_FILE'), disable_existing_loggers=False)
    else:
        logging.basicConfig(format=app.config.get('LOG_FORMAT'), datefmt=app.config.get('LOG_DATE_FORMAT'))
        logging.getLogger().setLevel(app.config.get('LOG_LEVEL'))

    logging.info('Created app with config name {}'.format(config_module_class))
    logging.info('Using metadata service at {}'.format(app.config.get('METADATASERVICE_BASE')))
    logging.info('Using search service at {}'.format(app.config.get('SEARCHSERVICE_BASE')))

    api_bp = Blueprint('api', __name__)
    api = Api(api_bp)

    api.add_resource(IssuesAPI,
                     '/api/issue/issues', endpoint='issues')
    api.add_resource(IssueAPI,
                     '/api/issue/issue', endpoint='issue')

    app.register_blueprint(blueprint)
    app.register_blueprint(announcements_blueprint)
    app.register_blueprint(log_blueprint)
    app.register_blueprint(mail_blueprint)
    app.register_blueprint(metadata_blueprint)
    app.register_blueprint(preview_blueprint)
    app.register_blueprint(search_blueprint)
    app.register_blueprint(api_bp)
    init_routes(app)

    init_custom_routes = app.config.get('INIT_CUSTOM_ROUTES')
    if init_custom_routes:
        init_custom_routes(app)

    return app