Skip to content

Commit 9557077

Browse files
authored
Update multi_datastream.py
- attribute key should read '_unit_of_measurements' - changed setter of property unit_of_measurements to it being a normal list of complex properties instead of a list of entities (changes inspired by property multi_observation_data_types, which is also a normal list) - changed __getstate__ and __setstate__ accordingly (also analogously to multi_observation_data_types)
1 parent d4305f4 commit 9557077

1 file changed

Lines changed: 16 additions & 22 deletions

File tree

frost_sta_client/model/multi_datastream.py

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ def __init__(self,
6868

6969
def __new__(cls, *args, **kwargs):
7070
new_mds = super().__new__(cls)
71-
attributes = {'_id': None, '_name': '', '_description': '', '_properties': {}, '_unit_of_measurement': [],
72-
'_observation_type': '', '_multi_observation_data_types': [], '_observed_area': None,
73-
'_phenomenon_time': None, '_result_time': None, '_thing': None, '_sensor': None,
74-
'_observed_properties': None, '_observations': None, '_self_link': '', '_service': None}
71+
attributes = dict(_id=None, _name='', _description='', _properties={}, _observation_type='', _multi_observation_data_types=[],
72+
_unit_of_measurements=[], _observed_area=None, _phenomenon_time=None, _result_time=None,
73+
_thing=None, _sensor=None, _observed_properties=None, _observations=None, _self_link='',
74+
_service=None)
7575
for key, value in attributes.items():
7676
new_mds.__dict__[key] = value
7777
return new_mds
@@ -121,16 +121,9 @@ def unit_of_measurements(self):
121121

122122
@unit_of_measurements.setter
123123
def unit_of_measurements(self, values):
124-
if values is None:
125-
self._unit_of_measurements = None
126-
return
127-
if isinstance(values, list) and all(isinstance(uom, unitofmeasurement.UnitOfMeasurement) for uom in values):
128-
entity_class = entity_type.EntityTypes['UnitOfMeasurement']['class']
129-
self._unit_of_measurements = entity_list.EntityList(entity_class=entity_class, entities=values)
130-
return
131-
if not isinstance(values, entity_list.EntityList) or \
132-
any((not isinstance(uom, unitofmeasurement.UnitOfMeasurement)) for uom in values.entities):
133-
raise ValueError('unit_of_measurements should be an entity_list of type UnitOfMeasurement')
124+
if values is not None and (not isinstance(values, list) or \
125+
any((not isinstance(uom, unitofmeasurement.UnitOfMeasurement)) for uom in values)):
126+
raise ValueError('unit_of_measurements should be a list of type UnitOfMeasurement')
134127
self._unit_of_measurements = values
135128

136129
@property
@@ -306,14 +299,14 @@ def __getstate__(self):
306299
data['Sensor'] = self.sensor
307300
if self.properties is not None and self.properties != {}:
308301
data['properties'] = self.properties
309-
if self.unit_of_measurements is not None and len(self.unit_of_measurements.entities) > 0:
310-
data['unitOfMeasurements'] = self.unit_of_measurements.__getstate__()
302+
if len(self.unit_of_measurements) > 0:
303+
data['unitOfMeasurements'] = self.unit_of_measurements
311304
if len(self.multi_observation_data_types) > 0:
312305
data['multiObservationDataTypes'] = self.multi_observation_data_types
313306
if self.observed_properties is not None and len(self.observed_properties.entities) > 0:
314-
data['ObservedProperty'] = self.observed_properties.__getstate__()
307+
data['ObservedProperties'] = self.observed_properties.__getstate__()
315308
if self.observations is not None and len(self.observations.entities) > 0:
316-
data['Observation'] = self.observations.__getstate__()
309+
data['Observations'] = self.observations.__getstate__()
317310
return data
318311

319312
def __setstate__(self, state):
@@ -331,10 +324,11 @@ def __setstate__(self, state):
331324
if state.get('Sensor', None) is not None:
332325
self.sensor = frost_sta_client.model.sensor.Sensor()
333326
self.sensor.__setstate__(state['Sensor'])
334-
if state.get('unitOfMeasurements', None) is not None and isinstance(state['unitOfMeasurements'], list):
335-
entity_class = entity_type.EntityTypes['UnitOfMeasurement']['class']
336-
self.unit_of_measurements = utils.transform_json_to_entity_list(state['unitOfMeasurements'], entity_class)
337-
self.unit_of_measurements.next_link = state.get('unitOfMeasurements', None)
327+
if state.get('unitOfMeasurements', None) is not None \
328+
and isinstance(state['unitOfMeasurements'], list):
329+
self.unit_of_measurements = []
330+
for value in state['unitOfMeasurements']:
331+
self.unit_of_measurements.append(value)
338332
if state.get('multiObservationDataTypes', None) is not None \
339333
and isinstance(state['multiObservationDataTypes'], list):
340334
self.multi_observation_data_types = []

0 commit comments

Comments
 (0)