Omaha #3997 Create script for sites to use to compare AreaDictionary.py files

Change-Id: I0b76c40ffe70d1df9d9379deca4bdc0276a723fd

Former-commit-id: 23b10f94f9ff892fdbff654e6fefbd4b3c914f58
This commit is contained in:
Ron Anderson 2015-01-13 14:02:59 -06:00 committed by Gerrit Code Review
parent 82aa416c48
commit b8fdaf17a4

View file

@ -0,0 +1,97 @@
#!/usr/bin/env python
import imp, sys
DICT_KEYS = ['fullStateName',
'partOfState',
'stateAbbr',
'ugcCityString',
'ugcCode',
'ugcName',
'ugcTimeZone',
]
def diffCities(cityStringA, cityStringB):
cityListA = cityListB = []
cityListAMixed = cityListBMixed = []
if cityStringA is not None:
cityListAMixed = cityStringA.strip('.').split('...')
cityListA = cityStringA.strip('.').upper().split('...')
if cityStringB is not None:
cityListBMixed = cityStringB.strip('.').split('...')
cityListB = cityStringB.strip('.').upper().split('...')
added = []
for city in set(cityListB).difference(set(cityListA)):
added.append(cityListBMixed[cityListB.index(city)])
removed = []
for city in set(cityListA).difference(set(cityListB)):
removed.append(cityListAMixed[cityListA.index(city)])
if len(added) > 0:
print " added cities:", list(added)
if len(removed) > 0:
print " removed cities:", list(removed)
def printEntry(dict):
for key in DICT_KEYS:
if dict.has_key(key):
print " ",key+':',dict[key]
def main():
if len(sys.argv) < 3:
print "Usage:"
print sys.argv[0], "fileA, fileB"
print " fileA: path to old AreaDictionary.py file"
print " fileB: path to new AreaDictionary.py file"
print "Example:"
print sys.argv[0], "/awips2/edex/data/utility/cave_static/site/OAX/gfe/userPython/textUtilities/regular/AreaDictionary.py /awips2/edex/data/utility/cave_static/configured/OAX/gfe/userPython/textUtilities/regular/AreaDictionary.py"
sys.exit(1)
modA = imp.load_source('modA', sys.argv[1])
modB = imp.load_source('modB', sys.argv[2])
dictA = modA.AreaDictionary
dictB = modB.AreaDictionary
keys = set()
keys.update(dictA.keys())
keys.update(dictB.keys())
keys = list(keys)
keys.sort()
for key in keys:
if not dictA.has_key(key):
print '\n'+key+": added"
printEntry(dictB[key])
elif not dictB.has_key(key):
print '\n'+key+": removed"
printEntry(dictA[key])
else:
differs = False
dataA = dictA[key]
dataB = dictB[key]
for key1 in DICT_KEYS:
valueA = valueB = None
if dataA.has_key(key1):
valueA = dataA[key1]
if dataB.has_key(key1):
valueB = dataB[key1]
if str(valueA).upper() != str(valueB).upper():
if not differs:
differs = True
print '\n'+key+": differs"
if key1 == 'ugcCityString':
diffCities(valueA, valueB)
else:
print " ", key1,"old:", valueA
print " ", " "*len(key1),"new:", valueB
if __name__ == "__main__":
main()