Pitt API
Made by Ritwik Gupta at the University of Pittsburgh in an effort to get more open data from Pitt.
Usage examples
from PittAPI import course, laundry, lab, dining
### Courses
# Will return a list of dictionaries containing courses in subject
big_dict = course.get_courses(term="2177", code="CS")
# Will return a list of dictionaries containing courses that fulfill requirement
big_dict = course.get_course(term="2177", code="Q")
# Will return a dictionary with a details about the class
description = course.get_class(term="2177", class_number="10163")
### Laundry
# Will return a dictionary with amount of washers and dryers
# in use vs. total washers and dryers at building
small_dict = laundry.get_status_simple(building_name="TOWERS")
### Computer Lab
# Will return a dictionary with status of the lab, and amount
# of machines with a certain OS
small_dict = lab.get_status(lab_name="ALUMNI")
### Dining
# Will return a dictionary of dictionaries containing each dining location,
# with its name, its open/closed status, and open times (if it exists)
medium_dict = dining.get_locations()
medium_dict = dining.get_locations_by_status(status="open")
medium_dict = dining.get_locations_by_status(status="closed")
# Will return a single dictionary of a dining location,
# with its name, its open/closed status, and open times (if it exists)
one = dining.get_location_by_name(u"taco_bell-schenley_cafe")
two = dining.get_location_by_name(u"cup_&_chaucer-hillman")
Tests
Run tests with python3 -m "nose" --with-coverage --cov PittAPI/ --with-timer tests/*
.
If your python -v
is 3+, replace python3
with python
.
TODO
- Make the laundry detailed method work
- Test the computer lab status API and make it return a dictionary
- Working on the DiningAPI
- Have the DiningAPI return a dict instead of a list
- Have a separate method for
get_locations_by_status
andget_locations
-
get_locations_by_status
is what is currently implemented -
get_locations
is the same as what is currently implemented with no arguments- but with a good-looking dictionary
-
- Implement the
get_location_by_name
method - Implement the
get_location_menu
method - Implement the helper methods
_encode_location
and_decode_location
- Change all string processing to unicode (dropped Py2.7 support, fixed 😄)
License
This project is licensed under the terms of the GPLv2 license.