I noticed a possibly interesting thing in Gramps 6.0. Since Python is a very dynamic language any code can create new attributes in existing objects. If a new attribute is created in a Gramps object (e.g. Person object) then this attribute is also stored in the database along with other attributes. Assuming the object is added or committed to the database.
Note that this is about “Python level attributes” - not the Attributes that Gramps defines and that can be seen in the Attributes tab. Such a Python attribute is not visible in the regular Gramps interface but an addon could possibly use the attribute for some purpose.
For example, with SuperTool it is easy to demonstrate this. Run this script in the People category for a sample person (id=‘I0001’):
Then you can see the attribute in the database:
Note that there is also the attribute “commit_ok” which was automatically set by SuperTool.
This SuperTool script will verify that the attribute can also be read from the database:
It did not work this way in earlier Gramps versions (5.x). I noticed this because one of my addons (generatecitations) fails in 6.0 because of this feature.
Is this an intentional feature? Has this been discussed before?