(self, other, level=None, fill_value=None, axis=0)
return series_sub_wrapper
Intel Scalable Dataframe Compiler User Guide
    ********************************************

    Pandas API: pandas.Series.sub

    Limitations
    -----------
    Parameters ``level`` and ``axis`` are currently unsupported by Intel Scalable Dataframe Compiler

    Examples
    --------
    .. literalinclude:: ../../../examples/series/series_sub.py
       :language: python
       :lines: 27-
       :caption:
       :name: ex_series_sub

    .. command-output:: python ./series/series_sub.py
       :cwd: ../../../examples

    Intel Scalable Dataframe Compiler Developer Guide
    *************************************************
    Pandas Series method :meth:`pandas.Series.sub` implementation.

    .. only:: developer
        Test: python -m sdc.runtests sdc.tests.test_series.TestSeries.test_series_op5
Intel Scalable Dataframe Compiler User Guide
    ********************************************
Intel Scalable Dataframe Compiler User Guide ********************************************
def sdc_pandas_series_sub(self, other, level=None, fill_value=None, axis=0):
    """
    Intel Scalable Dataframe Compiler User Guide
    ********************************************

    Pandas API: pandas.Series.sub

    Limitations
    -----------
    Parameters ``level`` and ``axis`` are currently unsupported by Intel Scalable Dataframe Compiler

    Examples
    --------
    .. literalinclude:: ../../../examples/series/series_sub.py
       :language: python
       :lines: 27-
       :caption:
       :name: ex_series_sub

    .. command-output:: python ./series/series_sub.py
       :cwd: ../../../examples

    Intel Scalable Dataframe Compiler Developer Guide
    *************************************************
    Pandas Series method :meth:`pandas.Series.sub` implementation.

    .. only:: developer
        Test: python -m sdc.runtests sdc.tests.test_series.TestSeries.test_series_op5
    """

    _func_name = 'Method sub().'

    ty_checker = TypeChecker(_func_name)
    self_is_series, other_is_series = isinstance(self, SeriesType), isinstance(other, SeriesType)
    if not (self_is_series or other_is_series):
        return None

    # this overload is not for string series
    self_is_string_series = self_is_series and isinstance(self.dtype, types.UnicodeType)
    other_is_string_series = other_is_series and isinstance(other.dtype, types.UnicodeType)
    if self_is_string_series or other_is_string_series:
        return None

    if not isinstance(self, SeriesType):
        ty_checker.raise_exc(self, 'pandas.series', 'self')

    if not isinstance(other, (SeriesType, types.Number)):
        ty_checker.raise_exc(other, 'pandas.series or number', 'other')

    operands_are_series = self_is_series and other_is_series
    if operands_are_series:
        series_indexes_comparable = check_types_comparable(self.index, other.index)
        if not series_indexes_comparable:
            raise TypingError('{} Not implemented for series with not-comparable indexes. \
            Given: self.index={}, other.index={}'.format(_func_name, self.index, other.index))

    series_data_comparable = check_types_comparable(self, other)
    if not series_data_comparable:
        raise TypingError('{} Not supported for not-comparable operands. '
                          'Given: self={}, other={}'.format(_func_name, self, other))

    if not isinstance(level, types.Omitted) and level is not None:
        ty_checker.raise_exc(level, 'None', 'level')

    if not isinstance(fill_value, (types.Omitted, types.Number, types.NoneType)) and fill_value is not None:
        ty_checker.raise_exc(fill_value, 'number', 'fill_value')

    if not isinstance(axis, types.Omitted) and axis != 0:
        ty_checker.raise_exc(axis, 'int', 'axis')

    # specialization for numeric series only
    def series_sub_wrapper(self, other, level=None, fill_value=None, axis=0):
        return sdc_sub(self, other, fill_value)

    return series_sub_wrapper
def sdc_pandas_series_sub ( self , other , level = None , fill_value = None , axis = 0 ) : _func_name = 'Method sub().' ty_checker = TypeChecker ( _func_name ) self_is_series , other_is_series = isinstance ( self , SeriesType ) , isinstance ( other , SeriesType ) if not ( self_is_series or other_is_series ) : return None # this overload is not for string series self_is_string_series = self_is_series and isinstance ( self . dtype , types . UnicodeType ) other_is_string_series = other_is_series and isinstance ( other . dtype , types . UnicodeType ) if self_is_string_series or other_is_string_series : return None if not isinstance ( self , SeriesType ) : ty_checker . raise_exc ( self , 'pandas.series' , 'self' ) if not isinstance ( other , ( SeriesType , types . Number ) ) : ty_checker . raise_exc ( other , 'pandas.series or number' , 'other' ) operands_are_series = self_is_series and other_is_series if operands_are_series : series_indexes_comparable = check_types_comparable ( self . index , other . index ) if not series_indexes_comparable : raise TypingError ( '{} Not implemented for series with not-comparable indexes. \
            Given: self.index={}, other.index={}' . format ( _func_name , self . index , other . index ) ) series_data_comparable = check_types_comparable ( self , other ) if not series_data_comparable : raise TypingError ( '{} Not supported for not-comparable operands. ' 'Given: self={}, other={}' . format ( _func_name , self , other ) ) if not isinstance ( level , types . Omitted ) and level is not None : ty_checker . raise_exc ( level , 'None' , 'level' ) if not isinstance ( fill_value , ( types . Omitted , types . Number , types . NoneType ) ) and fill_value is not None : ty_checker . raise_exc ( fill_value , 'number' , 'fill_value' ) if not isinstance ( axis , types . Omitted ) and axis != 0 : ty_checker . raise_exc ( axis , 'int' , 'axis' ) # specialization for numeric series only def series_sub_wrapper ( self , other , level = None , fill_value = None , axis = 0 ) : return sdc_sub ( self , other , fill_value ) return series_sub_wrapper