<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 10, 2016 at 12:57 PM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, Jan 10, 2016 at 11:48:35AM -0500, Neil Girdhar wrote:<br>
<br>
[...]<br>
<span class="">> > v = mydict.__version__<br>
> > maybe_modify(mydict)<br>
> > if v != mydict.__version__:<br>
> >     print("dict has changed")<br>
><br>
><br>
> This is exactly what I want to avoid.  If you want to do something like<br>
> this, I think you should do it in regular Python by subclassing dict and<br>
> overriding the mutating methods.<br>
<br>
</span>That doesn't help Victor, because exec need an actual dict, not<br>
subclasses. Victor's PEP says this is a blocker.<br></blockquote><div><br></div><div>No, he can still do what he wants transparently in the interpreter.  What I want to avoid is Python users using __version__ in their own code. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I can already subclass dict to do that now. But if Victor's suggestion<br>
is accepted, then I don't need to. The functionality will already exist.<br>
Why shouldn't I use it?<br></blockquote><div><br></div><div>Because people write code for the abc "Mapping".  What you are suggesting is then to add "__version__" to the abc Mapping, which I am against.  Mapping provides the minimum interface to be a mapping; there is no reason that every Mapping should have a "__version__".</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
> What happens if someone uses a custom Mapping?<br>
<br>
</span>If they inherit from dict or UserDict, they get this functionality for<br>
free. If they don't, they're responsible for implementing it if they<br>
want it.<br></blockquote><div><br></div><div>But they shouldn't have to implement it just so that code written for Mappings works — as it does now. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
<br>
> Do all custom Mappings need to implement __version__?<br>
<br>
</span>I believe the answer to that is No, but the PEP probably should clarify<br>
that.<br></blockquote><div><br></div><div>If the answer is "no" then honestly no user should write code counting on the existence of __version__.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Steve<br>
</font></span><span class="im HOEnZb">_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
<br>
</span><div class="HOEnZb"><div class="h5">--<br>
<br>
---<br>
You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group.<br>
To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/python-ideas/HP5qdo3rJxE/unsubscribe" rel="noreferrer" target="_blank">https://groups.google.com/d/topic/python-ideas/HP5qdo3rJxE/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href="mailto:python-ideas%2Bunsubscribe@googlegroups.com">python-ideas+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" target="_blank">https://groups.google.com/d/optout</a>.<br>
</div></div></blockquote></div><br></div></div>