from pymongo import MongoClient from dotenv import load_dotenv from configparser import ConfigParser from pathlib import Path import logging import os # load default values config = ConfigParser() config.read(Path(__file__).parent / 'defaults.ini') DB_IP_ADDRESS = config.get('database', 'db_ip_address') DB_NAME = config.get('database', 'db_name') DB_COLLECTION_NAME = config.get('database', 'db_collection_name') def connect( ip_addr: str = DB_IP_ADDRESS, db_name: str = DB_NAME, collection_name: str = DB_COLLECTION_NAME ): """ Connect to MongoDB database and return collection. """ # load environment variables load_dotenv() ip_addr = os.getenv( 'DB_IP_ADDRESS', default=DB_IP_ADDRESS ) db_name = os.getenv( 'DB_NAME', default=DB_NAME ) collection_name = os.getenv( 'DB_COLLECTION_NAME', default=DB_COLLECTION_NAME ) # connect to database client: MongoClient = MongoClient(ip_addr) db = client[db_name] collection = db[collection_name] logging.debug('finished') return collection if __name__ == '__main__': load_dotenv() collection = connect() print(collection)