<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">If there’s a plugin that understands this extension<br>
> installed, let it do something before you actually move the files into<br>
> place”. This let’s Wheels themselves still be declarative and moves the<br>
> responsibility of implementing these bits into their own PyPI projects<br>
> that can be versioned and independently upgraded and such. We’d probably<br>
> need some method of marking an extension as “critical” (e.g. bail out and<br>
> don’t install this Wheel if you don’t have something that knows how to handle<br>
> it) and then non critical extensions just get ignored if we don’t know<br>
> how to handle it.<br></span></blockquote><div><br></div><div>Could an "extension" be -- "run this arbitrary Python script" ?</div><div><br></div><div>We've got a full featured scripting language (with batteries included!) -- isn't that all the extension you need?</div><div><br></div><div>Or is this about security? We don't want to let a package do virtually anything on install?</div><div><br></div><div>-CHB</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
</span>Right, this is the intent of the "Required extension handling"<br>
feature: <a href="https://www.python.org/dev/peps/pep-0426/#required-extension-handling" target="_blank">https://www.python.org/dev/peps/pep-0426/#required-extension-handling</a><br>
<br>
If a package flags an extension as "installer_must_handle", then<br>
attempts to install that package are supposed to fail if the installer<br>
doesn't recognise the extension. Otherwise, installers are free to<br>
ignore extensions they don't understand.<br>
<br>
So meta-installers like canopy could add their own extensions to their<br>
generated wheel files, flag those extensions as required, and other<br>
installers would correctly reject those wheels as unsupported.<br>
<span class="im HOEnZb"><br>
Cheers,<br>
Nick.<br>
<br>
--<br>
Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>