code: def resolve(self, obj):
          
          if not isinstance(obj, str):
              return obj
          if ':' in obj:
              return resolve_reference(obj)
  
          value = self._entrypoints.get(obj)
          if value is None:
              raise LookupError('no such entry point in {}: {}'.format(self.namespace, obj))
  
          if isinstance(value, EntryPoint):
              value = self._entrypoints[obj] = value.load()
  
          return value
docs: Resolve a reference to an entry point or a variable in a module.
  
          If ``obj`` is a ``module:varname`` reference to an object, :func:`resolve_reference` is
          used to resolve it. If it is a string of any other kind, the named entry point is loaded
          from this container's namespace. Otherwise, ``obj`` is returned as is.
  
          :param obj: an entry point identifier, an object reference or an arbitrary object
          :return: the loaded entry point, resolved object or the unchanged input value
          :raises LookupError: if ``obj`` was a string but the named entry point was not found