code: def _reserve(self, key):
          
          self.assign(key, RESERVED)
          try:
              yield
          finally:
              del self._cache[key]
docs: Reserve a component's binding temporarily.
  
          Protects against cycles.