"""Connector for MySQL Database.""" from typing import Any import config import pymysql import pymysql.cursors def get_connection() -> pymysql.Connection: """Get an established MySQL connection. Returns: pymysql.Connection: MySQL connection with DictCursor. """ return pymysql.connect( host=config.MYSQL_HOST, port=config.MYSQL_PORT, user=config.MYSQL_USER, password=config.MYSQL_PASSWORD, database=config.MYSQL_DATABASE, cursorclass=pymysql.cursors.DictCursor, ) def execute_query(query: str, params: tuple[Any, ...] = (), fetch: bool = True) -> Any: """Execute a query on a MySQL connection. Args: query (str): SQL query to execute. params (tuple): Parameters passed to the query. fetch (bool): If True, return fetchall(); if False, return rowcount and commit. Returns: list | int: Query results if fetch=True, rowcount if fetch=False. """ conn = get_connection() try: with conn.cursor() as cursor: cursor.execute(query, params) if fetch: return cursor.fetchall() conn.commit() return cursor.rowcount except Exception: conn.rollback() raise finally: conn.close()