'Initialize new database
:param path: Path to a database (allows delayed path configuration), if not provided self.path will be used
:param makedir: Make the ``_indexes`` directory or not
:returns: the database path'

def initialize(self, path=None, makedir=True):

    if (self.opened is True):
        raise DatabaseConflict('Already    opened')
    if (not path):
        path = self.path
    else:
        self.path = path
    if makedir:
        if (not self.path):
            raise PreconditionsException('No    path    specified')
        p = os.path.join(self.path, '_indexes')
        if os.path.exists(p):
            raise DatabaseConflict("Cant't    create    because    already    exists")
        os.makedirs(p)
    return self.path
