docs: def spawn(self, context=None):
          """
          context may be a callable or a dict.
          """
          if context is None:
              context = self.default_context
  
          if isinstance(context, collections.Callable):
              context = context()
  
          if not isinstance(context, collections.Mapping):
              raise PatchboardError('Cannot determine a valid context')
  
          return Client(self, context, self.api, self.endpoint_classes)