code: def _resolve_key(self, key):
          
          with self._reserve(key):
              factory = self.factory_for(key)
              with self._profiler(key):
                  component = factory(self)
              invoke_resolve_hook(component)
  
          return self.assign(key, component)
docs: Attempt to lazily create a component.
  
          :raises NotBoundError: if the component does not have a bound factory
          :raises CyclicGraphError: if the factory function requires a cycle
          :raises LockedGraphError: if the graph is locked