code: def eachMethod(decorator, methodFilter=lambda fName: True):
      
      if isinstance(methodFilter, basestring):
          # Is it a string? If it is, change it into a function that takes a string.
          prefix = methodFilter
          methodFilter = lambda fName: fName.startswith(prefix)
  
      ismethod = lambda fn: inspect.ismethod(fn) or inspect.isfunction(fn)
  
      def innerDeco(cls):
          assert inspect.isclass(cls), "eachMethod is designed to be used only on classes"
          for fName, fn in inspect.getmembers(cls):
              if methodFilter(fName):
                  if ismethod(fn):
                      # We attempt to avoid decorating staticmethods by looking for an arg named cls
                      # or self; this is a kludge, but there's no other way to tell, and
                      # staticmethods do not work correctly with eachMethod
                      if getargspec(fn).args[0] not in ['cls', 'self']:
                          continue
  
                      setattr(cls, fName, decorator(fn))
  
          return cls
      return innerDeco
docs: Class decorator that wraps every single method in its own method decorator
  
      methodFilter: a function which accepts a function name and should return
      True if the method is one which we want to decorate, False if we want to
      leave this method alone.
  
      methodFilter can also be simply a string prefix. If it is a string, it is
      assumed to be the prefix we're looking for.