def no_type_check(arg):
 if isinstance(arg, type):
  arg_attrs = arg.__dict__.copy()
  for (attr, val) in arg.__dict__.items():
   if (val in arg.__bases__):
    arg_attrs.pop(attr)
  for obj in arg_attrs.values():
   if isinstance(obj, types.FunctionType):
    obj.__no_type_check__ = True
   if isinstance(obj, type):
    no_type_check(obj)
 try:
  arg.__no_type_check__ = True
 except TypeError:
  pass
 return arg

def no_type_check ( arg ) : if isinstance ( arg , type ) : arg_attrs = arg . __dict__ . copy ( ) for ( attr , val ) in arg . __dict__ . items ( ) : if ( val in arg . __bases__ ) : arg_attrs . pop ( attr ) for obj in arg_attrs . values ( ) : if isinstance ( obj , types . FunctionType ) : obj . __no_type_check__ = True if isinstance ( obj , type ) : no_type_check ( obj ) try : arg . __no_type_check__ = True except TypeError : pass return arg
decorator to indicate that annotations are not type hints .