From 074fc742a699278ea5266b34aace1e34049b3de3 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sat, 23 Apr 2022 22:29:07 +0100 Subject: [PATCH] Implement twisted.python.failure._Code.co_positions This is needed for compatibility with Python 3.11. --- src/twisted/newsfragments/10336.bugfix | 1 + src/twisted/python/failure.py | 5 ++++- src/twisted/test/test_failure.py | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/twisted/newsfragments/10336.bugfix diff --git a/src/twisted/newsfragments/10336.bugfix b/src/twisted/newsfragments/10336.bugfix new file mode 100644 index 00000000000..a7ffab3627d --- /dev/null +++ b/src/twisted/newsfragments/10336.bugfix @@ -0,0 +1 @@ +Implement twisted.python.failure._Code.co_positions for compatibility with Python 3.11. diff --git a/src/twisted/python/failure.py b/src/twisted/python/failure.py index 6471e7bca59..c5a359e405b 100644 --- a/src/twisted/python/failure.py +++ b/src/twisted/python/failure.py @@ -130,7 +130,7 @@ def _Traceback(stackFrames, tbFrames): # The set of attributes for _TracebackFrame, _Frame and _Code were taken from -# https://docs.python.org/3.10/library/inspect.html Other Pythons may have a +# https://docs.python.org/3.11/library/inspect.html Other Pythons may have a # few more attributes that should be added if needed. class _TracebackFrame: """ @@ -202,6 +202,9 @@ def __init__(self, name, filename): self.co_nlocals = 0 self.co_stacksize = 0 + def co_positions(self): + return ((None, None, None, None),) + _inlineCallbacksExtraneous = [] diff --git a/src/twisted/test/test_failure.py b/src/twisted/test/test_failure.py index 6dd7c682bf9..6fd82c868ec 100644 --- a/src/twisted/test/test_failure.py +++ b/src/twisted/test/test_failure.py @@ -825,6 +825,7 @@ def test_fakeCodeAttributes(self): self.assertIsInstance(code.co_nlocals, int) self.assertIsInstance(code.co_stacksize, int) self.assertIsInstance(code.co_varnames, list) + self.assertIsInstance(code.co_positions(), tuple) def test_fakeTracebackFrame(self): """