#NEWLINE# def _fast_union( self , other ) : #NEWLINE# #INDENT# if ( len ( other ) == 0 ) : #NEWLINE# #INDENT# return self . view ( type ( self ) ) #NEWLINE# #UNINDENT# if ( len ( self ) == 0 ) : #NEWLINE# #INDENT# return other . view ( type ( self ) ) #NEWLINE# #UNINDENT# if ( self [ 0 ] <= other [ 0 ] ) : #NEWLINE# #INDENT# ( left , right ) = ( self , other ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ( left , right ) = ( other , self ) #NEWLINE# #UNINDENT# ( left_start , left_end ) = ( left [ 0 ] , left [ ( - 1 ) ] ) #NEWLINE# right_end = right [ ( - 1 ) ] #NEWLINE# if ( not self . offset . _should_cache ( ) ) : #NEWLINE# #INDENT# if ( left_end < right_end ) : #NEWLINE# #INDENT# loc = right . searchsorted ( left_end , side = 'right' ) #NEWLINE# right_chunk = right . values [ loc : ] #NEWLINE# dates = _concat . _concat_compat ( ( left . values , right_chunk ) ) #NEWLINE# return self . _shallow_copy ( other ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return left #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# return type ( self ) ( start = left_start , end = max ( left_end , right_end ) , freq = left . offset )