John Belmonte <j...@neggie.net> added the comment:

To clarify the problem case, I believe the discrepancy is seen when raising 
exceptions as follows:

exc = foo()
try:
    raise exc
finally:
    exc.__context__ = None

(From my understanding, Trio has valid use cases for doing this since it wants 
to control complex exception chaining, and this is beyond the scope of 
__suppress_context__.)

Neither ExitStack nor AsyncExcitStack are preserving the None context in the 
case above.

  === `with` statement ===
  Traceback (most recent call last):
    File "exit_stack_test.py", line 251, in <module>
      assert False
    File "/.../python3.7/contextlib.py", line 130, in __exit__
      self.gen.throw(type, value, traceback)
    File "exit_stack_test.py", line 244, in my_cm
      raise exc
  MyException

  === enter_context() ===
  Traceback (most recent call last):
    File "exit_stack_test.py", line 240, in my_cm
      yield
    File "exit_stack_test.py", line 259, in <module>
      assert False
  AssertionError

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "exit_stack_test.py", line 259, in <module>
      assert False
    File "/.../python3.7/contextlib.py", line 524, in __exit__
      raise exc_details[1]
    File "/.../python3.7/contextlib.py", line 509, in __exit__
      if cb(*exc_details):
    File "/.../python3.7/contextlib.py", line 377, in _exit_wrapper
      return cm_exit(cm, exc_type, exc, tb)
    File "/.../python3.7/contextlib.py", line 130, in __exit__
      self.gen.throw(type, value, traceback)
    File "exit_stack_test.py", line 244, in my_cm
      raise exc
  MyException

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44594>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to