code: def check_class(obj, target_class, allow_none = False):
      
      if not isinstance(obj, target_class):
          if not (allow_none and obj is None):
              raise TypeError("obj must be a of type {}, got: {}"
                              .format(target_class, type(obj)))
docs: Checks that the  obj is a (sub)type of target_class.
          Raises a TypeError if this is not the case.
  
          :param obj: object whos type is to be checked
          :type obj: any type
          :param target_class: target type/class
          :type target_class: any class or type
          :param allow_none: if true obj may be None
          :type allow_none: boolean