[docs]@overrideasyncdef__aenter__(self)->Any:"""Sets the state of the context manager to :py:enum:mem:`State.ENTERED`. Raises: RuntimeError: The context manager has already been entered. """ifself._stateisnotState.UNENTERED:raiseRuntimeError('Cannot enter the context manager more than once.'ifself._stateisState.ENTEREDelse'Cannot reopen the context manager once it has been closed.')self._state=State.ENTEREDreturnawaitsuper().__aenter__()
[docs]@overrideasyncdef__aexit__(self,*exc_info:Any)->Optional[bool]:"""Sets the state of the context manager to :py:enum:mem:`State.CLOSED`."""self._state=State.CLOSEDreturnawaitsuper().__aexit__(*exc_info)