Dear Maintainer, Python 3.12 changed recursion mechanism [1]
sys.setrecursionlimit() and sys.getrecursionlimit(). The recursion limit now applies only to Python code. Builtin functions do not use the recursion limit, but are protected by a different mechanism that prevents recursion from causing a virtual machine crash. so increasing recursion limit as py-ubjson did [2] makes your package buildable. E.g. --- a/test/test.py +++ b/test/test.py @@ -477,10 +477,10 @@ def test_recursion(self): old_limit = getrecursionlimit() - setrecursionlimit(200) + setrecursionlimit(100) try: obj = current = [] - for _ in range(getrecursionlimit() * 2): + for _ in range(getrecursionlimit() * 30): new_list = [] current.append(new_list) current = new_list @@ -488,7 +488,7 @@ with self.assert_raises_regex(RuntimeError, 'recursion'): self.bjddumpb(obj) - raw = ARRAY_START * (getrecursionlimit() * 2) + raw = ARRAY_START * (getrecursionlimit() * 30) with self.assert_raises_regex(RuntimeError, 'recursion'): self.bjdloadb(raw) finally: Kind Regards [1] https://docs.python.org/3/whatsnew/3.12.html#sys [2] https://sources.debian.org/src/py-ubjson/0.16.1-3/debian/patches/py12_recursion_PR19.diff/