"""Application. The API application is a `flask` application. It provides simple features such as registering a url for a specific handlers. """ from flask import Flask from owslogger import flask_logger from owsrequest import flask_request from snowflake_connector.snowflake_conn import set_default_sessionmaker from reporting import config app = Flask(config.SERVICE_NAME) flask_logger.setup( app, config.LOGGER_DSN, config.ENVIRONMENT, config.LOGGER_NAME, config.LOGGER_LEVEL, config.SERVICE_NAME, config.SERVICE_VERSION, exclude_paths=[config.HEALTH_CHECK], ) try: import uwsgi # noqa uwsgiRunning = True except ImportError: uwsgiRunning = False flask_request.setup( app, config.ENVIRONMENT, uwsgi_cache_enabled=uwsgiRunning, add_request_context=True, ) sf_config = { 'password': config.SNOWFLAKE_PASSWORD, } sf_config.update(config.SNOWFLAKE_INSECURE_MODE) # service-wide Snowflake connection pool settings set_default_sessionmaker( pool_size=config.SNOWFLAKE_POOL_SIZE, pool_recycle=config.SNOWFLAKE_POOL_RECYCLE, pool_pre_ping=config.SNOWFLAKE_POOL_PRE_PING, pool_reset_on_return=config.SNOWFLAKE_POOL_RESET_ON_RETURN, sf_config=sf_config, )