code: def _is_possible_subclass(self, subtype, supertype):
          
          subparams = getattr(subtype, "__parameters__", None)
          if subparams is None:
              return issubclass(subtype, supertype)  # a non-generic actual type
          # It is surprisingly difficult to ignore the type variables in a
          # subclass check. We therefore compare __name__ (along mro) only.
          # This can produce false positives in principle.
          # (previous "nullify __parameters__" logic deleted 2016-01-24 14:52)
          for subtype_super in subtype.mro():
              if subtype_super.__name__ == supertype.__name__:
                  # squeeze your thumbs this is not just by accident
                  return True  # TODO: ensure __parameters__ are compatible
          return False
docs: Like issubclass(subtype, supertype) except that TypeVars
          are not taken into account.