<div>
                    I have some unpublished work I should publish.
                </div><div><br></div><div>Part of the point with what i'm trying to do is to define a standard for what is inside</div><div>a package, but not really for how you take a particular set of files and turn it into</div><div>that. So if you want to edit yaml you can have a yaml file and have a package</div><div>creation tool that turns that yaml into the standard json that gets added to the</div><div>package. The same can be said for a python file or a setup.cfg or whatever. Ideally</div><div>the roles of package creation, building, and installation should be able to be completely</div><div>separate. So my goal is to facilitate that by creating a standard way to describe</div><div>all the data about a distribution, including extensible data in a way that any tool</div><div>can serialize or deserialize it losslessly.</div><div><br></div><div><br></div>
                <div></div>
                 
                <p style="color: #A0A0A8;">On Saturday, September 29, 2012 at 5:54 AM, Vinay Sajip wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div>Nick Coghlan <ncoghlan <at> <a href="http://gmail.com">gmail.com</a>> writes:</div><div><br></div><div><br></div><blockquote type="cite"><blockquote type="cite"><div>The document has changed since then,</div></blockquote></blockquote><div><a href="http://python-notes.boredomandlaziness.org/en/latest/pep_ideas/core_packaging_api.html">http://python-notes.boredomandlaziness.org/en/latest/pep_ideas/core_packaging_api.html</a></div><div><br></div><div>I read from your page there that Donald Stufft is working on a JSON-based</div><div>metadata format. I've been looking that the same thing - a more flexible</div><div>metadata format which directly maps to dicts - but I used YAML, as looking at</div><div>too much JSON gives me eye-strain from all the extraneous quotes and braces.</div><div><br></div><div>I believe that JSON is the right format to use at the moment, because</div><div>PyYAML still has some bugs which I've run into while doing this work (also,</div><div>of course, it's not in the stdlib). As the formats are readily</div><div>interchangeable, there might be interest here in looking at the package.yaml</div><div>that I've come up with.</div><div><br></div><div>Since the metadata needs to support both the existing metadata and the</div><div>additional things that e.g. setuptools supports via additional kwargs to</div><div>setup(), I put together an ugly hack where I essentially mocked parts of</div><div>distutils and setuptools, including the setup() call. This allows me to</div><div>generate the YAML format automatically from most distributions on PyPI, using</div><div>their setup.py.</div><div><br></div><div>Here's a GIST with sample package.yaml files automatically generated from PyPI</div><div>downloads of SQLAlchemy 0.7.8, Jinja2 2.6, Flask 0.9 and wheel 0.9.4.</div><div><br></div><div><a href="https://gist.github.com/3803556">https://gist.github.com/3803556</a></div><div><br></div><div>The JSON format of the metadata is actually appended as a comment on the last</div><div>line of the YAML metadata (I use that to report YAML bugs).</div><div><br></div><div>I've not yet documented the schema for the metadata, as I'm still thinking</div><div>about the details.</div><div><br></div><div>I ran my hack on around 18,000 PyPI releases (basically, all the latest</div><div>releases which are hosted on PyPI). For all but around 1300, I was</div><div>able to generate package.yaml files. The ones which failed are those where</div><div>no setup.py is present, or it's present, but can't be imported because it</div><div>assumes that some third-party package is available.</div><div><br></div><div>Comments welcome.</div><div><br></div><div>Regards,</div><div><br></div><div>Vinay Sajip</div><div><br></div><div>_______________________________________________</div><div>Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a></div><div><a href="http://mail.python.org/mailman/listinfo/distutils-sig">http://mail.python.org/mailman/listinfo/distutils-sig</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>