Re: Converting PyPI to feeds
Thomas Leonard <[email protected]> Wed, 3 May 2017 20:09:06 +0100
| Newsgroups | gmane.comp.file-systems.zero-install.devel |
|---|---|
| Message-ID | <CAG4opy-nL5c_zXMaZhLkQPiWZVcQuf7LhoO5Hux8hfS3z_TYtQ@mail.gmail.com> |
On 2 May 2017 at 15:06, Tim Diels <[email protected]> wrote: > Dear all, > > An update on the PyPI to 0install conversion + feature request: > > I've got most of the support for Python source distributions implemented but > it turns out some important packages (e.g. numpy) only provide wheels (a > type of binary package). Some wheels need to match the ABI of the Python > interpreter (to name just one constraint). Ideally the wheel with the most > specific ABI and architecture that matches the selected interpreter is used. > I plan to implement this as follows as a temporary solution to try things > out: > > - python.xml: manually written feed containing CPython, PyPy, ... > > <implementation ...> > <require interface="python_abi.xml" version="0|1|2|4|..."> > ... > > - python_abi.xml: manually written > <implementation id='py3_3' version='2'/> > <implementation id='py3' version='1'/> > <implementation id='none' version='0'/> > ... > > - some_wheel.xml > <impl> > <require interface=python_abi.xml version="1|2"> > > Versions encode ABI names such as 'py3'. Version numbers are chosen such > that more specific ABIs will be chosen when possible. The ABI > implementations are empty as they only serve to constrain which > implementations may be selected. The Python implementation provides ABIs > py3_3, py3 and the special 'none' for those wheels which do not care about > the ABI. > > When moving on from a temporary solution, it would be useful to have a way > of defining a property, its values, an ordering between values and requiring > properties. Currently these values needn't form a hierarchy. So for example: > > - property.xml > <value>py3_3</value> <!-- plus a way to express ordering of values, > perhaps simply the order in which they appear in the xml --> > <value>py3</value> > > - python.xml > <implementation ...> > <require property="property.xml" value="py3_3|py3|..."> > ... > > Or put yet another way, it's a classification with an ordering that can be > depended on with <requires>. Related: http://zero-install-devel.narkive.com/9Iijv2KE/linkage-feature -- talex5 (GitHub/Twitter) http://roscidus.com/blog/ GPG: 5DD5 8D70 899C 454A 966D 6A51 7513 3C8F 94F6 E0CC ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot