[Distutils] [Python-Dev] distlib updated with resources API

Daniel Holth dholth at gmail.com
Sun Sep 30 07:33:25 CEST 2012


Why not just let any line in pkg-info that starts with json/tag name: decode as json.

On Sep 30, 2012, at 1:03 AM, Donald Stufft <donald.stufft at gmail.com> wrote:

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


More information about the Distutils-SIG mailing list