Coverage for heritrace/__init__.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-06-24 11:39 +0000

1from flask import Flask 

2from flask_babel import Babel 

3from flask_login import LoginManager 

4from heritrace.cli import register_cli_commands 

5from redis import Redis 

6import logging 

7 

8 

9def create_app(config_object=None): 

10 app = Flask(__name__) 

11 

12 if config_object: 

13 app.config.from_object(config_object) 

14 

15 logging.basicConfig( 

16 level=logging.INFO, 

17 format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", 

18 ) 

19 app.logger.setLevel(logging.INFO) 

20 

21 babel = Babel() 

22 login_manager = LoginManager() 

23 

24 redis_url = app.config.get('REDIS_URL', 'redis://redis:6379') # Default to production if not set 

25 redis_client = Redis.from_url(redis_url, decode_responses=True) 

26 

27 from heritrace.extensions import init_extensions 

28 from heritrace.routes import register_blueprints 

29 

30 init_extensions(app, babel, login_manager, redis_client) 

31 

32 register_blueprints(app) 

33 

34 register_cli_commands(app) 

35 

36 return app