# Buggy code
def load_from_conf(self):
    """Load settings from configuration file"""
    for checkbox, (option, default) in list(self.checkboxes.items()):
        checkbox.setChecked(self.get_option(option, default))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            checkbox.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
        else:
            checkbox.clicked.connect(lambda opt=option: self.has_been_modified(opt))
    for radiobutton, (option, default) in list(self.radiobuttons.items()):
        radiobutton.setChecked(self.get_option(option, default))
        radiobutton.toggled.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if radiobutton.restart_required:
            self.restart_options[option] = radiobutton.label_text
    for lineedit, (option, default) in list(self.lineedits.items()):
        lineedit.setText(self.get_option(option, default))
        lineedit.textChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if lineedit.restart_required:
            self.restart_options[option] = lineedit.label_text
    for spinbox, (option, default) in list(self.spinboxes.items()):
        spinbox.setValue(self.get_option(option, default))
        spinbox.valueChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
    for combobox, (option, default) in list(self.comboboxes.items()):
        value = self.get_option(option, default)
        for index in range(combobox.count()):
            data = from_qvariant(combobox.itemData(index), to_text_string)
            # For PyQt API v2, it is necessary to convert `data` to
            # unicode in case the original type was not a string, like an
            # integer for example (see qtpy.compat.from_qvariant):
            if to_text_string(data) == to_text_string(value):
                break
        else:
            if combobox.count() == 0:
                index = None
        if index:
            combobox.setCurrentIndex(index)
        combobox.currentIndexChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if combobox.restart_required:
            self.restart_options[option] = combobox.label_text

    for (fontbox, sizebox), option in list(self.fontboxes.items()):
        font = self.get_font(option)
        fontbox.setCurrentFont(font)
        sizebox.setValue(font.pointSize())
        if option is None:
            property = "plugin_font"
        else:
            property = option
        fontbox.currentIndexChanged.connect(
            lambda _foo, opt=property: self.has_been_modified(opt)
        )
        sizebox.valueChanged.connect(
            lambda _foo, opt=property: self.has_been_modified(opt)
        )
    for clayout, (option, default) in list(self.coloredits.items()):
        property = to_qvariant(option)
        edit = clayout.lineedit
        btn = clayout.colorbtn
        edit.setText(self.get_option(option, default))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            btn.clicked.connect(lambda _foo, opt=option: self.has_been_modified(opt))
        else:
            btn.clicked.connect(lambda opt=option: self.has_been_modified(opt))
        edit.textChanged.connect(lambda _foo, opt=option: self.has_been_modified(opt))
    for (clayout, cb_bold, cb_italic), (option, default) in list(self.scedits.items()):
        edit = clayout.lineedit
        btn = clayout.colorbtn
        color, bold, italic = self.get_option(option, default)
        edit.setText(color)
        cb_bold.setChecked(bold)
        cb_italic.setChecked(italic)
        edit.textChanged.connect(lambda _foo, opt=option: self.has_been_modified(opt))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            btn.clicked.connect(lambda _foo, opt=option: self.has_been_modified(opt))
            cb_bold.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
            cb_italic.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
        else:
            btn.clicked.connect(lambda opt=option: self.has_been_modified(opt))
            cb_bold.clicked.connect(lambda opt=option: self.has_been_modified(opt))
            cb_italic.clicked.connect(lambda opt=option: self.has_been_modified(opt))


# Traceback (ValueError)
File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\preferences\languageserver.py", line 646, in delete_server
self.table.delete_server(idx)
File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\preferences\languageserver.py", line 554, in delete_server
self.adjust_cells()
File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\preferences\languageserver.py", line 524, in adjust_cells
self.setColumnWidth(CMD, max(names))
ValueError: max() arg is an empty sequence

# Fixed code
def load_from_conf(self):
    """Load settings from configuration file"""
    for checkbox, (option, default) in list(self.checkboxes.items()):
        checkbox.setChecked(self.get_option(option, default))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            checkbox.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
        else:
            checkbox.clicked.connect(lambda opt=option: self.has_been_modified(opt))
    for radiobutton, (option, default) in list(self.radiobuttons.items()):
        radiobutton.setChecked(self.get_option(option, default))
        radiobutton.toggled.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if radiobutton.restart_required:
            self.restart_options[option] = radiobutton.label_text
    for lineedit, (option, default) in list(self.lineedits.items()):
        lineedit.setText(self.get_option(option, default))
        lineedit.textChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if lineedit.restart_required:
            self.restart_options[option] = lineedit.label_text
    for textedit, (option, default) in list(self.textedits.items()):
        textedit.setPlainText(self.get_option(option, default))
        textedit.textChanged.connect(lambda opt=option: self.has_been_modified(opt))
        if textedit.restart_required:
            self.restart_options[option] = textedit.label_text
    for spinbox, (option, default) in list(self.spinboxes.items()):
        spinbox.setValue(self.get_option(option, default))
        spinbox.valueChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
    for combobox, (option, default) in list(self.comboboxes.items()):
        value = self.get_option(option, default)
        for index in range(combobox.count()):
            data = from_qvariant(combobox.itemData(index), to_text_string)
            # For PyQt API v2, it is necessary to convert `data` to
            # unicode in case the original type was not a string, like an
            # integer for example (see qtpy.compat.from_qvariant):
            if to_text_string(data) == to_text_string(value):
                break
        else:
            if combobox.count() == 0:
                index = None
        if index:
            combobox.setCurrentIndex(index)
        combobox.currentIndexChanged.connect(
            lambda _foo, opt=option: self.has_been_modified(opt)
        )
        if combobox.restart_required:
            self.restart_options[option] = combobox.label_text

    for (fontbox, sizebox), option in list(self.fontboxes.items()):
        font = self.get_font(option)
        fontbox.setCurrentFont(font)
        sizebox.setValue(font.pointSize())
        if option is None:
            property = "plugin_font"
        else:
            property = option
        fontbox.currentIndexChanged.connect(
            lambda _foo, opt=property: self.has_been_modified(opt)
        )
        sizebox.valueChanged.connect(
            lambda _foo, opt=property: self.has_been_modified(opt)
        )
    for clayout, (option, default) in list(self.coloredits.items()):
        property = to_qvariant(option)
        edit = clayout.lineedit
        btn = clayout.colorbtn
        edit.setText(self.get_option(option, default))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            btn.clicked.connect(lambda _foo, opt=option: self.has_been_modified(opt))
        else:
            btn.clicked.connect(lambda opt=option: self.has_been_modified(opt))
        edit.textChanged.connect(lambda _foo, opt=option: self.has_been_modified(opt))
    for (clayout, cb_bold, cb_italic), (option, default) in list(self.scedits.items()):
        edit = clayout.lineedit
        btn = clayout.colorbtn
        color, bold, italic = self.get_option(option, default)
        edit.setText(color)
        cb_bold.setChecked(bold)
        cb_italic.setChecked(italic)
        edit.textChanged.connect(lambda _foo, opt=option: self.has_been_modified(opt))
        # QAbstractButton works differently for PySide and PyQt
        if not API == "pyside":
            btn.clicked.connect(lambda _foo, opt=option: self.has_been_modified(opt))
            cb_bold.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
            cb_italic.clicked.connect(
                lambda _foo, opt=option: self.has_been_modified(opt)
            )
        else:
            btn.clicked.connect(lambda opt=option: self.has_been_modified(opt))
            cb_bold.clicked.connect(lambda opt=option: self.has_been_modified(opt))
            cb_italic.clicked.connect(lambda opt=option: self.has_been_modified(opt))