<div dir="ltr"><a href="http://setuptools.readthedocs.io/en/latest/formats.html?highlight=entry_points.txt#entry-points-txt-entry-point-plugin-metadata">http://setuptools.readthedocs.io/en/latest/formats.html?highlight=entry_points.txt#entry-points-txt-entry-point-plugin-metadata</a><div><br></div><div><a href="http://setuptools.readthedocs.io/en/latest/pkg_resources.html?highlight=pkg_resources#creating-and-parsing">http://setuptools.readthedocs.io/en/latest/pkg_resources.html?highlight=pkg_resources#creating-and-parsing</a><br><div><br></div><div>It is not very complicated. It looks like the characters are mostly 'python identifier' rules with a little bit of 'package name' rules.</div><div><br></div><div>I am also concerned about the amount of parsing on startup. A hard problem for certain, since no one likes outdated cache problems either. It is also unpleasant to have too much code with a runtime dependency on 'packaging'.</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 18, 2017 at 1:00 PM Paul Moore <<a href="mailto:p.f.moore@gmail.com">p.f.moore@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 18 October 2017 at 17:48, Doug Hellmann <<a href="mailto:doug@doughellmann.com" target="_blank">doug@doughellmann.com</a>> wrote:<br>
> Excerpts from Thomas Kluyver's message of 2017-10-18 15:52:00 +0100:<br>
>> We're increasingly using entry points in Jupyter to help integrate<br>
>> third-party components. This brings up a couple of things that I'd like<br>
>> to do:<br>
>><br>
>> 1. Specification<br>
>><br>
>> As far as I know, there's no document describing the details of entry<br>
>> points; it's a de-facto standard established by setuptools. It seems to<br>
>> work quite well, but it's worth writing down what is unofficially<br>
>> standardised. I would like to see a document on<br>
>> <a href="https://packaging.python.org/specifications/" rel="noreferrer" target="_blank">https://packaging.python.org/specifications/</a> saying:<br>
>><br>
>> - Where build tools should put entry points in wheels<br>
>> - Where entry points live in installed distributions<br>
>> - The file format (including allowed characters, case sensitivity...)<br>
>><br>
>> I guess I'm volunteering to write this, although if someone else wants<br>
>> to, don't let me stop you. ;-)<br>
>><br>
>> I'd also be happy to hear that I'm wrong, that this specification<br>
>> already exists somewhere. If it does, can we add a link from<br>
>> <a href="https://packaging.python.org/specifications/" rel="noreferrer" target="_blank">https://packaging.python.org/specifications/</a> ?<br>
><br>
> I've always used the setuptools documentation as a reference. Are you<br>
> suggesting moving that information to a different location to<br>
> allow/encourage other tools to implement it as a standard?<br>
<br>
I've never used entry points myself (other than the console script<br>
entry points supported by packaging) but a quick Google search found<br>
<a href="http://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins" rel="noreferrer" target="_blank">http://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins</a><br>
as the only obvious candidate for documentation (and a bit later I<br>
thought of looking under pkg_resources and found<br>
<a href="http://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points" rel="noreferrer" target="_blank">http://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points</a>).<br>
This doesn't really say how the entry point data is stored in the<br>
project metadata, so it's not clear how I'd read that data in my own<br>
code (the answer is of course to use pkg_resources, but the point of<br>
documenting it as a standard is to allow alternative implementations).<br>
Also, it's not clear how a tool like flit might implement entry points<br>
- again, because the specifications don't describe how the metadata is<br>
stored.<br>
<br>
+1 from me on moving the entry point specification to<br>
<a href="https://packaging.python.org/specifications/" rel="noreferrer" target="_blank">https://packaging.python.org/specifications/</a><br>
<br>
Paul<br>
_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org" target="_blank">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</blockquote></div>