1
Fork 0
mirror of https://github.com/Steffo99/unimore-bda-6.git synced 2024-11-23 00:14:19 +00:00
bda-6-steffo/unimore_bda_6/database/connection.py

34 lines
735 B
Python
Raw Normal View History

import pymongo
2023-02-08 18:46:05 +00:00
import pymongo.errors
import contextlib
import typing as t
import logging
from ..config import MONGO_HOST, MONGO_PORT
log = logging.getLogger(__name__)
@contextlib.contextmanager
def mongo_client_from_config() -> t.ContextManager[pymongo.MongoClient]:
"""
Create a new MongoDB client and yield it.
"""
2023-02-08 18:46:05 +00:00
log.debug("Creating MongoDB client...")
client: pymongo.MongoClient = pymongo.MongoClient(
host=MONGO_HOST.__wrapped__,
port=MONGO_PORT.__wrapped__,
)
2023-02-08 18:46:05 +00:00
log.debug("Created MongoDB client!")
yield client
log.info("Closing connection to MongoDB...")
client.close()
log.debug("Closed connection to MongoDB!")
__all__ = (
"mongo_client_from_config",
)