def get_coordinates(self, t):
     try:
         bbl = t[0]
         address = t[1]  # Normalizer.set_address(t[1], bbl)
         lat, lon, full_address = self.geo.search_nominatim(address)
         time.sleep(0.2)
         if lat is None:
             raise ValueError
         num = CsvManager.read_progress() + 1
         CsvManager.write_progress(num)
         return (bbl, t[1], full_address.encode("utf-8"), lon, lat, 1), num
     except ValueError:
         self.error_log.open()
         self.error_log.write(t[1] + ", " + str(t[0]))
         self.error_log.close()
         NominatimGeocode.print_status(" Lat, Long not found ")
         time.sleep(1)
         return -1, False
     except (GeocoderTimedOut, GeocoderServiceError) as e:
         self.error_log.open()
         self.error_log.write(e.message)
         self.error_log.close()
         NominatimGeocode.print_status(e.message)
         time.sleep(1)
         return -2, False
     except KeyboardInterrupt:
         NominatimGeocode.print_status(" Stopped ")
         time.sleep(1)
         return -3, False
 def geocode_process(self, t, geocode):
     re, num = geocode.get_coordinates(t)
     if num:
         CsvManager.append_geo_codes([re], self.output)
         self.progress.update_progress(num)
     else:
         val = CsvManager.read_progress()
         self.progress.update_progress(val+1)
     return re, num
 def preprocess(self):
     tuples = CsvManager.read(self.input)
     num = CsvManager.read_progress()
     print num
     if num == 0:
         CsvManager.write_geo_codes([], self.output)
         CsvManager.write_progress('0')
     self.progress.set_size(len(tuples))
     self.progress.update_progress(num)
     Normalizer.set_tuple(num, tuples)
     return tuples
    def get_coordinates(self, t):
        try:
            bbl = t[0]
            address = t[1]# Normalizer.set_address(t[1], bbl)
            lon, lat, full_address = self.geo.search_dao(address, t[0])
            if lat is None:
                raise ValueError
            TIGERGeocode.print_status(" TIGER")
            num = CsvManager.read_progress()+1
            CsvManager.write_progress(num)
            return (bbl, t[1], full_address.encode('utf-8'), lon, lat, 4), num
        except ValueError:
            self.error_log.open()
            self.error_log.write(t[1]+", "+str(t[0]))
            self.error_log.close()
            TIGERGeocode.print_status(" Lat, Long not found ")
            return -1, False

        except KeyboardInterrupt:
            TIGERGeocode.print_status(" Stopped ")
            return -3, False