def address_lookup(**kwargs):
    print 'Trying USPS first...'
    address = usps.usps_address_lookup(**kwargs)
    if address['city'] is not '' and address['state'] is not '':
        return address
    print 'Falling back to geolocation...'
    try:
        lat, lng = geolocate(**kwargs)
        return reverse_geolocate(lat, lng).address()
    except:
        return None
Пример #2
0
def address_lookup(**kwargs):

    try:
        print 'Trying USPS first...'
        address = usps.usps_address_lookup(**kwargs)
        if address['city'] is not '' and address['state'] is not '':
            return address
        print 'Falling back to geolocation...'
        lat, lng = geolocate(**kwargs)
        return reverse_geolocate(lat, lng).address()
    except:
        return None
def zip4_lookup(street_address, city, state, zip5=''):
    # First try usps lookup because it doesn't eat up geolocation credits
    try:
        print "Trying USPS first"
        zip5, zip4 = usps.usps_zip_lookup(street_address, city, state, zip5)
        if zip4 is not None:
            return zip4
    except:
        print "Error scraping from USPS ... moving on to geocoding"

    # If USPS is unable to determine zip4 then use geolocation method
    print "Falling back to geolocation"
    try:
        lat, lng = geolocate(street_address=street_address, city=city, state=state, zip5=zip5)
        return reverse_geolocate(lat, lng).zip4()
    except: # Give up. User must enter in their zip4 manually.
        return None
def determine_district(**kwargs):
    sunlight.config.API_KEY = settings.SUNLIGHT_API_KEY

    if {'latitude', 'longitude'}.issubset(set(kwargs)):
        data = sunlight.congress.locate_districts_by_lat_lon(kwargs.get('latitude'), kwargs.get('longitude'))
    elif 'zip5' in kwargs:
        data = sunlight.congress.locate_districts_by_zip(kwargs.get('zip5'))
        if data.count > 1 and {'street_address', 'city', 'state'}.issubset(set(kwargs)):
            lat, lng = geolocate(street_address=kwargs.get('street_address'),
                                 city=kwargs.get('city'),
                                 state=kwargs.get('state'),
                                 zip5=kwargs.get('zip5'))
            data = sunlight.congress.locate_districts_by_lat_lon(lat,lng)
        else:
            return None
    else:
        raise KeyError('Must provide appropriate keyword arguments')

    return data[0]['district']
Пример #5
0
def zip4_lookup(street_address, city, state, zip5=''):
    # First try usps lookup because it doesn't eat up geolocation credits
    try:
        print "Trying USPS first"
        zip5, zip4 = usps.usps_zip_lookup(street_address, city, state, zip5)
        if zip4 is not None:
            return zip4
    except:
        print "Error scraping from USPS ... moving on to geocoding"

    # If USPS is unable to determine zip4 then use geolocation method
    print "Falling back to geolocation"
    try:
        lat, lng = geolocate(street_address=street_address,
                             city=city,
                             state=state,
                             zip5=zip5)
        return reverse_geolocate(lat, lng).zip4()
    except:  # Give up. User must enter in their zip4 manually.
        return None
def determine_district(**kwargs):
    sunlight.config.API_KEY = settings.SUNLIGHT_API_KEY

    if {'latitude', 'longitude'}.issubset(set(kwargs)):
        data = sunlight.congress.locate_districts_by_lat_lon(
            kwargs.get('latitude'), kwargs.get('longitude'))
    elif 'zip5' in kwargs:
        data = sunlight.congress.locate_districts_by_zip(kwargs.get('zip5'))
        print data
        if data is not None and len(data) > 1 and {
                'street_address', 'city', 'state'
        }.issubset(set(kwargs)):
            lat, lng = geolocate(street_address=kwargs.get('street_address'),
                                 city=kwargs.get('city'),
                                 state=kwargs.get('state'),
                                 zip5=kwargs.get('zip5'))
            data = sunlight.congress.locate_districts_by_lat_lon(lat, lng)
    else:
        raise KeyError('Must provide appropriate keyword arguments')

    try:
        return data[0]
    except:
        return None