def __init__(self, key, stations_file, expires_seconds=60, max_trains=10, max_minutes=30, threaded=False): self._KEY = key self._MAX_TRAINS = max_trains self._MAX_MINUTES = max_minutes self._EXPIRES_SECONDS = expires_seconds self._THREADED = threaded self._stations = {} self._stops_to_stations = {} self._routes = {} self._read_lock = threading.RLock() self._FEED_URLS = self._init_feeds_key(key, self._FEED_URLS) # initialize the stations database try: with open(stations_file, 'rb') as f: self._stations = json.load(f) for id in self._stations: self._stations[id] = self._Station(self._stations[id]) self._stops_to_stations = self._build_stops_index(self._stations) except IOError as e: print 'Couldn\'t load stations file '+stations_file exit() self._update() if threaded: self.threader = _MtapiThreader(self, expires_seconds) self.threader.start_timer()