def set_location(self, lat, long): # pylint: disable=redefined-builtin with self.lock: Validation.location_check(lat, long) if self.__lat != lat or self.__long != long: if LOCATION not in self._changes: self._changes.append(LOCATION) self.__lat = lat self.__long = long
def __init__(self, lid, new=False, stash=None, public=None, labels=None, descriptions=None, tags=None, points=None, lat=None, long=None): # pylint: disable=redefined-builtin """ # Note labels & descriptions: dict like {'en': 'blah', 'fr': 'chips'} # Note points dict = stash format """ super(Thing, self).__init__(lid, new=new, labels=labels, descriptions=descriptions, tags=tags) self.__stash = stash self.__public = Validation.bool_check_convert( 'public', public) # Note: bool(None) == False self.__lat = None self.__long = None if lat is not None or long is not None: Validation.location_check(lat, long) self.__lat = lat self.__long = long self.__points = {} if points is not None: for pid, pdata in points.items(): point_tags = [ ] # Migrate stash where point[tags] was not stored in empty case if TAGS in pdata: point_tags = pdata[TAGS] self.__points[pid] = Point(pdata[FOC], pid, labels=pdata[LABELS], descriptions=pdata[DESCRIPTIONS], tags=point_tags, values=pdata[VALUES], max_samples=pdata[RECENT])