from traceback import extract_stack
def makeDict(*args):
strAllStack = str(extract_stack())
intNumLevels = len( extract_stack() )
intLevel = 0
blnFinished = False
while not blnFinished:
strStack = str( extract_stack()[intLevel] )
if strStack.find( "makeDict( ")>0:
blnFinished = True
intLevel += 1
if intLevel >= intNumLevels:
blnFinished = True
strStartText = "= makeDict( "
intLen = len( strStartText )
intOpenParenLoc = strStack.find( strStartText )
intCloseParenLoc = strStack.find(")", intOpenParenLoc )
strArgs = strStack[ intOpenParenLoc+intLen : intCloseParenLoc ].strip()
lstVarNames = strArgs.split(",")
lstVarNames = [ s.strip() for s in lstVarNames ]
if len( lstVarNames ) == len( args ):
tplArgs = map( None, lstVarNames, args )
newDict = dict( tplArgs )
return newDict
else:
print "Error. makeDict Failed."
return None