tjreedy at udel.edu
Mon Aug 8 20:23:42 EDT 2011
On 8/8/2011 3:50 PM, Croepha wrote:
> Hello Python list:
> I am doing research into doing network based propagation of python
> objects.In order to maintain network efficiency. I want to just
> send the differences of python objects, I was wondering if there
> was/is any other research or development in this area? I was thinking
> that I could look at how pickle works an implement a diff system
> there, or I could actually create a pickle of the object and then use
> difflib to compare the flattened text...
The problem cannot be tackled efficiently 'in general'. The important
issue is to choose a representation that localizes differences in a
particular application so that the diff is significantly smaller than
just sending the changed version.
Source code systems regard files as sequences of lines. That is ok for
formatted source code, not so good for prose in paragraphs where a small
change in one line may cause re-wrapping that changes 20 lines.
Compressed representations that spread the effect of localized changes
are also bad for local diffs. A representation that arbitrarily orders
items (and re-orders items at will), is also bad for local diffs.
I have no idea how stable and local pickles are, but I know they were
not designed for diff-ing. Json or yaml representations might do better
Terry Jan Reedy
More information about the Python-list