| 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 |