def infer_class(cls):
 for (attr, value) in cls.__dict__.items():
  if (type(value) is type(infer_class)):
   setattr(cls, attr, infer_method_signature(cls.__name__)(value))
 return cls

def infer_class ( cls ) : for ( attr , value ) in cls . __dict__ . items ( ) : if ( type ( value ) is type ( infer_class ) ) : setattr ( cls , attr , infer_method_signature ( cls . __name__ ) ( value ) ) return cls
class decorator for inferring signatures of all methods of the class .