""" Ssesame Name resolver service Examples Created 2005-06-12 by Shui Hung Kwok, shkwok at computer.org """ Usage=""" Sesame Examples: Usage: python SesameEx.py exampleName parameters ... For example: python SesamEx.py resolve "m8" exampleName can be: resolve name1 name2 name3 ... name1, name2 are names of targets to be resolved. For example: resolve m8 m32 m89 Outputs a CSV formatted list as name,RA,DEC in deg resolveList listName listName is name of a file containing names of targets Outputs RA and DEC appended to the end of each line aliases name1 name2 name3 ... Outputs aliases for given names aliasesSOAP name1, name2, name3 ... Outputs aliases for given names runAll Runs all examples """ import sys from Sesame import Sesame, SesameSOAP def resolve (*nlist): """ Finds RA and DEC for all given names. """ sesame = Sesame () for target in nlist: try: ra,dec = sesame.resolve (target) print "%s,%f,%f" % (target, ra, dec) except: print "%s,unknown,unknown" % target def resolveList (listName): """ Given a file with names Finds RA and DEC for each target and appends RA/DEC at end of line. """ fh = file (listName) sesame = Sesame () for line in fh: line = line.strip () if not line: continue if line.startswith ('#'): print line continue strs = line.strip().split (',') try: ra,dec = sesame.resolve (strs[0]) print "%s,%f,%f" % (line, ra, dec) except: print line def aliases (*nlist): """ Finds aliases for given names. """ sesame = Sesame () for target in nlist: try: sesame.resolve (target) alist = ','.join (sesame.getAliases ()) print "%s,%s" % (target, alist) except: print "%s,no aliases" % target def aliasesSOAP (*nlist): """ Finds aliases for given names using SesameSOAP. """ sesame = SesameSOAP () for target in nlist: try: sesame.resolve (target) alist = ','.join (sesame.getAliases ()) print "%s,%s" % (target, alist) except: print "%s,no aliases" % target def runAll (): """ Tests all examples """ print "\nResolve names:\n%s" % ('*' * 40) resolve ('m8', 'm32') print "\nResolve names from list:\n%s" % ('*' * 40) resolveList ('../data/targets.csv') print "\nAliases:\n%s" % ('*' * 40) aliases ('m8', 'andromeda') print "\nAliases SOAP:\n%s" % ('*' * 40) aliasesSOAP ('m8', 'andromeda') if __name__ == "__main__": try: vars ()[sys.argv[1]](*sys.argv[2:]) except Exception, e: # Uncomment these for debugging import traceback traceback.print_exc () print "Failed to execute example ", e print Usage