<div dir="ltr">The multiple threads going on are confusing (or maybe GMail makes them more confusing), but the architecture you are sketching here sounds good. I can't find get_default_context() in the repo, but perhaps I need to refresh, or perhaps you're talking about a design in a PEP.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 8, 2014 at 8:03 PM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><p dir="ltr"><br>
On 9 Sep 2014 10:48, "Jim J. Jewett" <<a href="mailto:jimjjewett@gmail.com" target="_blank">jimjjewett@gmail.com</a>> wrote:<br>
> I assume that adding _unverified_urlopen or urlopen(context=...) do<br>
> provide incremental improvements compatible with the eventual full<br>
> opt-in.  If so, adding them is probably reasonable, but I think the<br>
> PEP should explicitly list all such approved half-measures as a guard<br>
> against API feature creep.</p>
</span><p dir="ltr">From Guido's and your feedback, I think we may need two things to approve this for 3.4.2 (putting 2.7 aside for now):</p>
<p dir="ltr">1. "context" parameter support in urllib.request (to opt out on a per-call basis)<br>
2. a documented way to restore the old behaviour via sitecustomize (which may involve monkeypatching)</p>
<p dir="ltr">The former change seems non-controversial.</p>
<p dir="ltr">I think the more fine-grained solution for the latter can wait until 3.5 (and will be an independent PEP), we just need an interim workaround for 3.4 that could conceivably be backported to 2.7.</p>
<p dir="ltr">On that front, ssl currently has two context factories: get_default_context() and _get_stdlib_context. One possible option would be to:</p>
<p dir="ltr">1. Rename "_get_stdlib_context" to "_get_unverified_context"<br>
2. Add "_get_https_context" as an alias for "get_default_context"</p>
<p dir="ltr">Opting out on a per-call basis means passing an unverified context.</p>
<p dir="ltr">Opting out globally would mean monkeypatching _get_https_context to refer to _get_unverified_context instead.</p>
<p dir="ltr">These would both be documented as part of transition, but with clear security warnings. The use of the leading underscores in the names is intended to emphasise "you probably don't want to be using this".</p>
<p dir="ltr">Regards,<br>
Nick.<br><br><br></p>
<p dir="ltr"><span class="">><br>
> -jJ<br>
> _______________________________________________<br>
> Python-Dev mailing list<br>
> <a href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br></span>
> Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com" target="_blank">https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com</a><br>
</p>
<br>_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" target="_blank">https://mail.python.org/mailman/options/python-dev/guido%40python.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>--Guido van Rossum (<a href="http://python.org/~guido">python.org/~guido</a>)
</div>