code: def signature_matches(func, args=(), kwargs={}):
      
      try:
          sig = inspect.signature(func)
          sig.bind(*args, **kwargs)
      except TypeError:
          return False
      else:
          return True
docs: Work out if a function is callable with some args or not.