Coverage for heritrace/__init__.py: 100%

25 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-08-01 22:12 +0000

1import logging 

2import sys 

3 

4from flask import Flask 

5from flask_babel import Babel 

6from flask_login import LoginManager 

7from heritrace.cli import register_cli_commands 

8from redis import Redis 

9 

10 

11def create_app(config_object=None): 

12 app = Flask(__name__) 

13 

14 if config_object: 

15 app.config.from_object(config_object) 

16 

17 logging.basicConfig( 

18 level=logging.INFO, 

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

20 ) 

21 app.logger.setLevel(logging.INFO) 

22 

23 register_cli_commands(app) 

24 

25 is_translate_command = 'translate' in sys.argv 

26 

27 if not is_translate_command: 

28 babel = Babel() 

29 login_manager = LoginManager() 

30 

31 redis_url = 'redis://localhost:6379/0' # Internal Redis service 

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

33 

34 from heritrace.extensions import init_extensions 

35 from heritrace.routes import register_blueprints 

36 

37 init_extensions(app, babel, login_manager, redis_client) 

38 

39 register_blueprints(app) 

40 

41 return app