Python version
3.10.13
Package version
0.38.0
Current behavior (bug description)
The Benedict API would be extremely useful for storing and manipulating deeply nested, self-referential data-structures. However, self-referential benedicts sometimes work and sometimes don't.
This works:
from benedict import benedict
test = benedict(keyattr_enabled=True, keyattr_dynamic=True)
test.a.b.c = test
This does not:
from benedict import benedict
test = benedict(keyattr_enabled=True, keyattr_dynamic=True)
test.a.b.c = test
test.a.b.d.e = test
In Jupyter, the latter often leads to kernel crashes or RecursionErrors. It seems that __setitem__ is getting stuck in an infinite loop in traverse.py.
Python version
3.10.13
Package version
0.38.0
Current behavior (bug description)
The Benedict API would be extremely useful for storing and manipulating deeply nested, self-referential data-structures. However, self-referential benedicts sometimes work and sometimes don't.
This works:
from benedict import benedicttest = benedict(keyattr_enabled=True, keyattr_dynamic=True)test.a.b.c = testThis does not:
from benedict import benedicttest = benedict(keyattr_enabled=True, keyattr_dynamic=True)test.a.b.c = testtest.a.b.d.e = testIn Jupyter, the latter often leads to kernel crashes or
RecursionErrors. It seems that__setitem__is getting stuck in an infinite loop intraverse.py.