Skip to main content
2 of 5
Updated example.
Nathan Osman
  • 23.3k
  • 11
  • 61
  • 107

Stack.PY - A Python Module for Accessing the Stack Exchange 2.0 API

enter image description here

About

Stack.PY is based heavily on Stack.PHP and Stack.JS, taking the chained-method concept and applying it to Python. The end result is an extremely easy to use module, named stackpy:

from stackpy import API, Site

# Print the names of all Stack Exchange sites
for site in API.sites:
    print site['name']

# Grab the first question on Stack Overflow
print Site('stackoverflow').questions[0].title

Here are some of the other features you can expect from Stack.PY:

  • Caching: currently Stack.PY ships with an SQLite database backend (used for caching currently). By default, if no cache is set, Stack.PY creates an in-memory SQLite database to cache requests for the current session.
  • Full documentation: using a single command (see the README file) you can generate all of the documentation for the entire module - including an explanation for each parameter of every method.

Many more features are planned:

  • A test suite.
  • A series of examples (currently there is one really primitive example).
  • Full support for rate-limiting and the backoff response.

Stack.PY should run perfectly fine in Python 3k using 2to3.

License

Stack.PY is released under the MIT License.

Contact

I can be reached at [email protected].

Code

The code for Stack.PY is hosted here on Launchpad. You can check out the latest code using:

bzr init
bzr pull lp:stackpy

You can view the code online here.

Stack.PY uses distutils so you can install the module by running:

python setup.py install

...or... if you are using Ubuntu, you can add my PPA and install the appropriate package:

sudo apt-get install python-stackpy (for Python 2k)
sudo apt-get install python3-stackpy (for Python 3k)

Nathan Osman
  • 23.3k
  • 11
  • 61
  • 107