'Scan for .pending files and commit the found records by feeding them
to merge_items(). Assume that lock_parent_directory has already been
called.
:param item_list: A list of items to commit in addition to .pending'

def _commit_puts(self, item_list=None):

    if ((self.db_file == ':memory:') or (not os.path.exists(self.pending_file))):
        return
    if (item_list is None):
        item_list = []
    self._preallocate()
    if (not os.path.getsize(self.pending_file)):
        if item_list:
            self.merge_items(item_list)
        return
    with open(self.pending_file, 'r+b') as fp:
        for entry in fp.read().split(':'):
            if entry:
                try:
                    self._commit_puts_load(item_list, entry)
                except Exception:
                    self.logger.exception(_('Invalid    pending    entry    %(file)s:    %(entry)s'), {'file': self.pending_file, 'entry': entry})
        if item_list:
            self.merge_items(item_list)
        try:
            os.ftruncate(fp.fileno(), 0)
        except OSError as err:
            if (err.errno != errno.ENOENT):
                raise
