def get_stop_by_id(id): data = get_data_from_json(INFO_URL % quote(id)) stop = Stop( data["id"], data["name"], float(data["latitude"]), float(data["longitude"]), data["city"], ) stopPoints = [] for i in data["stopPoints"]: stopPoint = StopPoint(i["name"]) routes = [] stopPoint.setId(int(search("[0-9]+$", i["id"]).group())) for j in i["routes"]: route = Route(j["name"], j["line"]["name"]) add = False if route.getLineName() in LINE_TRANSLATE: line_id = LINE_TRANSLATE[route.getLineName()] add = True else: try: line_id = search("[0-9]+$", route.getLineName()).group() except AttributeError: continue line_id = "%02d" % int(line_id) for i in LINE_TYPES: if route.getLineName()[0:len(i)] == i: add = True break if add: route.setId(line_id) routes.append(route) stopPoint.setRoutes(routes) if stopPoint.getRoutes() != []: stopPoints.append(stopPoint) stop.setStopPoints(stopPoints) return stop