Coverage for heritrace/__init__.py: 100%
22 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-06-24 11:39 +0000
« 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
9def create_app(config_object=None):
10 app = Flask(__name__)
12 if config_object:
13 app.config.from_object(config_object)
15 logging.basicConfig(
16 level=logging.INFO,
17 format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
18 )
19 app.logger.setLevel(logging.INFO)
21 babel = Babel()
22 login_manager = LoginManager()
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)
27 from heritrace.extensions import init_extensions
28 from heritrace.routes import register_blueprints
30 init_extensions(app, babel, login_manager, redis_client)
32 register_blueprints(app)
34 register_cli_commands(app)
36 return app