2 Copyright (c) 2019 Intel Corporation
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
18 from ..representation import BaseRepresentation
21 class ContainerRepresentation(BaseRepresentation):
22 def __init__(self, representation_map=None):
24 self.representations = representation_map or {}
26 def __eq__(self, other):
27 if not isinstance(other, type(self)):
30 if self.identifier != other.identifier:
33 if self.metadata != other.metadata:
36 if self.representations != other.representations:
41 def __getitem__(self, item):
42 return self.representations[item]
45 return self.representations.get(key)
48 return list(self.representations.values())
53 return self._identifier
55 values = self.values()
56 if np.size(values) == 0:
57 raise ValueError('representation container is empty')
59 self._identifier = values[0].identifier
60 return self._identifier
63 def identifier(self, identifier):
64 self._identifier = identifier
67 class ContainerAnnotation(ContainerRepresentation):
68 def set_image_size(self, image_sizes):
69 for key in self.representations.keys():
70 self.representations[key].metadata['image_size'] = image_sizes
72 def set_data_source(self, data_source):
73 for key in self.representations.keys():
74 self.representations[key].metadata['data_source'] = data_source
77 class ContainerPrediction(ContainerRepresentation):