def import_routes(cls, directory): try: f = open(os.path.join(directory, 'routes.txt'), 'rb') reader = csv.reader(f) mappings = {'agency_id': ('agency', lambda x: Agency.get_by_gtfs_id(x)), 'route_short_name': ('short_name', lambda x: x), 'route_long_name': ('long_name', lambda x: x), 'route_desc': ('description', lambda x: x), 'route_type': ('route_type', lambda x: int(x)), 'route_url': ('url', lambda x: x), 'route_color': ('color', lambda x: x), 'route_text_color': ('text_color', lambda x: x), } # create a headers with an index headers = reader.next() r_headers = dict([(x, i) for i, x in enumerate(headers)]) for l2 in reader: if len(l2) != len(headers): print >> sys.stderr, 'Invalid line', l2, headers continue kw = {} for i, a in enumerate(l2): key = headers[i] if key in mappings: kw[mappings[key][0]] = mappings[key][1](BaseObject.unquote(a)) # create the route route = Route(**kw) # set the id route.gtfs_id = BaseObject.unquote(l2[r_headers['route_id']]) except IOError, e: print >> sys.stderr, 'Unable to open routes.txt:', e