"""Module that initializes the Flask application.""" import logging import os import nltk from dotenv import load_dotenv from flask import Flask from routes import main load_dotenv(".env") def download_nltk_resources(): try: # Check if 'punkt_tab' is available nltk.data.find('tokenizers/punkt_tab') except LookupError: # If not present, download it print("Downloading 'punkt_tab' tokenizer...") nltk.download('punkt_tab') nltk.download('punkt') print("'punkt_tab' tokenizer has been downloaded.") else: print("'punkt_tab' tokenizer is already available.") def create_app(): """ Creates and configures the Flask application. Returns: Flask: The configured Flask application. """ flask_app = Flask(__name__) logging.basicConfig( format='%(asctime)s - %(levelname)s - %(funcName)s - %(message)s') download_nltk_resources() logging.getLogger().setLevel(os.environ.get("LOG_LEVEL", "INFO").upper()) flask_app.register_blueprint(main.bp) return flask_app app = create_app()