class_docstr: The request context contains per-request information. The Flask
  app creates and pushes it at the beginning of the request, then pops
  it at the end of the request. It will create the URL adapter and
  request object for the WSGI environment provided.
  
  Do not attempt to use this class directly, instead use
  :meth:`~flask.Flask.test_request_context` and
  :meth:`~flask.Flask.request_context` to create this object.
  
  When the request context is popped, it will evaluate all the
  functions registered on the application for teardown execution
  (:meth:`~flask.Flask.teardown_request`).
  
  The request context is automatically popped at the end of the
  request. When using the interactive debugger, the context will be
  restored so ``request`` is still accessible. Similarly, the test
  client can preserve the context after the request ends. However,
  teardown functions may already have closed some resources such as
  database connections.
docstr: Pops the request context and unbinds it by doing that.  This will
  also trigger the execution of functions registered by the
  :meth:`~flask.Flask.teardown_request` decorator.
  
  .. versionchanged:: 0.9
     Added the `exc` argument.
docstr_tok: ["Pops","the","request","context","and","unbinds","it","by","doing","that",".","This","will","also","trigger","the","execution","of","functions","registered","by","the",":","meth",":","`","~flask.Flask.teardown_request","`","decorator",".","..","versionchanged",":",":","0.9","Added","the","`","exc","`","argument","."]
code: def pop(self, exc: BaseException | None = _sentinel) -> None:  # type: ignore
      """Pops the request context and unbinds it by doing that.  This will
      also trigger the execution of functions registered by the
      :meth:`~flask.Flask.teardown_request` decorator.
  
      .. versionchanged:: 0.9
         Added the `exc` argument.
      """
      clear_request = len(self._cv_tokens) == 1
  
      try:
          if clear_request:
              if exc is _sentinel:
                  exc = sys.exc_info()[1]
              self.app.do_teardown_request(exc)
  
              request_close = getattr(self.request, "close", None)
              if request_close is not None:
                  request_close()
      finally:
          ctx = _cv_request.get()
          token, app_ctx = self._cv_tokens.pop()
          _cv_request.reset(token)
  
          # get rid of circular dependencies at the end of the request
          # so that we don't require the GC to be active.
          if clear_request:
              ctx.request.environ["werkzeug.request"] = None
  
          if app_ctx is not None:
              app_ctx.pop(exc)
  
          if ctx is not self:
              raise AssertionError(
                  f"Popped wrong request context. ({ctx!r} instead of {self!r})"
              )
  
imports: from __future__ import annotations
  import contextvars
  import sys
  import typing
  from functools import update_wrapper
  from types import TracebackType
  from werkzeug.exceptions import HTTPException
  from .None import typing
  from .globals import _cv_app
  from .globals import _cv_request
  from .signals import appcontext_popped
  from .signals import appcontext_pushed
label_desc: Use image node_id 5 for calling the RequestContext obj's underlying member method code with example usage: obj.pop(exc) without return types