Browse Source

convert metadata functions to properties

Christian Mönch 2 years ago
parent
commit
4dc461a46d

+ 15 - 11
dataladmetadatamodel/metadata.py

@@ -145,30 +145,32 @@ class MetadataInstanceSet:
                  initial_metadata_instances: Optional[Iterable[MetadataInstance]] = None):
 
         self.parameter_set = list()
-        self.instances = dict()
+        self._instances = dict()
         for metadata_instance in initial_metadata_instances or []:
             self.add_metadata_instance(metadata_instance)
 
     def __iter__(self):
-        yield from self.instances.values()
+        yield from self._instances.values()
 
     def add_metadata_instance(self, metadata_instance: MetadataInstance):
         if metadata_instance.configuration not in self.parameter_set:
             self.parameter_set.append(metadata_instance.configuration)
         instance_key = self.parameter_set.index(metadata_instance.configuration)
-        self.instances[instance_key] = metadata_instance
+        self._instances[instance_key] = metadata_instance
 
-    def get_instances(self) -> Generator[MetadataInstance, None, None]:
-        yield from self.instances.values()
+    @property
+    def instances(self) -> Generator[MetadataInstance, None, None]:
+        yield from self._instances.values()
 
-    def get_configurations(self) -> List[ExtractorConfiguration]:
+    @property
+    def configurations(self) -> List[ExtractorConfiguration]:
         return self.parameter_set[:]
 
     def get_instance_for_configuration_index(self, index: int):
-        return self.instances[index]
+        return self._instances[index]
 
     def get_instance_for_configuration(self, configuration: ExtractorConfiguration):
-        return self.instances[self.parameter_set.index(configuration)]
+        return self._instances[self.parameter_set.index(configuration)]
 
     def to_json_obj(self) -> JSONObject:
         return {
@@ -182,7 +184,7 @@ class MetadataInstanceSet:
             ],
             "instance_set": {
                 instance_key: instance.to_json_obj()
-                for instance_key, instance in self.instances.items()
+                for instance_key, instance in self._instances.items()
             }
         }
 
@@ -199,7 +201,7 @@ class MetadataInstanceSet:
             ExtractorConfiguration.from_json_obj(json_obj)
             for json_obj in obj["parameter_set"]
         ]
-        metadata_instance_set.instances = {
+        metadata_instance_set._instances = {
             int(configuration_id): MetadataInstance.from_json_obj(json_obj)
             for configuration_id, json_obj in obj["instance_set"].items()
         }
@@ -211,7 +213,7 @@ class MetadataInstanceSet:
 
     def __eq__(self, other: "MetadataInstanceSet"):
         return sorted(self.parameter_set) == sorted(other.parameter_set) \
-               and self.instances == other.instances
+               and self._instances == other._instances
 
 
 class Metadata(MappableObject):
@@ -247,9 +249,11 @@ class Metadata(MappableObject):
     def modifiable_sub_objects_impl(self) -> Iterable[MappableObject]:
         return []
 
+    @property
     def extractors(self) -> Generator[str, None, None]:
         yield from self.instance_sets.keys()
 
+    @property
     def extractor_runs(self) -> Generator[Tuple[str, MetadataInstanceSet], None, None]:
         yield from self.instance_sets.items()
 

+ 1 - 1
dataladmetadatamodel/tests/test_filetree.py

@@ -82,7 +82,7 @@ class TestFileTree(unittest.TestCase):
             [extractor_configuration])
 
         self.assertEqual(
-            stored_metadata.instances[0],
+            stored_metadata._instances[0],
             MetadataInstance(
                 1.2,
                 author_name,

+ 6 - 6
dataladmetadatamodel/tests/test_instanceset.py

@@ -55,8 +55,8 @@ class TestInstanceSetBase(unittest.TestCase):
         )
 
         self.assertDictEqual(
-            self.metadata_instance_set.instances,
-            instance_set.instances
+            self.metadata_instance_set._instances,
+            instance_set._instances
         )
 
 
@@ -77,7 +77,7 @@ class TestUniqueness(TestInstanceSetBase):
 
     def test_configuration_unity(self):
         # Ensure known state
-        configuration_list = self.metadata_instance_set.get_configurations()
+        configuration_list = self.metadata_instance_set.configurations
         self.assertEqual(1, len(configuration_list))
         self.assertEqual(configuration_list[0], self.get_configuration("default"))
 
@@ -87,7 +87,7 @@ class TestUniqueness(TestInstanceSetBase):
                 configuration_list[0]))
 
         # Ensure nothing has changes
-        new_configuration_list = self.metadata_instance_set.get_configurations()
+        new_configuration_list = self.metadata_instance_set.configurations
         self.assertEqual(configuration_list, new_configuration_list)
         self.assertEqual(
             self.metadata_instance_set.get_instance_for_configuration(
@@ -97,12 +97,12 @@ class TestUniqueness(TestInstanceSetBase):
         )
 
     def test_configuration_multiplicity(self):
-        configuration_list = self.metadata_instance_set.get_configurations()
+        configuration_list = self.metadata_instance_set.configurations
         self.assertEqual(1, len(configuration_list))
         self.assertEqual(configuration_list[0], self.get_configuration("default"))
 
         self.metadata_instance_set.add_metadata_instance(self.get_instance("new"))
-        configuration_list = self.metadata_instance_set.get_configurations()
+        configuration_list = self.metadata_instance_set.configurations
         self.assertEqual(2, len(configuration_list))
         self.assertIn(self.get_configuration("default"), configuration_list)
         self.assertIn(self.get_configuration("new"), configuration_list)