from __future__ import annotations import os from pathlib import Path from dotenv import load_dotenv from pymongo.errors import DuplicateKeyError from shared.database import connect from shared.database.classes import VisualCommunication if __name__ == '__main__': # get list of image paths test_dir = Path(__file__).parent img_dir = test_dir / 'imgs' img_path_list = [path for path in img_dir.glob('*.jpeg') if path.is_file()] print(img_path_list) # instantiate data object vis_com_list = [ VisualCommunication.from_file(path) for path in img_path_list ] for vis_com in vis_com_list: print(repr(vis_com)) # prepare env vars env_path = test_dir.parent / 'local.env' assert env_path.exists() load_dotenv(env_path) os.environ['MONGO_HOST'] = 'localhost' # connect to database collection, db, client = connect() print(client.server_info()) # upload images for vis_com in vis_com_list: try: result = collection.insert_one(vis_com.model_dump()) except DuplicateKeyError as exc: print('ignoring:\n', exc) else: print(f"inserted document: {result}")