You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
DynamicObject support script no longer working since version 3.1.0rc0 #2696
A long while ago, @filmor created a script that could be used to enable accessing DynamicObjects from Python as a workaround for issue #72 . Since then, this has worked beautifully up to version 3.0.5 and seemed to be a mature solution, even without direct support for DLR types in pythonnet.
With version 3.1.0rc0, this approach stopped working. When trying to access a dynamic property, I get AttributeError: 'Class1' object has no attribute 'SomePropertyFromDynamicObject'. It seems like the injected __getattr__ function is not called.
Python 3.12, pythonnet 3.0.5 - working
Python 3.12, pythonnet 3.1.0rc0 - not working
Python 3.14, pythonnet 3.1.0rc0 - not working
I have attached a C# project and python script to reproduce the issue. Build the C# solution, then run the test_dynamic_access.py script. It tests the DynamicObject-based approach, as well as our own, simplified version of it (that also stopped working).
/edit
So, as a short-term measure, I could adjust the code to only run the workaround for Python 3.14, but I'll investigate whether I can find a solution that works for all versions.
/edit So, as a short-term measure, I could adjust the code to only run the workaround for Python 3.14, but I'll investigate whether I can find a solution that works for all versions.
Just FYI: For us, a fix that only restores the functionality with older Python versions wouldn't really help, because we could just stay on pythonnet 3.0.5, but we need to use Python 3.14 😮💨
Activity
filmor commentedon Mar 19, 2026
The problematic commit is 08550d0.
/edit
So, as a short-term measure, I could adjust the code to only run the workaround for Python 3.14, but I'll investigate whether I can find a solution that works for all versions.
spkl commentedon Mar 20, 2026
Just FYI: For us, a fix that only restores the functionality with older Python versions wouldn't really help, because we could just stay on pythonnet 3.0.5, but we need to use Python 3.14 😮💨