diff options
author | pmikus <peter.mikus@protonmail.ch> | 2022-09-19 08:49:01 +0200 |
---|---|---|
committer | Peter Mikus <peter.mikus@protonmail.ch> | 2022-09-19 06:54:43 +0000 |
commit | d6a60b5043c6f7c3dfc45853feb68d0aca5a4a5f (patch) | |
tree | 022343584d4e00a0da8ef12eb4e713d67344fc95 /csit.infra.dash/app/pal/__init__.py | |
parent | d2ef7bc01df66f6a27f25d061db064cf4a463267 (diff) |
feat(uti): Move directory
Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: I7300ecfe756baaf3fbeedb020070f882cfaca445
Diffstat (limited to 'csit.infra.dash/app/pal/__init__.py')
-rw-r--r-- | csit.infra.dash/app/pal/__init__.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/csit.infra.dash/app/pal/__init__.py b/csit.infra.dash/app/pal/__init__.py new file mode 100644 index 0000000000..20023ec157 --- /dev/null +++ b/csit.infra.dash/app/pal/__init__.py @@ -0,0 +1,81 @@ +# Copyright (c) 2022 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Initialize Flask app. +""" + +import logging + +from flask import Flask +from flask_assets import Environment, Bundle + +from .utils.constants import Constants as C + + +def init_app(): + """Construct core Flask application with embedded Dash app. + """ + logging.basicConfig( + format=C.LOG_FORMAT, + datefmt=C.LOG_DATE_FORMAT, + level=C.LOG_LEVEL + ) + + logging.info("Application started.") + + app = Flask(__name__, instance_relative_config=False) + app.config.from_object("config.Config") + + with app.app_context(): + # Import parts of our core Flask app. + from . import routes + + assets = Environment() + assets.init_app(app) + + # Compile static assets. + sass_bundle = Bundle( + "sass/lux.scss", + filters="libsass", + output="dist/css/bootstrap.css", + depends="**/*.scss", + extra={ + "rel": "stylesheet" + } + ) + assets.register("sass_all", sass_bundle) + sass_bundle.build() + + # Set the time period for Trending + if C.TIME_PERIOD is None or C.TIME_PERIOD > C.MAX_TIME_PERIOD: + time_period = C.MAX_TIME_PERIOD + else: + time_period = C.TIME_PERIOD + + # Import Dash applications. + from .news.news import init_news + app = init_news(app) + + from .stats.stats import init_stats + app = init_stats(app, time_period=time_period) + + from .trending.trending import init_trending + app = init_trending(app, time_period=time_period) + + from .report.report import init_report + app = init_report(app, releases=C.RELEASES) + + return app + + +app = init_app() |