from pathlib import Path from dotenv import load_dotenv from pymongo.errors import DuplicateKeyError import os from src.database import VisualCommunication, connect 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}")