PittAPI icon indicating copy to clipboard operation
PittAPI copied to clipboard

An API to easily get data from the University of Pittsburgh

Pitt API

|Build Status| |License GPLv2| |Python >= 3.6|

Made by Ritwik Gupta at the University of Pittsburgh in an effort to get more open data from Pitt.

Usage examples

.. code:: python

from PittAPI import course, dining, lab, laundry, library, news, people, shuttle, textbook

### Courses
# Will return a list of dictionaries containing courses in subject
cs_subject = course.get_term_courses(term='2194', subject='CS')
cs_course = cs_subject['1501']
cs_section_list = cs_course.sections
big_dict = cs_section_list[0].to_dict()

### Textbook
# Will return a list of dictionaries containing textbooks for a class
# term number comes from pitt.verbacompare.com
small_dict = textbook.get_textbook(term="3150", department="CS", course="445", instructor="RAMIREZ")

### Library
# Will return a dictionary containing results from query
big_dict = library.get_documents(query="computer")

### News
# Will return a list of dictionaries containing news from main news feed
medium_dict = news.get_news()

### 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")

### Shuttle
# Will return a list of dictionaries containing routes of shuttles
big_dict = shuttle.get_routes()

### People
# Will return a list of people based on the query
list_of_peeps = people.get_person(query="Smith")

### 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("taco_bell-schenley_cafe")
two = dining.get_location_by_name("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.

License

This project is licensed under the terms of the GPLv2 license <LICENSE>__.

.. |Build Status| image:: https://travis-ci.org/Pitt-CSC/PittAPI.svg?branch=master :target: https://travis-ci.org/Pitt-CSC/PittAPI .. |License GPLv2| image:: https://img.shields.io/badge/license-GPLv2-blue.svg :target: LICENSE .. |Python >= 3.6| image:: https://img.shields.io/badge/python-%3E%3D%203.6-green