def import_frequencies(cls, directory): from Trip import Trip try: f = open(os.path.join(directory, 'frequencies.txt'), 'rb') reader = csv.reader(f) mappings = {'trip_id': ('trip_route', lambda x: Trip.get_by_gtfs_id(x).trip_route), 'start_time': ('start', lambda x: x), 'end_time': ('end', lambda x: x), 'headway_secs': ('headway', 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 frequency frequency = Frequency(**kw) trip_route = frequency.trip_route.frequencies.append(frequency) except IOError, e: print >> sys.stderr, 'Unable to open frequencies.txt:', e