X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fdash%2Fapp%2Fpal%2F__init__.py;h=f66edceafcd42392934232d0e8d3c4a86ea73dd2;hp=9950defa44d0cacfa976a1d2b32cb82484aa685f;hb=6f2d3a207bd2ccad8001bfca328b7be5da8e29d0;hpb=a5e8351152d9513811e2d6d9eaaf2180e35e002d diff --git a/resources/tools/dash/app/pal/__init__.py b/resources/tools/dash/app/pal/__init__.py index 9950defa44..f66edceafc 100644 --- a/resources/tools/dash/app/pal/__init__.py +++ b/resources/tools/dash/app/pal/__init__.py @@ -11,29 +11,71 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Initialize Flask app.""" +"""Initialize Flask app. +""" + +import logging + from flask import Flask from flask_assets import Environment +# Maximal value of TIME_PERIOD for Trending in days. +# Do not change without a good reason. +MAX_TIME_PERIOD = 180 + +# It defines the time period for Trending in days from now back to the past from +# which data is read to dataframes. +# TIME_PERIOD = None means all data (max MAX_TIME_PERIOD days) is read. +# TIME_PERIOD = MAX_TIME_PERIOD is the default value +TIME_PERIOD = MAX_TIME_PERIOD # [days] + +# List of releases used for iterative data processing. +# The releases MUST be in the order from the current (newest) to the last +# (oldest). +RELEASES=["csit2206", "csit2202", ] + def init_app(): - """Construct core Flask application with embedded Dash app.""" + """Construct core Flask application with embedded Dash app. + """ + + logging.basicConfig( + format=u"%(asctime)s: %(levelname)s: %(message)s", + datefmt=u"%Y/%m/%d %H:%M:%S", + level=logging.INFO + ) + + logging.info("Application started.") + app = Flask(__name__, instance_relative_config=False) - app.config.from_object("config.Config") - assets = Environment() - assets.init_app(app) + app.config.from_object(u"config.Config") with app.app_context(): # Import parts of our core Flask app. from . import routes - from .assets import compile_static_assets - # Import Trending Dash application. - from .trending.dashboard import init_dashboard + assets = Environment() + assets.init_app(app) + + if TIME_PERIOD is None or TIME_PERIOD > MAX_TIME_PERIOD: + time_period = MAX_TIME_PERIOD + else: + time_period = 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=RELEASES) - app = init_dashboard(app) + return app - # Compile static assets. - compile_static_assets(assets) - return app +app = init_app()