Вижу в коде некоторое количество схожих конструкций:
def stop(self, data=None):
model, rows = self.treeDemoSelection.get_selected_rows()
if rows == []:
return
temp_iter = []
for row in rows:
# Исключить клиентов выделенных групп
if len(row) == 2 and (row[0],) in rows:
continue
iter = model.get_iter(row)
temp_iter.append(iter)
for iter in temp_iter:
if len(model.get_path(iter)) == 1:
self.stop_server(model, iter)
elif len(model.get_path(iter)) == 2:
self.stop_client(model, iter)
Проблему вызывает строка:
if len(row) == 2 and (row[0],) in rows:
Ругань на неё идёт соответствующая:
TypeError: argument b: Expected Gtk.TreePath, but got tuple
Что это вообще значит ?
Аргумент b - это стало быть выражение:
(row[0],) in rows
?
Ну у меня только предложение обернуть это так:
if len(row) == 2 and Gtk.TreePath(row[0]) in rows:
При этом ругань пропадает, но чувствую, что это неправильный подход.
Есть у кого какие-то мысли ?