I've started to work on the #1598. For now I am still reading code and 
trying to figure out how it works.

I have found a list of native vnode attributes:

    nativeVnodeAttributes = (
        'a',
        'descendentTnodeUnknownAttributes',
        'descendentVnodeUnknownAttributes',
        'expanded', 'marks', 't', 'tnodeList',
    )

However, analyzing the write code, I see that the only <v> attributes that 
are ever written are "*t*" and sometimes "*decendentVnodeUnknownAttributes*
".

The *v.tnodeList *is assigned and deleted on several places in Leo code, 
but I can't find any place that it is actually used. I can't recall seeing 
this attribute ever, and I don't remember what its purpose used to be.

I assume that all those ancient attributes can be safely ignored. Am I 
missing something?

If those attributes can be ignored, I think Leo's reading and writing logic 
can be greatly simplified.

Also there is a method FastRead.bytesToUnicode with the following __doc__:
    """
    Recursively convert bytes objects in strings / lists / dicts to str
    objects, thanks to TNT
    http://stackoverflow.com/questions/22840092
    Needed for reading Python 2.7 pickles in Python 3.4.
    """

Leo is now running on Python 3.5 or newer. Do we still need to warry about 
this Python2.7 pickle compatibility? If not, code can be further simplified.

Vitalije

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/e4da7fda-70a4-4b04-acf6-076c7d05c51b%40googlegroups.com.

Reply via email to