Hallo
##############################################################
Pyedit 1.5 ist raus
diesmal aber nur für Linux und nicht meht windows
http://andy-h.de/pyedit/pyedit1.5.tar.gz
Was habe ich gemacht:
-Icon hinzugefügt (install.py angepast)
-kompatibilitäts Programm hinzugefügt
-Kann jetzt alle text Formate Lesen(Python-Programme haben immer noch syntax highlighting)
-Update Funktion wurde herausgenommen, weil sie wegen der neuen Installationsmethode nicht mehr
funktioniert(wird überarbeitet)
-neue Installationsmethode hinzugefügt, pyedit sollte jetzt installiert werden
####################
-Datensicherheit überarbeitet
-Die Daten wird jetzt alle 10sek. gesichert in die Datei "speed_save.txt"
-Alle 2min. werden die Daten zudem noch in die Datei"Autosave.txt" gesichert.
Die Dateien befinden sich:
-bei Installiertem Pyedit im Ordner "/tmp/"
-an sonst im Ordner "pyedit" den sie aus dem Internet haben
####################
-Programm ausführen komplett neu gestaltet, es werden jetzt die Fehler angezeigt.
##############################################################
Pyedit 1.3 ist raus
aber nur für Linux(müsste aber auch unter windows gehen)
http://andy-h.de/pyedit/pyedit1.3.tar.gz
Was habe ich gemacht:
-Bug beim Exportieren beseitig
-Es wurde das Modul complete.py hinzugefügt
-Codevervollständigung verbessert
Nach etlichen belästigungen die ich hier angerichtet habe ist es nun volbracht!
Pyedit1.0 Beta ist fertig!
Download:
http://andy-h.de/pyedit/pyedit.zip
http://andy-h.de/pyedit/pyedit.tar.gz
Was wird benötigt?
-das Modul wx http://wxpython.org/download.php#binaries
-das Pygments http://pygments.org/download/
-das system muss den befehl python kennen
Zur Installation:
Das Programm muss eigentlich nicht installieren, aber besser ist es wenn man es macht, besonders unter linux.
-Entpacken
-Terminal öffnen
-ins verzeichnis wechseln
Linux:
- ./instal.py eingeben
Windows:
-python install.py
-dann muss man den Instalationspafd eingben (z.B. linux /home, Windows C:/programme, wichtig der letzte schrägstrich muss wegbleiben)
-dann wird das Betreibsystem erkannt. wenn das erkennen gelungen ist nur ENTER ansonsten auswählen
Starten:
Linux:
Nicht auf das Programm (pyedit.py)direck kicken, sondern auf die Datei Pyedit.
Wenn man das Programm nicht installiert hat gibt es die Datei Pyedit nicht, dann muss man das Programm über die konsole starten
Windows:
Doppelt auf pyedit.py klicken.
Was fehlt noch?:
-Man kann das programm noch nicht Konfigurieren
-Export als HTML geht noch nicht perfekt
-so kleinigkeitet
-wenn ihr was findent her damit!
Gleich vorweg zur Kritik:
-Nehme ich grene an (will mich ja verbesser)
-das der code alles andere wie schön ist weis ich schon! Ich wills jetzt aber einfach mal hergeben damit man mal sieht das ich was arbeite!
Gruß
Andyh
[EDIT] tar.gz Datei nachgereicht
Pyedit 1.5
Zuletzt geändert von Andyh am Sonntag 8. Februar 2009, 11:02, insgesamt 7-mal geändert.
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
mach diese
bitte weg.
Und wenn du dich dann noch an PEP 8 hälst und das logging modul nutzt könnte das was werden...
Man braucht übrigens keine 5-zeiligen Module und die Config würde ich nicht als Py-Modul speichern sondern mit ConfigObj oder so
Code: Alles auswählen
try:
import foo
except ImportError:
print 'Konnte "foo" nicht importieren!'
sys.exit(-1)
Und wenn du dich dann noch an PEP 8 hälst und das logging modul nutzt könnte das was werden...
Man braucht übrigens keine 5-zeiligen Module und die Config würde ich nicht als Py-Modul speichern sondern mit ConfigObj oder so
Hallo
@audax:
Danke für die Antwort!
Was ist daran falsch wenn ich ImportError abfange?
Gut es macht den code küstlich länger aber sonst...
zu den 5 zeiligen modulen, das stimmt die braucht man nicht, aber ich dachte gleich an später wenn ich ausbauen möchte.
Un zum PEP8 also ich finde ich habe mich schon ganz gut daran gehalten im gegensatz zu früher(jetzt mich aber nicht zerfleischen wegen dem satz).
Das logging modul kannta ich noch garnicht, Danke.
Muss ich mir mal ansehen.
Gruß
Andyh
@audax:
Danke für die Antwort!
Was ist daran falsch wenn ich ImportError abfange?
Gut es macht den code küstlich länger aber sonst...
zu den 5 zeiligen modulen, das stimmt die braucht man nicht, aber ich dachte gleich an später wenn ich ausbauen möchte.
Un zum PEP8 also ich finde ich habe mich schon ganz gut daran gehalten im gegensatz zu früher(jetzt mich aber nicht zerfleischen wegen dem satz).
Das logging modul kannta ich noch garnicht, Danke.
Muss ich mir mal ansehen.
Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Es macht den Code länger und er wiederholt sich immer.Andyh hat geschrieben: Was ist daran falsch wenn ich ImportError abfange?
Gut es macht den code küstlich länger aber sonst...
Es reicht völlig, den ImportError einfach werfen zu lassen...
Kommentare sollten übringens in eine extra-Zeile und nicht hintendran, das macht die Zeilen zu lang.
Ich habe mir nur das Installationsskript angeschaut. Das war so grausam, dass ich auf den Rest keine Lust mehr hatte. Nichts für ungut
Der Selbsttest mit "sys.path[0]" ist idiotisch. Wenn du den Pfad des Installationsskripts möchtest, nutze "__file__". Auf Existenz einer Datei kann auch auch einfacher mit os.path.isfile testen.
Zum Zusammensetzen der Pfade gibt es os.path.join. Das verhindert böse Überraschungen für den Nutzer, wenn er entgegen deinem Rat den Schrägstrich doch vergisst.
Vollends abenteuerlich wird es dann bei der Erkennung des Betriebssystems. Wie zum Teufel bist du nur auf die Idee gekommen? Bitte, bitte nutze doch einfach sys.platform oder das platform-Modul.
Im Übrigen gibt es ja auch distutils/setuptools zur Installation.
@Leonidas
Diese Berechtigungen kommen auf jeden Fall nicht von meiner umask Irgendwie unterstützt ZIP also Unix-Rechte.
Der Selbsttest mit "sys.path[0]" ist idiotisch. Wenn du den Pfad des Installationsskripts möchtest, nutze "__file__". Auf Existenz einer Datei kann auch auch einfacher mit os.path.isfile testen.
Zum Zusammensetzen der Pfade gibt es os.path.join. Das verhindert böse Überraschungen für den Nutzer, wenn er entgegen deinem Rat den Schrägstrich doch vergisst.
Vollends abenteuerlich wird es dann bei der Erkennung des Betriebssystems. Wie zum Teufel bist du nur auf die Idee gekommen? Bitte, bitte nutze doch einfach sys.platform oder das platform-Modul.
Im Übrigen gibt es ja auch distutils/setuptools zur Installation.
@Leonidas
Code: Alles auswählen
$ ll pyedit
insgesamt 44
-rwxr-xr-x 1 lunar users 6937 2. Jan 12:36 install.py
-rw-r--r-- 1 lunar users 6921 2. Jan 12:33 install.py~
drwxr-xr-x 2 lunar users 4096 2. Jan 12:31 module
drwxrwxrwx 2 lunar users 4096 2. Jan 11:08 pics
-rw-r--r-- 1 lunar users 19293 2. Jan 12:34 pyedit.py
Hallo
@lunar
Na edlich ist es jemand aufgefallen.
Den istallationsscript habe ich heute morgen schnell gemacht ohne groß zu schauhen und tuhen.
Also ich finde die OS abfrage doch ausgefallen oder?
Achso den code sollt ihr euch auch nicht so genau anschauhen, guck euch lieber mal das programm an!
Gruß
Andyh
@lunar
Na edlich ist es jemand aufgefallen.
Den istallationsscript habe ich heute morgen schnell gemacht ohne groß zu schauhen und tuhen.
Also ich finde die OS abfrage doch ausgefallen oder?
Achso den code sollt ihr euch auch nicht so genau anschauhen, guck euch lieber mal das programm an!
Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Nichts für ungut, aber wenn ich von der Codequalität des Installationsskripts auf den Rest des Codes schließe, dann möchte ich das Programm lieber nicht ausführen. Ganz generell würde ich das nicht ohne den Code anzusehen ausführen.Andyh hat geschrieben:Achso den code sollt ihr euch auch nicht so genau anschauhen, guck euch lieber mal das programm an!
Und wenn es – wie ich vermute – nur ein weiterer Editor ist, dann musst du mir erstmal erklären, warum ich deinen Editor emacs vorziehen sollte
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ok, da lunar meint, dass das mit den Rechten stimmt - ok. Was ich noch zu Kritisieren hätte wären die Backup-Dateien und die pyc-Dateien, sowie die ``Thumbs.db`` (und die GIFs sowieso). ``images.py`` finde ich ebenfalls ziemlich übel, was spricht gegen Bilddateien, die du ja sowieso auch hast? Statt einer ``install.py`` hätte ich mir eher eine ``README``-Datei gewünscht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hallo
Was ist das DRY-Prinzip?
Ich habe jetzt den Installscrpit abgeändert("verbesser")
Mir gefällt er immer noch nicht, aber er tut das was er soll.
Wenn ich mir hier die ganzen negativen kommentare immer ansehe, beneide andere Programmiersprchen, wo man gleich eine .exe oder.bin verteilt. Da zählt dann erstmal das ergebniss und dann der rest.
Von euch hat sicher noch keiner Pyedit mal gestartet
Man ich bin ja auch erst bei der version 1.0 auf meiner TODO liste steht:
Bis Version 2.0 wird nur der Code ausgebessert.
Und da kann ich ja einige updates machen:
z.B 1.1.2.3
Was ist das DRY-Prinzip?
Ich habe jetzt den Installscrpit abgeändert("verbesser")
Mir gefällt er immer noch nicht, aber er tut das was er soll.
Wenn ich mir hier die ganzen negativen kommentare immer ansehe, beneide andere Programmiersprchen, wo man gleich eine .exe oder.bin verteilt. Da zählt dann erstmal das ergebniss und dann der rest.
Von euch hat sicher noch keiner Pyedit mal gestartet
Man ich bin ja auch erst bei der version 1.0 auf meiner TODO liste steht:
Bis Version 2.0 wird nur der Code ausgebessert.
Und da kann ich ja einige updates machen:
z.B 1.1.2.3
Zuletzt geändert von Andyh am Freitag 2. Januar 2009, 17:51, insgesamt 1-mal geändert.
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Don´t repeat yourselfAndyh hat geschrieben:Hallo
Was ist das DRY-Prinzip?
Hallo
@OverNord
Danke für die Antwort
Ich bin eigentlich kein Fan von immer gleichen Programm Teilen.
Am meisten mag ich
Gruß
Andyh
@OverNord
Danke für die Antwort
Ich bin eigentlich kein Fan von immer gleichen Programm Teilen.
Am meisten mag ich
Code: Alles auswählen
liste = [1,2,3,4,5]
for item in liste:
print item
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, ist doch egal wie der Code ist, ob der scheiße ist oder nicht, hauptsache es passiert irgendwas, oder?Andyh hat geschrieben:Wenn ich mir hier die ganzen negativen kommentare immer ansehe, beneide andere Programmiersprchen, wo man gleich eine .exe oder.bin verteilt. Da zählt dann erstmal das ergebniss und dann der rest.
Naja, es war nicht anders zu erwarten: du schreibst einen Editor in Python und postest den Code in ein Python-Forum. Die Leute hier haben ja schon einen Editor, brauchen also keinen weiteren. Zudem dein Editor wx nutzt, was ich gar nicht installiert habe. Da ist es ja klar, dass man sich halt den Code ansieht und schaut ob wenigstens der interessant ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich hab Pyedit gestartet. Was mich stört, ist, dass es kein richtiges Menu gibt, sondern eigentlich nur eine Toolbar. Ansonsten kann ich nur sagen: Mach weiter, kann nur besser werdenAndyh hat geschrieben: Von euch hat sicher noch keiner Pyedit mal gestartet
-
- User
- Beiträge: 155
- Registriert: Freitag 29. Dezember 2006, 18:27
Ich habs mal gestartet und mir dafür den Code nicht angesehen Merkwürdig fand ich, dass zwar nach einer 'return'-Zeile der Code um eine Einrückungstiefe nach links gerückt wird, aber nicht bei 'return 1'. Allgemein find ich die Einrückung noch ein bisschen zickig, aber das kann ja noch werden.
Ja genau haupsache es geht!Leonidas hat geschrieben: Ja, ist doch egal wie der Code ist, ob der scheiße ist oder nicht, hauptsache es passiert irgendwas, oder?
Naja, es war nicht anders zu erwarten: du schreibst einen Editor in Python und postest den Code in ein Python-Forum. Die Leute hier haben ja schon einen Editor, brauchen also keinen weiteren. Zudem dein Editor wx nutzt, was ich gar nicht installiert habe. Da ist es ja klar, dass man sich halt den Code ansieht und schaut ob wenigstens der interessant ist.
Nein Quatsch, es ist mir schon recht das man meinen Code schlecht macht, der ist auch schlecht!
Wenn mir keiner was sagt wirds auch nicht besser, nur arbeite ich jetzt schon lange an den ding und habe es vorgestellt obwohl es noch nicht ganz fertig ist und alles was man hört ist da da da und da. Da ist man erstmal schon gefrustet.
Das ist jetzt ja mein erstes Programm so für die Öffentlichkeit, da muss ich wohl erst noch dran gewöhnen.
@fred.reichbier
Danke für die guten worte sowas braucht man auch, sonst hat man ja garkeine lust mehr.
Zum einrücken:
Ja das ist in der tat noch son problem, ich dachte mir ich lasse es mal so drin besser als keins.
@OverNord
Auch danke für deine Worte!
Eigentlich wahr es auch mein ziel ohne Toolbar auszukommen, weil ich das hauptaugenmerk auf die paar Symbole und des Code setzten wollte.
Aber es wird schon noch eine Toolbar kommen, weil mir noch ein paar sachen eingefallen sind und ich ja nicht alles in symbole packen kann.
Gruß
Andyh
Edit (Leonidas): Restliche Diskussion in "Freundlichkeit und Unfreundlichkeit" abgetrennt.
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Abend,
ich hab's jetzt auch mal gestartet (nur das Programm, die install.py habe ich mich nicht getraut). Auf den ersten Blick sieht nicht so schlecht aus, wobei vieles noch fehlt. Was mir aufgefallen ist, dass Suchen und Ersetzen nicht richtig funktioniert. Das Funktion findet schon ersetzte Zeichenketten und überschreibt dann anderen Text.
Zum Code ist mir beim Überfliegen schon aufgefallen, dass einige Codezeilen länger als 237 Zeichen sind (also 3x länger als nach PEP8 gewünscht), was ich persönlich auf meinem kleinen 14'' Notebook für unzumutbar halte. Weiter ist der Code zum größten Teil ein bunter Mix aus deutsch, englisch und denglisch:
In den ganzen print-Anweisungen sind auch recht viele Rechtschreib- und Tippfehler und die Ausgaben machen nicht einmal Sinn:
Mein Vorschlag: Verbessere erstmal deinen "Coding Style" und korrigiere vor allem die Tippfehler, dann wird sich die Kritik hier auch mehr auf den Code beziehen.
So weit erstmal von mir.
gkuhl
ich hab's jetzt auch mal gestartet (nur das Programm, die install.py habe ich mich nicht getraut). Auf den ersten Blick sieht nicht so schlecht aus, wobei vieles noch fehlt. Was mir aufgefallen ist, dass Suchen und Ersetzen nicht richtig funktioniert. Das Funktion findet schon ersetzte Zeichenketten und überschreibt dann anderen Text.
Zum Code ist mir beim Überfliegen schon aufgefallen, dass einige Codezeilen länger als 237 Zeichen sind (also 3x länger als nach PEP8 gewünscht), was ich persönlich auf meinem kleinen 14'' Notebook für unzumutbar halte. Weiter ist der Code zum größten Teil ein bunter Mix aus deutsch, englisch und denglisch:
Code: Alles auswählen
def laden(self, datei):
data = open(datei).read()
Code: Alles auswählen
ERROR Das Modul "pygments" wurde nicht gefunden Programm
Das Programm kann trozdem ausgeführt werden,
es kamm aber zu einschränkungen beim Drucken.
Das Modul "export_html" wurde gefunden und Importiert
ERROR Das Modul "pygments" wurde nicht gefunden Programm
Das Programm kann trozdem ausgeführt werden,
es kamm aber zu einschränkungen beim Drucken.
Das Modul "export_rtf" wurde gefunden und Importiert
Das Modul "drucken" wurde gefunden und Importiert
Es wurden alle Module gefunden
So weit erstmal von mir.
gkuhl
@Andyh: Falls wir Dir mit unserer Unfreundlichkeit den Spass am veröffentlichen von Python-Programmen nicht ganz verderben sollten, wäre eine Versionsangabe im Namen des Archivs praktisch, damit man die Versionen besser auseinander halten kann.
Deine Antwort zum DRY-Kommentar habe ich nicht verstanden!? Es geht bei DRY übrigens nicht nur um 100% gleiche Wiederholungen, sondern auch um Quelltext der sich nur durch einige Kleinigkeiten unterscheidet, also Kandidat für eine eigene Funktion wäre.
Mal sehen ob ich mich durch mehr Quelltext als durch die `pyedit.py` arbeiten kann. Da fängt's schon mal mit der Einrückung von drei Leerzeichen pro Ebene an. Damit hast Du quasi eine Zusammenarbeit mit anderen schon fast ausgeschlossen.
Die "Klasse" `Datei_Dialoge` scheint nur als Namensraum für zwei Funktionen missbraucht zu werden. Erbt aber trotzdem von `wx.FileDialog`!? "Spezielle" Rückgabewerte für Ausnahmesituationen sind keine gute Idee. Insbesondere dann nicht, wenn der Wert an sich *gültig* wäre! Es mag zwar sinnlos sein eine Datei mit dem Namen ' ' anzulegen, aber eben nicht unmöglich. Ausser halt mit Deinem Editor.
``pass`` ist ein Schlüsselwort, das man so gut wie nie einsetzen muss. Von den 16 Stück in `pyedit.py` können alle ersatzlos gestrichen werden.
Warum ist der Quelltext in `Menu_bar.make()` nicht in der `Menu_bar.__init__()` bzw. wird dort nicht aufgerufen. Und warum heisst die Klasse `Menu_bar`?
Wahrheitswerte sollte man mit ``True`` und ``False`` modellieren und nicht mit Zahlen. Dann wäre der ``else``-Zweig in `Menu_bar.onfind()` auch überflüssig.
"Magische Zahlen" sind nicht gut. Die Zahlen für Ja und Nein in `Menu_bar.save_frage()` haben auch Namen, dann könnte man sich den Kommentar auch sparen. In der Funktion (Methode ist es nämlich keine) fällt auch extrem auf, wie viel komplizierter der ganze Loggingkram das Programm macht. Das könnte auch so aussehen:
`Menu_bar.save_test()` ist ziemlich verwirrend und auch zu kompliziert. In Bedingungen sollte man nicht nicht noch einmal explizit auf ``== True`` oder ``== False`` testen. Nachdem ich in `edit.py` nachgesehen habe, was `is_saved()` macht, ist mir auch meine Verwirrung klar. Das gibt einen *wahren* Wert zurück, wenn *nicht* gespeichert wurde, und einen *falschen*, wenn gespeichert wurde. Es macht also genau das Gegenteil, von dem was man anhand des Namens vermuten würde. Ausserdem werden da wieder Zahlen anstelle von Wahrheitswerten verwendet. Die Methode könnte (mit einem intuitiveren Rückgabewert von `is_saved`) so aussehen:
`Menu_bar.save_or_saveas()` kann man analog verkürzen:
Ausnahmebehandlung ohne konkrete Ausnahmen ist Böse™.
Tastenkürzel für die einzelnen Funktionen wären nett.
Bei Suchen/Ersetzen habe ich erst einmal gerätselt, wie man das wieder wegbekommt. Da wäre es hilfreich, wenn der Knopf in der Werkzeugleiste gedrückt dargestellt wird.
Warum gehen die Fenster immer an einer von Dir fest vorgegebenen Position auf? Neue Anwendungen sollen bei mir da aufgehen, wo Platz ist, und das macht mein Fenstermanager auch ganz gut, wenn die Anwendung nicht glaubt es besser zu wissen.
Übrigens ein absolutest Killerkriterium Deinen Editor nicht zu verwenden: Umlaute eingeben, und auf Speichern drücken --> Keine offensichtliche Fehlerrückmeldung, dass nur eine leere Datei angelegt wurde, weil's einen `UnicodeEncode`-Error gab. Ganz böse.
Deine Antwort zum DRY-Kommentar habe ich nicht verstanden!? Es geht bei DRY übrigens nicht nur um 100% gleiche Wiederholungen, sondern auch um Quelltext der sich nur durch einige Kleinigkeiten unterscheidet, also Kandidat für eine eigene Funktion wäre.
Mal sehen ob ich mich durch mehr Quelltext als durch die `pyedit.py` arbeiten kann. Da fängt's schon mal mit der Einrückung von drei Leerzeichen pro Ebene an. Damit hast Du quasi eine Zusammenarbeit mit anderen schon fast ausgeschlossen.
Die "Klasse" `Datei_Dialoge` scheint nur als Namensraum für zwei Funktionen missbraucht zu werden. Erbt aber trotzdem von `wx.FileDialog`!? "Spezielle" Rückgabewerte für Ausnahmesituationen sind keine gute Idee. Insbesondere dann nicht, wenn der Wert an sich *gültig* wäre! Es mag zwar sinnlos sein eine Datei mit dem Namen ' ' anzulegen, aber eben nicht unmöglich. Ausser halt mit Deinem Editor.
``pass`` ist ein Schlüsselwort, das man so gut wie nie einsetzen muss. Von den 16 Stück in `pyedit.py` können alle ersatzlos gestrichen werden.
Warum ist der Quelltext in `Menu_bar.make()` nicht in der `Menu_bar.__init__()` bzw. wird dort nicht aufgerufen. Und warum heisst die Klasse `Menu_bar`?
Wahrheitswerte sollte man mit ``True`` und ``False`` modellieren und nicht mit Zahlen. Dann wäre der ``else``-Zweig in `Menu_bar.onfind()` auch überflüssig.
"Magische Zahlen" sind nicht gut. Die Zahlen für Ja und Nein in `Menu_bar.save_frage()` haben auch Namen, dann könnte man sich den Kommentar auch sparen. In der Funktion (Methode ist es nämlich keine) fällt auch extrem auf, wie viel komplizierter der ganze Loggingkram das Programm macht. Das könnte auch so aussehen:
Code: Alles auswählen
def save_question():
answer = wx.MessageDialog(parent=None,
style=wx.YES_NO,
message='Datei wurde noch nicht gespeichert!\n'
'Erst Speichern?'
caption='Speichern').ShowModal()
return answer == wx.ID_YES
Code: Alles auswählen
def save_test(self):
if not self.master.editor.is_saved and self.save_frage():
return self.save_or_saveas()
return True
Code: Alles auswählen
def save_or_saveas(self):
if self.datei_pfad:
return self.onsave(None)
else:
return self.onsaveas(None)
Tastenkürzel für die einzelnen Funktionen wären nett.
Bei Suchen/Ersetzen habe ich erst einmal gerätselt, wie man das wieder wegbekommt. Da wäre es hilfreich, wenn der Knopf in der Werkzeugleiste gedrückt dargestellt wird.
Warum gehen die Fenster immer an einer von Dir fest vorgegebenen Position auf? Neue Anwendungen sollen bei mir da aufgehen, wo Platz ist, und das macht mein Fenstermanager auch ganz gut, wenn die Anwendung nicht glaubt es besser zu wissen.
Übrigens ein absolutest Killerkriterium Deinen Editor nicht zu verwenden: Umlaute eingeben, und auf Speichern drücken --> Keine offensichtliche Fehlerrückmeldung, dass nur eine leere Datei angelegt wurde, weil's einen `UnicodeEncode`-Error gab. Ganz böse.
Hallo
@BlackJack
Danke für deine Antwort!
Ich muss mich mal genau in deinen Beitrag einlesen. Was ich schon gesehen habe ist alles nachvollziehbar, Danke für die erläuterung!
Denn ganzen save-Teil muss ich nochmal neu machen der ist echt verwirrend.
@gkuhl
Naja die jetztige install.py ist schon einiges besser als der rest. Ich werde jetzt aber zwei versionen machen eine für Windows und eine für Linux.
Zur Rechtschreibung:
Na und ich habe ne 4 in Deutsch (Hauptschule) und ich stehe dazu. Ich weis eh nicht warum ich nocht tippe wenn ich doch Spracherkennung habe
Das mit den vermisschten sprachen ist bei mir so ein problem:
-Einmal weil ich gern mal was kopiere von anderen code
-weil ich recht off Deutsch und Englisch zusammen Chatte.
Mal schauhen
Auch danke für deine Gute Antwort!
Gruß
Andyh
@BlackJack
Danke für deine Antwort!
Ich muss mich mal genau in deinen Beitrag einlesen. Was ich schon gesehen habe ist alles nachvollziehbar, Danke für die erläuterung!
Denn ganzen save-Teil muss ich nochmal neu machen der ist echt verwirrend.
@gkuhl
Naja die jetztige install.py ist schon einiges besser als der rest. Ich werde jetzt aber zwei versionen machen eine für Windows und eine für Linux.
Zur Rechtschreibung:
Na und ich habe ne 4 in Deutsch (Hauptschule) und ich stehe dazu. Ich weis eh nicht warum ich nocht tippe wenn ich doch Spracherkennung habe
Das mit den vermisschten sprachen ist bei mir so ein problem:
-Einmal weil ich gern mal was kopiere von anderen code
-weil ich recht off Deutsch und Englisch zusammen Chatte.
Mal schauhen
Auch danke für deine Gute Antwort!
Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]