Brak pliku requirements.txt
Brak konsystencji nazewnictwa metod, raz camelCase raz under_score
Wszelkie wyjątki łapane od razu bez żadnej obsługi. Jeśli coś pójdzie nie tak to pasowałoby coś z tym zrobić :P
UI.ui_look(self)
bardzo dziwne. ui_look to nie czasownik i to powinna być metoda klasy, a nie funkcja sztucznie udająca metode tylko po to zeby wylądować w innym pliku - przekazujesz do niej jawnie self.
To samo tutaj:
def check_exist_filename(self, name):
Plik Helpers.py to kiepski pomysł. Aplikacja akurat jest mała, ale taki worek na wszystko rośnie wkładniczo wraz ze wzrostem projektu. Helpery powinne wylądować w różnych klasach.
if self.fullname.count(name) == 1:
return True
else:
return False
# rownowazne z:
return self.fullname.count(name) == 1
Pass na koncu funkcji z cialem nie ma sensu i od razu funkcja tab_type powinna zawsze cos zwracac.
Elif po returnie jest niepotrzebny. Zastąp go zwykłym ifem.
Podobnie tutaj:
if result is True:
...
elif result is False:
Jesli nie weszlismy do ifa to wiadomo ze result jest False, wiec nie trzeba tego znow sprawdzac. Zmien elif na else. Dzięki temu będzie mógł pozbyć się nic nie znaczącej zmiennej result:
if Helpers.check_exist_filename(self, filename):
...
else:
def find_way_to_file(file):
return os.path.abspath(os.path.join(os.path.dirname(__file__), file))
Przez __file__ uzależniasz sie od tego gdzie lezy plik FileHelper.
Poczytaj coś o prywatnych składowych: https://stackoverflow.com/questions/1301346/what-is-the-meaning-of-a-single-and-a-double-underscore-before-an-object-name https://www.programiz.com/python-programming/property