def create_app(config: dict = None): app = Flask(__name__, static_url_path="", instance_relative_config=True) if config: app.config.update(config) else: app.config.from_envvar("CMSERVICE_CONFIG") mako = MakoTemplates() mako.init_app(app) app._mako_lookup = TemplateLookup( directories=[pkg_resources.resource_filename("cmservice.service", "templates")], input_encoding="utf-8", output_encoding="utf-8", imports=["from flask_babel import gettext as _"], ) app.cm = init_consent_manager(app) babel = Babel(app) babel.localeselector(get_locale) app.config["BABEL_TRANSLATION_DIRECTORIES"] = pkg_resources.resource_filename( "cmservice.service", "data/i18n/locales" ) from .views import consent_views app.register_blueprint(consent_views) setup_logging(app.config.get("LOGGING_LEVEL", "INFO")) logger = logging.getLogger(__name__) logger.info("Running CMservice version %s", pkg_resources.get_distribution("CMservice").version) return app
if __name__ == "__main__": import ssl app.config.from_pyfile("settings.cfg") LOGGER = logging.getLogger("alservice") hdlr = logging.FileHandler(app.config["LOG_FILE"]) base_formatter = logging.Formatter("[%(asctime)-19.19s] [%(levelname)-5.5s]: %(message)s") hdlr.setLevel(app.config["LOG_LEVEL"]) hdlr.setFormatter(base_formatter) LOGGER.addHandler(hdlr) LOGGER.setLevel(logging.DEBUG) mako = MakoTemplates() mako.init_app(app) app._mako_lookup = TemplateLookup( directories=["templates"], input_encoding="utf-8", output_encoding="utf-8", imports=["from flask.ext.babel import gettext as _"], ) context = None if app.config["SSL"]: context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) context.load_cert_chain(app.config["SERVER_CERT"], app.config["SERVER_KEY"]) global keys global stat_service global base keys = [] for key in app.config["JWT_PUB_KEY"]: _bkey = rsa_load(key) pub_key = RSAKey().load_key(_bkey) keys.append(pub_key) # salt = app.config["SALT"]