code: def validate_class_type_arguments(operator):
      
  
      def inner(function):
  
          def wrapper(self, *args, **kwargs):
              for arg in args + tuple(kwargs.values()):
                  if not isinstance(arg, self.__class__):
                      raise TypeError(
                          'unorderable types: {}() {} {}()'.format(
                              type(self).__name__, operator, type(arg).__name__
                          )
                      )
  
              return function(self, *args, **kwargs)
  
          return wrapper
  
      return inner
docs: Decorator to validate all the arguments to function
      are of the type of calling class for passed operator