docs: def token_auto_auth(func):
      """Wrap class methods with automatic token re-authentication.
  
      This wrapper will detect authentication failures coming from its wrapped method. When one is
      caught, it will request a new token, and simply replay the original request.
  
      The one constraint that this wrapper has is that the wrapped method's class must have the
      :py:class:`objectrocket.client.Client` object embedded in it as the property ``_client``. Such
      is the design of all current client operations layers.
      """
  
      @functools.wraps(func)
      def wrapper(self, *args, **kwargs):
          try:
              response = func(self, *args, **kwargs)
  
          # If auth failure occurs, attempt to re-authenticate and replay once at most.
          except errors.AuthFailure:
  
              # Request to have authentication refreshed.
              self._client.auth._refresh()
  
              # Replay original request.
              response = func(self, *args, **kwargs)
  
          return response
  
      # TODO(TheDodd): match func call signature and docs.
      return wrapper