<p dir="ltr">I can accept a rename but there is no way to avoid having 2 names not 1 new name for the feature.</p>
<p dir="ltr">We go halfway now. The next version can go any other way.</p>
<div class="gmail_quote">On Feb 25, 2013 12:23 PM, "Vinay Sajip" <<a href="mailto:vinay_sajip@yahoo.co.uk">vinay_sajip@yahoo.co.uk</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Nick Coghlan <ncoghlan <at> <a href="http://gmail.com" target="_blank">gmail.com</a>> writes:<br>
<br>
> The other area where I think such an "embedded JSON" approach could<br>
> work is coming up with a clean format for an Entry-Points field.<br>
> Specifically, I am thinking of proposing the setuptools.setup<br>
> inspired:<br>
><br>
>     Entry-Points: {<br>
>         "console_scripts": {<br>
>             "foo": "my_package.some_module:main_func",<br>
>             "bar": "other_module:some_func"<br>
>         },<br>
>         "gui_scripts": {<br>
>             "baz": "my_package_gui.start_func"<br>
>         }<br>
>     }<br>
><br>
<br>
What is the reason for this half-way-house, rather than going straight to JSON?<br>
I suppose one could argue backward compatibility, but since we are moving quite<br>
a distance from a plain old key-value here, we may as well embrace JSON properly.<br>
Perhaps we should embrace the dict rather than any specific file format, as I<br>
did with dictConfig in logging.<br>
<br>
Note that distlib already supports entry points, though these are called<br>
"exports" because they may or may not be callable code. (The name "exports"<br>
was suggested by PJE and, IMO, is better/more general than "entry points").<br>
<br>
For example, for Babel-0.9.6:<br>
<br>
  "exports": {<br>
    "babel.extractors": [<br>
      "ignore = babel.messages.extract:extract_nothing",<br>
      "python = babel.messages.extract:extract_python",<br>
      "javascript = babel.messages.extract:extract_javascript"<br>
    ],<br>
    "distutils.commands": [<br>
      "compile_catalog = babel.messages.frontend:compile_catalog",<br>
      "extract_messages = babel.messages.frontend:extract_messages",<br>
      "init_catalog = babel.messages.frontend:init_catalog",<br>
      "update_catalog = babel.messages.frontend:update_catalog"<br>
    ],<br>
    "babel.checkers": [<br>
      "num_plurals = babel.messages.checkers:num_plurals",<br>
      "python_format = babel.messages.checkers:python_format"<br>
    ],<br>
    "distutils.setup_keywords": [<br>
      "message_extractors = babel.messages.frontend:check_message_extractors"<br>
    ],<br>
    "scripts": {<br>
      "console": [<br>
        "pybabel = babel.messages.frontend:main"<br>
      ]<br>
    }<br>
  }<br>
<br>
This is currently used, for example, in distlib's script generation logic (for<br>
example, to generate the pybabel script for Babel).<br>
<br>
Regards,<br>
<br>
Vinay Sajip<br>
<br>
_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/distutils-sig" target="_blank">http://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</blockquote></div>