Exemplo n.º 1
0
def load_park_district_courts(csv_file):
    rows = CSVKitReader(csv_file)
    patterns = {
        'FACILITY NAME': 'BASKETBALL',
    }
    # HACK: More human-readable indexes into fields in the rows of
    # the CSV file.  Maybe there's a DictReader subclass that let's one
    # index by column name, or a method of ``CSVKitReader`` that
    # resolves column indexes from their names
    name_index = 0
    number_index = 1 
    facility_name_index = 2
    facility_type_index = 3
    location_index = 6

    filter_reader = FilteringCSVReader(rows, patterns=patterns, header=True)
    filter_reader.next() # Skip header

    for row in filter_reader:
        lat, lng = split_location(row[location_index])
        court = ParkDistrictCourt(
            name=row[name_index],
            point=[lng, lat],
            official_name=row[name_index],
            park_num=row[number_index],
            facility_name=row[facility_name_index],
            facility_type=row[facility_type_index],
        )
        court.save()
Exemplo n.º 2
0
 def test_no_header(self):
     fcr = FilteringCSVReader(iter(self.tab1),patterns={ 2: 'only' },header=False)
     self.assertEqual(self.tab1[2],fcr.next())
     self.assertEqual(self.tab1[3],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 3
0
 def test_mixed_indices_and_column_names_in_patterns(self):
     fcr = FilteringCSVReader(iter(self.tab2),patterns = {'age': 'only', 0: '2'})
     self.assertEqual(self.tab2[0],fcr.next())
     self.assertEqual(self.tab2[4],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 4
0
 def test_no_header(self):
     fcr = FilteringCSVReader(iter(self.tab1),patterns={ 2: 'only' },header=False)
     self.assertEqual(self.tab1[2],fcr.next())
     self.assertEqual(self.tab1[3],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 5
0
 def test_inverse(self):
     fcr = FilteringCSVReader(iter(self.tab2), patterns=['1'], inverse=True)
     self.assertEqual(self.tab2[0], fcr.next())
     self.assertEqual(self.tab2[2], fcr.next())
     self.assertEqual(self.tab2[4], fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 6
0
 def test_pattern(self):
     fcr = FilteringCSVReader(iter(self.tab1), patterns=['1'])
     self.assertEqual(self.tab1[0], fcr.next())
     self.assertEqual(self.tab1[1], fcr.next())
     self.assertEqual(self.tab1[4], fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 7
0
 def test_inverse(self):
     fcr = FilteringCSVReader(iter(self.tab2),patterns = ['1'], inverse=True)
     self.assertEqual(self.tab2[0],fcr.next())
     self.assertEqual(self.tab2[2],fcr.next())
     self.assertEqual(self.tab2[4],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 8
0
 def test_pattern(self):
     fcr = FilteringCSVReader(iter(self.tab1),patterns=['1'])
     self.assertEqual(self.tab1[0],fcr.next())
     self.assertEqual(self.tab1[1],fcr.next())
     self.assertEqual(self.tab1[4],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass
Exemplo n.º 9
0
    def test_regex(self):
        pattern = re.compile(".*(Reader|Tribune).*")
        fcr = FilteringCSVReader(iter(self.tab1), patterns={1: pattern})

        self.assertEqual(self.tab1[0], fcr.next())
        self.assertEqual(self.tab1[1], fcr.next())
        self.assertEqual(self.tab1[3], fcr.next())
        self.assertEqual(self.tab1[4], fcr.next())
        try:
            fcr.next()
            self.fail("Should be no more rows left.")
        except StopIteration:
            pass
Exemplo n.º 10
0
 def test_regex(self):
     pattern = re.compile(".*(Reader|Tribune).*")
     fcr = FilteringCSVReader(iter(self.tab1),patterns = { 1: pattern })
     
     self.assertEqual(self.tab1[0],fcr.next())
     self.assertEqual(self.tab1[1],fcr.next())
     self.assertEqual(self.tab1[3],fcr.next())
     self.assertEqual(self.tab1[4],fcr.next())
     try:
         fcr.next()
         self.fail("Should be no more rows left.")
     except StopIteration:
         pass