Mercurial > hg > config
annotate python/address.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 | 
| parents | f3ab51c79813 | 
| children | 
| rev | line source | 
|---|---|
| 0 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 1 #!/usr/bin/python | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 2 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 3 import sys | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 4 from states import * | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 5 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 6 def validate_zipcode(zip, zip4=None): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 7 """ validate a zipcode""" | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 8 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 9 if not zip: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 10 # a non-existant zip-code is a valid zipcode | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 11 # ... i think.... | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 12 return True | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 13 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 14 if '-' in zip: # in this case, split zip into zip5 + zip4 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 15 zip, zip4 = zip.split('-') | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 16 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 17 zdict = { 'zip5': zip, 'zip4': zip4 } | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 18 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 19 # if the 4-digit extension exists, add it to zip | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 20 if zip4: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 21 zip += '-' + zip4 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 22 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 23 # validate zip code format | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 24 for i in 5, 4: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 25 zstring = 'zip' + str(i) | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 26 z = zdict.get(zstring, '') | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 27 if z: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 28 if (not z.isdigit()) or (len(z) != i): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 29 return False | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 30 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 31 return zip | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 32 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 33 def normalizeaddress(query): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 34 """ returns normalize address, if it is an address """ | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 35 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 36 # normalize the address | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 37 query = ','.join([i.strip() for i in query.split('\n')]) | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 38 querylist = [i.strip() for i in query.split(',')] | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 39 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 40 lastentry = querylist[-1] | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 41 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 42 if lastentry[-1].isdigit(): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 43 # it must be a zip code | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 44 if lastentry[1].isalpha(): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 45 querylist = querylist[:-1] + lastentry.split() | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 46 if not validate_zipcode(querylist[-1]): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 47 return False | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 48 state = querylist[-2] | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 49 else: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 50 state = querylist[-1] | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 51 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 52 if not getstate(state): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 53 return False | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 54 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 55 return ', '.join(querylist) | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 56 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 57 def address(query): | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 58 """ | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 59 format an address | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 60 -- query should be a string | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 61 """ | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 62 | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 63 if __name__ == '__main__': | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 64 i = normalizeaddress(' '.join(sys.argv[1:])) | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 65 if i: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 66 print i | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 67 else: | 
| 
f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
 k0s <k0scist@gmail.com> parents: diff
changeset | 68 print 'Not an address' | 
