Conditions | 4 |
Total Lines | 27 |
Code Lines | 17 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | from flask import Flask |
||
15 | def create_app(*config_cls) -> Flask: |
||
16 | print('[INFO] Flask application initialized with {}'.format([config.__name__ for config in config_cls])) |
||
17 | |||
18 | app_ = Flask( |
||
19 | __name__, |
||
20 | # static_folder='{}/static'.format(WEB_FILE_ROOT_DIR), |
||
21 | # template_folder='{}/templates'.format(WEB_FILE_ROOT_DIR) |
||
22 | ) |
||
23 | |||
24 | for config in config_cls: |
||
25 | app_.config.from_object(config) |
||
26 | |||
27 | CORS().init_app(app_) |
||
28 | JWTManager().init_app(app_) |
||
29 | Swagger(template=app_.config['SWAGGER_TEMPLATE']).init_app(app_) |
||
30 | Router().init_app(app_) |
||
31 | |||
32 | connect(**app_.config['MONGODB_SETTINGS']) |
||
33 | app_.config['REDIS_CLIENT'] = Redis(**app_.config['REDIS_SETTINGS']) |
||
34 | app_.config['INFLUXDB_CLIENT'] = InfluxDBClient(**app_.config['INFLUXDB_SETTINGS']) |
||
35 | |||
36 | cfg = app_.config |
||
37 | |||
38 | if cfg['INFLUXDB_SETTINGS']['database'] not in cfg['INFLUXDB_CLIENT'].get_list_database(): |
||
39 | cfg['INFLUXDB_CLIENT'].create_database(cfg['INFLUXDB_SETTINGS']['database']) |
||
40 | |||
41 | return app_ |
||
42 |