Why is there a tuple inside a list? Why return the top-parent as an object, and the rest as names in a string that needs to be split to be useful. And why add the object itself to that string? And why does the string end in "."? Unless I am missing something, and that may very well be the case, this seems very inconvenient.
From a programmers point of view tuple is very handy, as it is immutable and use less memory.
The trailing dot maybe is simply a consequences of the name composition methods, if you append a dot, and add something after you have not to take in account to check if the dot exist or not, plus the .split() function will return an empty string or nothing that could be parsed with a simple if statement.
For the two objects parents, I think that the method is returning the tree in a schematic way, the string has to be parsed maybe to obtain proper "Names" without retrieving the object itself and checking for his "Name" property .
It will be interesting to see how in the existing code the property is used, maybe a grep in the source tree will be interesting, or maybe some comments in the code will bring some light on the matter. Let me see.
Edit I: I've seen a similar writing somewhere in "programmin world", but now I don't rembember where.
EDIT II: Sorry no results, using
Parents or
.Parents in a
grep -nR over the source tree of the 0.19 that I have handy on the computer.
I've searched the item on the /Mod/. tree, so maybe it is in the C++ section, or is derived from somewhere else, like an external library, I've searched also in Qt (using the Web Qt search field on Qt official pages but no luck)
Regards
Carlo D.