Skip to content

Restic UI - QtWaitingSpinner unexpected type 'float'

Restic UI
  • Der QtWaitingSpinner in meinem Restic UI lief nicht mit Python 3.10.1 😞 Da Linux Mint Cinnamon aber mit dem Upgrade auf 20.3 Python 3.10 mitbringt, musste ich da ran und das Fixen 😉

    Fehler

    TypeError: setInterval/self, int): argument 1 has unexpected type 'float'
    

    Grübel, ein wenig suchen und drüber gestolpert das das Problem öfter auftaucht. Gut, schauen wir uns die Zeile mal in Ruhe an.

        def updateTimer(self):
            self._timer.setInterval(1000 / (self._numberOfLines * self._revolutionsPerSecond))
    

    Ok, einfach ein wenig Mathe, das bekommen wir hin. Suchen wir mal die Variablen.

            self._revolutionsPerSecond = 1.57079632679489661923
            self._numberOfLines = 20
    

    Wenn man nun weiß, das eine Variable int eine ganzzahlige Zahl sein muss, dann sieht man sofort das Problem. Die Zahl 1.570.... macht aus dem Ergebnis einen float (Fließkommazahl).

    Das timer.setInterval erwartet aber einen int. Darum bricht python auch mit einem Traceback ab. Gut, ich habe dann mit dieser Zeile ein wenig gespielt und herausbekommen, das es nur die Geschwindigkeit der Änderung des Spinners beeinflusst. Sollte also egal sein, wenn wir diese Zahl etwas verändern. Es ist dann evt. nicht mehr so fein einzustellen, aber das sollte nicht stören.

        def updateTimer(self):
            self._timer.setInterval(int(1000 / (self._numberOfLines * self._revolutionsPerSecond)))
    

    Die geänderte Zeile, die sicherstellt, das an die Funktion setInterval nur ein int Wert übergeben wird. Ausprobiert, Fehler weg, dafür kamen noch ein paar andere, alle mit demselben Problem. Ich habe diese dann alle so gefixt und mein Restic UI läuft auch mit Python 3.10.1, seit heute auch auf Windows getestet 🤕

    Ich habe bei dem Projekt einen Issue eröffnet und meine Änderungen da reingehauen. Ich habe keinen Pull request erstellt, weil ich nicht überblicken kann, wo das in dem Projekt noch Auswirkungen hat. Bin ja in der Lernphase..

    Der Link -> https://github.com/z3ntu/QtWaitingSpinner

    Anhang

    Dieses Problem war wohl schon länger bekannt und führte in Python 3.9 zu einem Warning, seit 3.10 gibt es kein Warning mehr, sondern ein Traceback und somit muss man ran und es ändern.

  • Der Autor hat meine Anpassungen um ein paar Änderungen erweitert und in sein Repo eingepflegt. Der QtWaitingSpinenr ist jetzt auch 3.10 kompatibel 🤓

    1b268980-92ca-42a4-89a0-a6e4b7ab9378-grafik.png

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • FrankMF FrankM hat am auf dieses Thema verwiesen

  • Restic - Migrate

    Restic
    1
    0 Stimmen
    1 Beiträge
    197 Aufrufe
    Niemand hat geantwortet
  • Python - mehrsprachiges GUI

    Python3
    1
    0 Stimmen
    1 Beiträge
    145 Aufrufe
    Niemand hat geantwortet
  • Restic UI - Youtube Video Vorstellung

    Restic UI
    3
    0 Stimmen
    3 Beiträge
    194 Aufrufe
    FrankMF

    Hallo @berthold, du bist mein einziger Star 🙂 Ok, darum geht es mir ja nicht, wie Du weißt mache ich das hauptsächlich für mich und meine Backups klappen damit sehr gut. Ist also produktiv einsetzbar.

    Wie Du gemerkt hast, gibt es Zeiten da mache ich ganz viel und dann wieder Zeiten da passiert nix. Das ist bei mir normal, ich muss da "Bock" drauf haben. Habe ich viel Stress auf der Arbeit, passiert Abends eher sehr wenig..

    Ich hoffe das ich mittlerweile alle Fehler gefunden habe, die Grundfunktionen sind alle funktional. Mittlerweile kann man die JSON Datei mit den Daten der Backups auf Wunsch auch verschlüsseln 🙂

    Ich habe noch eine ganze Reihe an Notizen, was ich gerne noch machen möchte. Wichtig ist mir aber im Moment, das ich alle Fehler finde und das so wie es jetzt ist, einwandfrei läuft.

    Darum, wenn es jemand nutzt, bitte gebt Feedback. Egal ob positiv oder negativ. Ich freue mich persönlich natürlich mehr über positives Feedback 🙂

  • Restic UI - QThread

    Restic UI
    1
    0 Stimmen
    1 Beiträge
    110 Aufrufe
    Niemand hat geantwortet
  • Restic UI - Documentation

    Restic UI
    1
    0 Stimmen
    1 Beiträge
    264 Aufrufe
    Niemand hat geantwortet
  • Python3 - Popen und seine Geheimnisse ;)

    Python3
    1
    0 Stimmen
    1 Beiträge
    186 Aufrufe
    Niemand hat geantwortet
  • Python3 - class BackupList

    Python3
    2
    0 Stimmen
    2 Beiträge
    229 Aufrufe
    FrankMF

    Mir hat heute jemand auf Twitter zu meinem Problem geantwortet.

    Das habe ich natürlich direkt, bei einer Tasse Kaffee, ausprobiert. Geht einwandfrei und ein Problem ist damit Vergangenheit. Bei meiner Konstruktion musste ich immer eine Länge für die Liste p vorgeben.

    p = list(range(10))

    Das wird jetzt nicht mehr benötigt. Schön 🙂

    Jetzt muss ich mir das noch in Ruhe anschauen, nachlesen und verstehen.

    Danke für den netten Hinweis!

  • Python3 - JSON

    Python3
    3
    0 Stimmen
    3 Beiträge
    197 Aufrufe
    FrankMF

    ede1a88a-5183-4f85-a602-27650362d532-grafik.png

    Die Backups sollen Namen haben, also habe ich das erweitert. Jetzt sollen diese als Liste rechts angezeigt werden. Das mache ich wie folgt.

    for key in backups: print(backups[key]['name'], key) liste = backups[key]['name'] + " ID: " + key self.listWidget.addItem(liste)

    Mittels des Keys kann ich auf den Namen zugreifen und die Liste damit füllen. Aktuell habe ich noch den Key hinten angefügt, weil ich noch keine Idee habe, wie ich die Backups anders verarbeiten soll. Aber, Stück für Stück. Der Backup-Name wird nach Auswahl in der Statusbar angezeigt. So weit klappt das so wie ich mir das vorstelle. Für heute ist Feierabend 😇