Sprachassistent von Pythonneuling

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
JakobPrie
User
Beiträge: 91
Registriert: Sonntag 21. Juni 2020, 11:12

Hallo,
ich habe am Anfang von Corona ein Programmierprojekt gesucht, bei welcher ich die Sprache Python lernen kann. Ich hatte aber bereits Viel Erfahrung in Java und ein bisschen Erfahrung in C++. Ich habe mich dazu entschieden einen eiegenen (halbwegs datenschutzkonformen) Sprachassistent zu programmieren.
Mittlerweile habe ich 2 Freunde, welche das System auch nutzen.
Da ich aber nebenbei auch noch studiere und nicht so viel Zeit mehr einbringen kann, suche ich Leute, die mir dabei helfen.
Daher habe ich das Projekt auf GIthub hochgeladen und halbwegs ordentlich kommentiert.
https://github.com/JakobPrie/Jarvis
Zur besseren Organisation habe ich außerdem unter dem Punkt "Projekt" auf Github eine To-Do-Liste angelegt.
Über jede Hilfe freue ich mich. Da ich am Anfang noch nicht so informiert war, ist der Code teilweise noch sehr wirr und kompliziert. Eine optimierung dieser Parts wäre auch eine große Hilfe!
Was meint Ihr zu dem Projekt?
LG,
Jakob
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@JakobPrie: Die Namen halten sich teilweise nicht an die Konventionen und zusammen mit globalen Variablen ist das sehr verwirrend wenn Du so etwas machst wie ``Modules = Modules(Local_storage)`` was sie Klasse Modules auf Modulebene durch ein Exemplar ersetzt auf das dann in Methoden einfach so global zugegriffen wird. Also Namen anpassen und globale Variablen beseitigen.

Als Namen werden teilweise auch kryptische Abkürzungen verwendet.

Es gibt mehr als einmal im Quelltext Code nach dem Muster ``if a or b in something:`` — das wurde also offenbar nie richtig getestet. Es ist zum Beispiel immer "neblig", auch wenn es das gar nicht ist. ``any(["break time", "emphasis level", "prosody rate", "prosody pitch", "amazon:effect"]) in word`` ist auch falsch. Beziehungsweise sehr wahrscheinlich *immer unwahr* weil `any()` *immer* wahr ist, der Wahrheitswert `True` aber in *keiner* Zeichenkette vorkommen kann.

Logging bastelt man sich nicht selbst. Es gibt `logging` in der Standardbibliothek, oder externe Bibliotheken wie `loguru` oder `structlog`.

Beim `resources`-Package fehlt die `__init__.py`. Ohne ”funkioniert” das zwar in aktuellen Python-Versionen auch, aber dann ist das ein Namespace-Package und das ist potentiell gefährlich und sollte nicht für normale Packages verwendet werden.

`os.system()` sollte nicht verwendet werden und ``clear`` sollte man schon gar nicht aufrufen. Selbst auf Systemen wo es das gibt, ist das nervig für Benutzer wenn eine Anwendung einfach so Daten entfernt die man vielleicht noch mal nachlesen wollte.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
JakobPrie
User
Beiträge: 91
Registriert: Sonntag 21. Juni 2020, 11:12

Danke für deine Kritik. Ich werde sie mir zu herzen nehmen und das alles nochmal bereinigen. Kritik ist immer sehr hilfreich um sich weiterzubilden
JakobPrie
User
Beiträge: 91
Registriert: Sonntag 21. Juni 2020, 11:12

Ach ja und clear wird nur aufgerufen, um einen komplett nichts aussagenden Alsa-Bericht zu entfernen. Da habe ich schon nach was gesucht, damit das gar nicht erst ausgegeben wird. Erstellt man aber ein Objekt von PyAudio wird immer viel unnützes Zeug angezeigt, was am ende einfach nur unnötig ist
Antworten