docs: def get_args(obj):
      """Get a list of argument names for a callable."""
      if inspect.isfunction(obj):
          return inspect.getargspec(obj).args
      elif inspect.ismethod(obj):
          return inspect.getargspec(obj).args[1:]
      elif inspect.isclass(obj):
          return inspect.getargspec(obj.__init__).args[1:]
      elif hasattr(obj, '__call__'):
          return inspect.getargspec(obj.__call__).args[1:]
      else:
          raise TypeError("Can't inspect signature of '%s' object." % obj)