Coverage for heritrace/__init__.py: 100%
25 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-08-01 22:12 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-08-01 22:12 +0000
1import logging
2import sys
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
11def create_app(config_object=None):
12 app = Flask(__name__)
14 if config_object:
15 app.config.from_object(config_object)
17 logging.basicConfig(
18 level=logging.INFO,
19 format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
20 )
21 app.logger.setLevel(logging.INFO)
23 register_cli_commands(app)
25 is_translate_command = 'translate' in sys.argv
27 if not is_translate_command:
28 babel = Babel()
29 login_manager = LoginManager()
31 redis_url = 'redis://localhost:6379/0' # Internal Redis service
32 redis_client = Redis.from_url(redis_url, decode_responses=True)
34 from heritrace.extensions import init_extensions
35 from heritrace.routes import register_blueprints
37 init_extensions(app, babel, login_manager, redis_client)
39 register_blueprints(app)
41 return app