Skip to content

Commit 2c4f20c

Browse files
committed
refactor: simplify package repository, remove package types
Pass the type along as it does not matter as much anymore since we normalize to MSSDK v3 and the native pipeline model is an extension of it.
1 parent 78d08c7 commit 2c4f20c

1 file changed

Lines changed: 9 additions & 58 deletions

File tree

src/ted_sws/data_manager/adapters/mapping_package_repository.py

Lines changed: 9 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
from pymongo import MongoClient
88

99
from mapping_suite_sdk.core.adapters.repository import MongoDBRepository, ModelNotFoundError
10-
from mapping_suite_sdk.mapping_package_v1.models import MappingPackageV1
11-
from mapping_suite_sdk.mapping_package_v2.models import MappingPackageV2
12-
from mapping_suite_sdk.mapping_package_v3.models import MappingPackageV3
13-
from mapping_suite_sdk.mapping_package_v3.models.mapping_package_v3_lightweight import MappingPackageV3Lightweight
1410

1511
from src.ted_sws import config
1612
from src.ted_sws.core.model.transform import MappingPackage, FileResource, TransformationRuleSet, SHACLTestSuite, \
@@ -63,67 +59,22 @@ def __init__(self, mongodb_client: MongoClient, database_name: str = None):
6359
self.database_name = database_name or config.MONGO_DB_AGGREGATES_DATABASE_NAME
6460
self.mongodb_client = mongodb_client
6561

66-
# Repositories for each package type
67-
self._repo_v1 = MongoDBRepository(
68-
model_class=MappingPackageV1,
69-
mongo_client=mongodb_client,
70-
database_name=self.database_name,
71-
collection_name=self._collection_name
72-
)
73-
self._repo_v2 = MongoDBRepository(
74-
model_class=MappingPackageV2,
75-
mongo_client=mongodb_client,
76-
database_name=self.database_name,
77-
collection_name=self._collection_name
78-
)
79-
self._repo_v3 = MongoDBRepository(
80-
model_class=MappingPackageV3,
81-
mongo_client=mongodb_client,
82-
database_name=self.database_name,
83-
collection_name=self._collection_name
84-
)
85-
self._repo_v3_lightweight = MongoDBRepository(
86-
model_class=MappingPackageV3Lightweight,
87-
mongo_client=mongodb_client,
62+
def _get_repository(self, package: MappingPackage) -> MongoDBRepository:
63+
return MongoDBRepository(
64+
model_class=type(package),
65+
mongo_client=self.mongodb_client,
8866
database_name=self.database_name,
8967
collection_name=self._collection_name
9068
)
91-
self._repo_legacy = MongoDBRepository(
92-
model_class=MappingPackage,
93-
mongo_client=mongodb_client,
69+
70+
def get_repository_by_class(self, package_class):
71+
return MongoDBRepository(
72+
model_class=package_class,
73+
mongo_client=self.mongodb_client,
9474
database_name=self.database_name,
9575
collection_name=self._collection_name
9676
)
9777

98-
def _get_repository(self, package: MappingPackage) -> MongoDBRepository:
99-
"""Get the appropriate repository based on package type."""
100-
if isinstance(package, MappingPackageV3Lightweight):
101-
return self._repo_v3_lightweight
102-
elif isinstance(package, MappingPackageV3):
103-
return self._repo_v3
104-
elif isinstance(package, MappingPackageV2):
105-
return self._repo_v2
106-
elif isinstance(package, MappingPackageV1):
107-
return self._repo_v1
108-
elif isinstance(package, MappingPackage):
109-
return self._repo_legacy
110-
else:
111-
raise ValueError(f"Unsupported package type: {type(package).__name__}")
112-
113-
def get_repository_by_class(self, package_class):
114-
if package_class == MappingPackageV1:
115-
return self._repo_v1
116-
elif package_class == MappingPackageV2:
117-
return self._repo_v2
118-
elif package_class == MappingPackageV3:
119-
return self._repo_v3
120-
elif package_class == MappingPackageV3Lightweight:
121-
return self._repo_v3_lightweight
122-
elif package_class == MappingPackage:
123-
return self._repo_legacy
124-
else:
125-
raise ValueError(f"Unsupported package class: {package_class.__name__}")
126-
12778
def add(self, mapping_package: MappingPackage) -> MappingPackage:
12879
"""Save a mapping package to MongoDB.
12980

0 commit comments

Comments
 (0)