diff -r 953578709324 -r efca814587e2 utils.py --- a/utils.py Wed Aug 04 11:13:11 2010 +0200 +++ b/utils.py Wed Aug 04 11:16:38 2010 +0200 @@ -24,6 +24,7 @@ import decimal import datetime import random +from inspect import getargspec from itertools import repeat from uuid import uuid4 from warnings import warn @@ -64,6 +65,15 @@ '__doc__': cls.__doc__, '__module__': cls.__module__}) +def support_args(callable, *argnames): + """return true if the callable support given argument names""" + argspec = getargspec(callable) + if argspec[2]: + return True + for argname in argnames: + if argname not in argspec[0]: + return False + return True # use networkX instead ? # http://networkx.lanl.gov/reference/algorithms.traversal.html#module-networkx.algorithms.traversal.astar