Although PyPM Index was originally intended to be a frontend to browse/search for packages available in the ActivePython PyPM repository, it evolved as a general purpose site to find information about almost any Python package. Here are some of the things you can find only in PyPM Index:

  1. Author pages: Want to find the list of packages authored by a particular author? No problem. Looking for testing packages from an author? Possible. Authors with most number of packages? RSS feed of recent releases from an author? Yes!
  2. Build notification: Say you’re a package author, and you’ve released a new version of your pet project. It is entirely possible your release may be broken on one or more platforms. It could be because of something simple like: 
    • Forgetting to include vital files in the source (README.txt)
    • importing third-party modules in setup.py (mongokit, tyron)
    • Failing to build on Windows (obitools, pymeta)
    • Prompting for user input in setup.py (ete2)
     

    This can go on for several releases without the author knowing about it. PyMOTW is a notable example — every release till 1.124 was failing due to a missing directory. Doug Hellmann promptly fixed it upon being notified via Twitter. As he wondered at the time, we now make it possible to monitor failed builds for your package. You should see a link to the RSS feed of failing builds on the right sidebar of your package page.

  3. Packages using this: SQLAlchemy is an excellent ORM library for Python. I want to know the list of packages that use SQLAlchemy. Unless you have the metadata for all Python packages (like we do), this is impossible. With PyPM Index, this is of course possible.
  4. Optional dependencies: setuptools (Distribute) provides the dependency feature to Python packages; it also has support for optional dependencies (aka. extras). This information is available in PyPM Index too. (example – the optional dependencies are shown in light grey).

Future Features?

These are some of the features that you may see being integrated into PyPM Index in the near future:

  • Improved build notification: Include missing packages (e.g. ones that don’t make it to the build stage because of a failed dependency) and provide a consolidated per-author RSS feed.
  • Build diagnosis: Report on exactly why a build is failing or a package is missing. Our home-grown Python package mirror (a superset of PyPI) does have this information, but it is not yet exposed to PyPM Index.
  • Imports: Be able to find which package provides the given import. Eg: MySQLdb is provided by mysql-python. Detect import conflicts, i.e., multiple packages abusing^Wproviding the same import.

If you are a package author (or user) and wish to see something more in PyPM Index, please let us know by either posting in the community forum or by directly sending an email to activepython-feedback@activestate.com.
Title image courtesy of Sipa on Pixabay.