pybart
Real time BART (Bay Area Rapid Transit) information in your terminal!
Features
- Real time estimates and service advisories
- Curses-based TUI with auto-refreshing and resizing
- View multiple stations at the same time
- Colors indicating transit lines, estimate times, and train lengths
- Ability to configure a default set of stations
- Other non-TUI commands like opening a map and getting the fare for a trip
- Includes a low-level Python wrapper for the full BART API
- No dependencies; built with only standard libraries
Requirements
- Python 2.6+ or Python 3.0+ with the
curses
module installed (i.e. not Windows) - Terminal with 256 color support to correctly display the Richmond-Fremont
line as orange (magenta otherwise)
- Note: this usually involves setting the
TERM
environment variable toxterm-256color
- Note: this usually involves setting the
Installation
pip install pybart
Usage
usage: bart [-h] [-v] {map,list,est,fare} ... Display real time BART estimates. optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit commands: {map,list,est,fare} map open station map in web browser list show list of stations and their abbreviations est display estimates for specified stations fare show fare for a trip between two stations examples: bart get estimates for $BART_STATIONS bart map open station map bart list list all stations bart est mcar get estimates for MacArthur station bart est embr cols get estimates for Embarcadero and Coliseum stations bart fare conc sfia get fare for a trip between Concord and SFO stations
Configuration
The following (optional) environment variables can be used to configure pybart:
-
BART_STATIONS
- a comma-separated string (e.g.mcar,embr,cols
) specifying the default stations to use when runningbart
with no arguments. -
BART_API_KEY
- the BART API key to use when fetching information. A public one is used by default, but you can get your own here.
API
Even though it doesn't use everything, pybart includes a low-level Python
wrapper for the full
BART API with
pybart.api.BART
. Every call returns the root element of the XML response
using
ElementTree.
Example usage:
>>> from pybart.api import BART >>> bart = BART() # Uses the public API key by default >>> root = bart.stn.stninfo('dbrk') >>> station = root.find('stations').find('station') >>> print(station.find('address').text + ', ' + station.find('city').text) 2160 Shattuck Avenue, Berkeley >>> print(bart.version().find('apiVersion').text) 3.00