On Tue, 24 Apr 2018 07:38:35 -0500
"Edward K. Ream" <[email protected]> wrote:
> It looks like json.dumps may have problems with p.v.unknownAttributes
> fields.
In theory yes, in practice not so much, although still a potential
problem.
The leo_cloud plugin stores outlines (well, subtrees, without expansion
info. etc.) in JSON. The two issues I found were todo.py storing
datetime dates, and the tags plugin storing sets.
Python's JSON module supports converting types on write - easy to make
set a list, and I think I converted dates to YYYYMMDDTHHMMSS format.
Then you have to handle them on read - so I tweaked tags to convert to
set, and todo was already reading text dates, seeing the datetime.dates
had been a problem with different pickle versions.
So I guess in general I didn't find actual problems, but there's still
the issue that currently someone can do:
p.v.u['pantry'] = {
('beans', 'aug'): 17,
('beans', 'jun'): 12,
('flour', 'jul'): 11,
('flour', 'aug'): 10,
}
and that just doesn't work in JSON.
I don't think we want to go down the track of letting users register
JSON read/write helpers for certain keys in p.v.u. *Maybe* we could
handle the case of ints/floats/tuples/(frozen sets) as keys by
converting to/from string representations.
Cheers -Terry
--
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.