Skip to main content

Python tools for building Penn-related applications

Project description

https://badge.fury.io/py/PennSDK.png https://pypip.in/d/PennSDK/badge.png https://travis-ci.org/pennlabs/penn-sdk-python.svg

Penn SDK is the Python library for writing code that interfaces with University of Pennsylvania data. It consists of wrappers for the Registrar, Dining, and Directory API’s

Getting an API key

To use these libraries, you must first obtain an API token and password, which can be done here. There are separate API tokens and password for each of dining, registrar, news/events/maps, transit, and directory.

There is also a Laundry API, which doesn’t need a key.

Documentation

The full API documentation can be found at https://esb.isc-seo.upenn.edu/8091/documentation/.

Documentation for the wrapper can be found at http://penn-sdk.readthedocs.org/

Getting Started

Once you have an API token and Password, you can use the wrapper as follows.

from penn import Registrar

REG_USERNAME = 'MY_REGISTAR_USERNAME'
REG_PASSWORD = 'MY_REGISTRAR_PASSWORD'

r = Registrar(REG_USERNAME, REG_PASSWORD)

cis120 = r.course('cis', '120')

# cis120 is a dictionary parsed from the API json
my_data = cis120['result_data']

All of the different services follow this same basic format, save the Laundry API, which doesn’t need a username and password passed in at initialization. Refer to the wrapper documentation at http://penn-sdk.readthedocs.org/ for more info.

Running Tests

Once you have an API token and password, you can run the tests by creating a tests/credentials.py file with them as constants. Depending on what you want to test, include the following variables. They will be retrieved from your environment variables by default.

REG_USERNAME = 'MY_REGISTAR_USERNAME'
REG_PASSWORD = 'MY_REGISTAR_PASSWORD'

DIN_USERNAME = 'MY_DINING_USERNAME'
DIN_PASSWORD = 'MY_DINING_PASSWORD'

DIR_USERNAME = 'MY_DIRECTORY_USERNAME'
DIR_PASSWORD = 'MY_DIRECTORY_PASSWORD'

TRANSIT_USERNAME = 'MY_DIRECTORY_USERNAME'
TRANSIT_PASSWORD = 'MY_DIRECTORY_PASSWORD'

Then run make test to run all tests in your shell.

Contributing & Bug Reporting

If you find a bug, please submit it through the GitHub issues page.

Pull requests are welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PennSDK-1.1.tar.gz (7.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page