Skip to content
This repository was archived by the owner on Nov 18, 2021. It is now read-only.

timlehr/pypiparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPiParser

Build Status

Simple PyPI Package Index parser for index servers without XML / JSON API.

Note: It's still very much a prototype and missing a lot of potentially cool features, since I wrote it with a specific project need in mind.

Installation

via PIP

pip install pypiparser

Usage

from pypiparser import PackageIndex

# create an index object to work with
index = PackageIndex("http://pypi.example.com")

# get simple index url / base url
print index.index_url
""" Result: http://pypi.example.com/simple """ 

# check if a package is available on the index
print index.provides_package("pyside2")
""" Result: True """

# get all available package versions from index
print index.get_all_versions("pyside2")
""" Result: 
[<'pyside2' (Wheel, v5.9.0a1.dev1527518830, '<PackageIndex, 'http://pypi.example.com'>')>, 
<'pyside2' (Wheel, v5.9.0a1.dev1527519010, '<PackageIndex, 'http://pypi.example.com'>')>, 
<'pyside2' (Wheel, v5.9.0a1.dev1527519532, '<PackageIndex, 'http://pypi.example.com'>')>, 
<'pyside2' (Wheel, v5.9.0a1.dev1527520114, '<PackageIndex, 'http://pypi.example.com'>')>, 
<'pyside2' (Wheel, v5.9.0a1.dev1527520119, '<PackageIndex, 'http://pypi.example.com'>')>, 
<'pyside2' (Wheel, v5.9.0a1.dev1527520955, '<PackageIndex, 'http://pypi.example.com'>')>] """


# get the newest compatible version with my setup (filter=True)
pkg = index.get_newest_version("pyside2", filter=True)
print pkg
""" Result: <'pyside2' (Wheel, v5.9.0a1.dev1527518830, '<PackageIndex, 'http://pypi.example.com'>')> """ 

# access metadata
print pkg.distribution
print pkg.version
""" Result: 
pyside2
5.9.0a1.dev1527518830
""" 

# access metadata as dict
print pkg.as_dict()
""" Result: 
{'platform': u'linux_x86_64', 
'url': 'http://pypi.example.com/packages/PySide2-5.9.0a1.dev1527518830-5.9.6-cp27-cp27mu-linux_x86_64.whl#md5=d87921063a3701e16478b7e0c2b09012', 
'abi': u'cp27mu', 'python': u'cp27', 
'version': u'5.9.0a1.dev1527518830', 
'build': u'5.9.6', 'distribution': 'pyside2'}
""" 

Requirements

Todo

  • tarball / egg support

About

📦 Simple Python Package Index Parser

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages