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=4e32598147258d80316d913b18fdd5124b08c385;hp=9950defa44d0cacfa976a1d2b32cb82484aa685f;hb=1daa6fdc0bae284dee1b61f34534e59b60b7526a;hpb=a5e8351152d9513811e2d6d9eaaf2180e35e002d diff --git a/resources/tools/dash/app/pal/__init__.py b/resources/tools/dash/app/pal/__init__.py index 9950defa44..4e32598147 100644 --- a/resources/tools/dash/app/pal/__init__.py +++ b/resources/tools/dash/app/pal/__init__.py @@ -11,29 +11,61 @@ # 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 in days. +# Do not change without a good reason. +MAX_TIME_PERIOD = 180 + +# It defines the time period 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] + + 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 .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) - app = init_dashboard(app) + return app - # Compile static assets. - compile_static_assets(assets) - return app +app = init_app()