code: def set_state(self, sync_data):
          
          # The order of these context managers is important. Properties must
          # be locked when the hold_trait_notification context manager is
          # released and notifications are fired.
          with self._lock_property(**sync_data), self.hold_trait_notifications():
              for name in sync_data:
                  if name in self.keys:
                      from_json = self.trait_metadata(name, 'from_json',
                                                      self._trait_from_json)
                      self.set_trait(name, from_json(sync_data[name], self))
docs: Called when a state is received from the front-end.