docs: def pull(self, chars='all', cb=None, block=True):
          """Update the state of all my proxy objects from the real objects."""
          if block:
              deltas = self.handle('get_char_deltas', chars=chars)
              self._upd_caches(deltas)
              if cb:
                  cb(deltas)
          else:
              return self._submit(self._pull_async, chars, cb)