code: def __call__(self, func):
      @wraps(func)
      def assert_keywords_and_call(*args, **kwargs):
          for field, message in iteritems(self.messages):
              if field in kwargs:
                  raise TypeError(message)
          return func(*args, **kwargs)
  
      return assert_keywords_and_call
  
imports: from datetime import tzinfo
  from functools import partial
  from operator import attrgetter
  from numpy import dtype
  import pandas
  from pytz import timezone
  from six import iteritems, string_types, PY3
  from toolz import valmap, complement, compose
  import toolz.curried.operator
  from zipline.utils.compat import wraps
  from zipline.utils.functional import getattrs
  from zipline.utils.preprocess import call, preprocess
label_desc: Use image node_id 2 for calling the error_keywords obj's underlying member method code with example usage: obj.__call__(func) and returns: assert_keywords_and_call, func