#NEWLINE# def _split_index( self , key ) : #NEWLINE# #INDENT# '\n        Partitions key into key and deep dimension groups. If only key\n        indices are supplied, the data is indexed with an empty tuple.\n        Keys with indices than there are dimensions will be padded.\n        ' #NEWLINE# if ( not isinstance ( key , tuple ) ) : #NEWLINE# #INDENT# key = ( key , ) #NEWLINE# #UNINDENT# if ( key [ 0 ] is Ellipsis ) : #NEWLINE# #INDENT# num_pad = ( ( self . ndims - len ( key ) ) + 1 ) #NEWLINE# key = ( ( ( slice ( None ) , ) * map_slice ) + key [ 1 : ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( len ( key ) < self . ndims ) : #NEWLINE# #INDENT# num_pad = ( self . ndims - len ( key ) ) #NEWLINE# key = ( key + ( ( slice ( None ) , ) * num_pad ) ) #NEWLINE# #UNINDENT# #UNINDENT# map_slice = key [ : self . ndims ] #NEWLINE# if self . _check_key_type : #NEWLINE# #INDENT# map_slice = self . _apply_key_type ( map_slice ) #NEWLINE# #UNINDENT# if ( len ( key ) == self . ndims ) : #NEWLINE# #INDENT# return ( map_slice , ( ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return ( map_slice , key [ self . ndims : ] )