code: def get_origin(tp):
      
      if NEW_TYPING:
          if isinstance(tp, _GenericAlias):
              return tp.__origin__ if tp.__origin__ is not ClassVar else None
          if tp is Generic:
              return Generic
          return None
      if isinstance(tp, GenericMeta):
          return _gorg(tp)
      if is_union_type(tp):
          return Union
  
      return None
docs: Get the unsubscripted version of a type. Supports generic types, Union,
      Callable, and Tuple. Returns None for unsupported types. Examples::
  
          get_origin(int) == None
          get_origin(ClassVar[int]) == None
          get_origin(Generic) == Generic
          get_origin(Generic[T]) == Generic
          get_origin(Union[T, int]) == Union
          get_origin(List[Tuple[T, T]][int]) == list  # List prior to Python 3.7