def share(self, data=None, time=None): if data is None and time is None: raise ValueError("kwarg data or time required.") with self.lock: if time is not None: self.__sharetime = Validation.datetime_check_convert(time, allow_none=True) if SHARETIME not in self._changes: self._changes.append(SHARETIME) if data is not None: self.__sharedata = data if SHAREDATA not in self._changes: self._changes.append(SHAREDATA)