def test4_resolve(self): r = redis.Redis(self.redisHost, self.redisPort, self.redisDB) #resolve by coords loc = City.getByLatLon(34.05223, -118.24368, r) self.assertTrue(loc is not None) self.assertTrue(loc.country == 'United States') self.assertTrue(loc.state == 'CA' or loc.state == 'California') #resolve by ip ip = '4.3.68.1' loc = IPRange.getCity(ip, r) self.assertTrue(loc is not None) self.assertTrue(loc.country == 'United States') self.assertTrue(loc.state == 'CA' or loc.state == 'California') #resolve zip by lat,lon loc = ZIPCode.getByLatLon(34.0452, -118.284, r) self.assertTrue(loc is not None) self.assertTrue(loc.name == '90006') self.assertTrue(loc.country == 'United States') self.assertTrue(loc.state == 'CA' or loc.state == 'California') #resolve zip bu ip loc = IPRange.getZIP(ip, r) self.assertTrue(loc is not None) self.assertTrue(loc.name == '90001') self.assertTrue(loc.country == 'United States') self.assertTrue(loc.state == 'CA' or loc.state == 'California')
def getZIP(ip, redisConn): """ Get a zipcode location object based on an IP will return None if you are outside the US """ range = IPRange.get(ip, redisConn) if not range or not re.match('^[0-9]{5}$', range.zipcode): return None return ZIPCode.load('ZIPCode:%s' % range.zipcode, redisConn)
class ZIPImporter(Importer): def runImport(self): """ old File Format: "00210","Portsmouth","NH","43.005895","-71.013202","-5","1" new Format: 1316,"US","CA","Sunnyvale","94085",37.3887,-122.0188,807,408 1317,"US","CA","Morgan Hill","95037",37.1747,-121.6518,807,408 """ try: fp = open(self.fileName) except Exception, e: logging.error("could not open file %s for reading: %s" % (self.fileName, e)) return False reader = csv.reader(fp, delimiter=',', quotechar='"') pipe = self.redis.pipeline() i = 0 for row in reader: try: name = row[4] city = row[3] stateCode = row[2] lat = float(row[5]) lon = float(row[6]) state = row[2] #stateCode#code_to_state.get(stateCode, '').title() country = row[1] loc = ZIPCode(name=name, city=city, country=country, state=state, lat=lat, lon=lon) loc.save(pipe) except Exception, e: logging.error("Could not import line %s: %s" % (row, e)) i += 1 if i % 1000 == 0: pipe.execute()
class ZIPImporter(Importer): def runImport(self): """ File Format: "00210","Portsmouth","NH","43.005895","-71.013202","-5","1" """ try: fp = open(self.fileName) except Exception, e: logging.error("could not open file %s for reading: %s" % (self.fileName, e)) return False reader = csv.reader(fp, delimiter=',', quotechar='"') pipe = self.redis.pipeline() i = 0 for row in reader: try: name = row[0] city = row[1] stateCode = row[2] lat = float(row[3]) lon = float(row[4]) state = stateCode #code_to_state.get(stateCode, '').title() country = 'US' loc = ZIPCode(name=name, city=city, country=country, state=state, lat=lat, lon=lon) loc.save(pipe) except Exception, e: logging.error("Could not import line %s: %s" % (row, e)) i += 1 if i % 1000 == 0: pipe.execute()
def resolveCoords(lat, lon): global redis_host, redis_port, redis_db r = redis.Redis(host = redis_host, port = redis_port, db = redis_db) loc = ZIPCode.getByLatLon(lat, lon, r) print loc
def resolveCoords(lat, lon): global redis_host, redis_port, redis_db r = redis.Redis(host=redis_host, port=redis_port, db=redis_db) loc = ZIPCode.getByLatLon(lat, lon, r) print loc
def resolveCoords(lat, lon): global redis_host, redis_port, redis_db loc = ZIPCode.getByLatLon(lat, lon, r) print loc