docs: def operator_numeric_type(method):
      """
      Intended to wrap operator methods, this decorator ensures a numeric type
      was passed.
      
      :param method: The method being decorated.
      :return: The wrapper to replace the method with.
      """
      def wrapper(self, other):
          if not isinstance(other, _NUMERIC_TYPES):
              raise TypeError(
                  'unsupported operand types: \'{0}\' and \'{1}\''.format(
                      self.__class__.__name__, other.__class__.__name__))
          return method(self, other)
      return wrapper