def _reshapebasic(self, shape):
new = tupleize(shape)<EOL>old_key_size = prod(self.keys.shape)<EOL>old_value_size = prod(self.values.shape)<EOL>for i in range(len(new)):<EOL><INDENT>new_key_size = prod(new[:i])<EOL>new_value_size = prod(new[i:])<EOL>if new_key_size == old_key_size and new_value_size == old_value_size:<EOL><INDENT>return i<EOL><DEDENT><DEDENT>return -<NUM_LIT:1><EOL>
Check if the requested reshape can be broken into independant reshapes
on the keys and values. If it can, returns the index in the new shape
separating keys from values, otherwise returns -1