<div dir="ltr">On 18 July 2013 14:03, Daniel Holth <span dir="ltr"><<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Abstract<br>
<br>
This PEP proposes a way to represent the setuptools “entry points”<br>
feature in standard Python metadata. Entry points are a useful<br>
mechanism for advertising or discovering plugins or other exported<br>
functionality without having to depend on the module namespace. Since<br>
the feature is used by many existing Python distributions and not<br>
everyone wants to use setuptools, it is useful to have a way to<br>
represent the functionality that is not tied to setuptools itself.<br></blockquote><div><br></div><div style>1. I think that console (and GUI) scripts should be top-level metadata, not an extension. Installers need to be able to create wrappers based on these, and it is useful data for introspection.</div>
<div style><br></div><div style>2. distlib calls these "exports" and I think that's a better name. But if names are all that we argue over, I'm happy :-)</div><div style><br></div><div style>3. Someone (I think it was PJE) pointed out that having entry points in a separate metadata file was good because it allowed a fast check of "does this distribution expose entry points?" Note that this isn't a useful thing to check for script wrappers, which again argues that those should be handled separately.</div>
<div style><br></div><div style>4. You seem to have an extra set of curly braces in a few places. You say the value of "entry_points" is a dictionary, but you show it as a set containing one dictionary in the set (and of course sets aren't valid JSON). I'll assume this is just a typo, and you meant</div>
<div style><br></div><div style><span style="font-family:arial,sans-serif;font-size:13px">{ …</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">  “extensions”: {</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px">    “entry_points” : {</span><br><span style="font-size:13px;font-family:arial,sans-serif">      “sqlalchemy.dialects” : [ “mysql = sqlalchemy_mysql:base.dialect”</span><span style="font-size:13px;font-family:arial,sans-serif">] ,</span></div>
<div style><font face="arial, sans-serif">      ...<br></font><span style="font-family:arial,sans-serif;font-size:13px">    }</span><br style="font-family:arial,sans-serif;font-size:13px">  }<br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">}</span><br style="font-family:arial,sans-serif;font-size:13px"></div><div style><br></div><div style>5. What's the logic for having the values (I don't see a good term for these - the "mysql = ..." bit above) be a structured string that the user has to parse? Either it should be completely free format (which I suspect makes it of limited use for introspection, if nothing else) or it should be broken up into JSON - no point in having a blob of data that needs parsing in the middle of an already structured format!</div>
<div style><br></div><div style>Paul</div></div></div></div>