
On Sun, Jan 10, 2016 at 11:48:35AM -0500, Neil Girdhar wrote: [...]
v = mydict.__version__ maybe_modify(mydict) if v != mydict.__version__: print("dict has changed")
This is exactly what I want to avoid. If you want to do something like this, I think you should do it in regular Python by subclassing dict and overriding the mutating methods.
That doesn't help Victor, because exec need an actual dict, not subclasses. Victor's PEP says this is a blocker. I can already subclass dict to do that now. But if Victor's suggestion is accepted, then I don't need to. The functionality will already exist. Why shouldn't I use it?
What happens if someone uses a custom Mapping?
If they inherit from dict or UserDict, they get this functionality for free. If they don't, they're responsible for implementing it if they want it.
Do all custom Mappings need to implement __version__?
I believe the answer to that is No, but the PEP probably should clarify that. -- Steve