Ist es möglich, das die umlaute in docstrings angezeigt werden? Bei mir werden immer stattdessen kryptische Zeichen angezeigt. Auch die Magicline im header scheint das nicht zu beeinflussen. Wäre toll wenn man vielleicht durch eine Trick pydoc dazu bewegen könnte umlaute richtig auszuwerten.
Es sieht einfach besser aus, bei einem generierten HTML-File wenn da üs statt ues angezeigt werden. Eigentlich müsste man pydoc nur dazu bringen das er statt ü ein ü ins HTML-File generiert. genau so das aus ä ein ä usw. gemacht wird. Jemand ne Idee wie man das lösen könnte ohne selber jetzt einen parser zu schreiben?
lg
[GELÖST] umlaute in docstrings
Wenn Du das nicht selber schreiben willst, könntest Du im Bugtracker einen Feature-Request absetzen, das Du gerne hättest, das `pydoc` die Kodierungszeile berücksichtigt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Es ist sogar noch einfacher: man sollte nur im HTML-File ein Encoding angeben müssen und dann sollten die Umlaute korrekt angezeigt werden. Entities sind outXtraNine hat geschrieben:Es sieht einfach besser aus, bei einem generierten HTML-File wenn da üs statt ues angezeigt werden. Eigentlich müsste man pydoc nur dazu bringen das er statt ü ein ü ins HTML-File generiert. genau so das aus ä ein ä usw. gemacht wird. Jemand ne Idee wie man das lösen könnte ohne selber jetzt einen parser zu schreiben?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi, danke euch für die Vorschläge
@BlackJack:
Das mit dem Bugtracker klingt nicht schlecht. Leider ist mein Englisch nicht besonders gut aber ich werde mal sehen ob ich da was Verständliches formuliert bekomme. Da ja pydoc zum Lieferumfang von python gehört, müsste ich dann auf der offiziellen HP die frage stellen oder auf sourceforge? Sry, kenne mich mit dem Vorgang leider absolut nicht aus.
@Leonidas:
Die Idee ist ja echt nicht schlecht. Das wäre auch schnell zu erledigen, nachträglich ein encoding in die HTML-Files einzutragen. Ich geh mal nachher mal schauen wie das geht und teste das mal.
lg
@BlackJack:
Das mit dem Bugtracker klingt nicht schlecht. Leider ist mein Englisch nicht besonders gut aber ich werde mal sehen ob ich da was Verständliches formuliert bekomme. Da ja pydoc zum Lieferumfang von python gehört, müsste ich dann auf der offiziellen HP die frage stellen oder auf sourceforge? Sry, kenne mich mit dem Vorgang leider absolut nicht aus.
@Leonidas:
Die Idee ist ja echt nicht schlecht. Das wäre auch schnell zu erledigen, nachträglich ein encoding in die HTML-Files einzutragen. Ich geh mal nachher mal schauen wie das geht und teste das mal.
lg
Puuh, und ich dachte schon ich wäre der einzige, der das so kennt, sieht und nutzt.Leonidas hat geschrieben:Es ist sogar noch einfacher: man sollte nur im HTML-File ein Encoding angeben müssen und dann sollten die Umlaute korrekt angezeigt werden. Entities sind out
@yogi:
Naja entities sind tatsächlich out, aber leider hat sich das och nicht so überall rum gesprochen ^^ Viele benutzen das immer noch. OK, die "pros" sicherlich nicht aber es gibt da ja auch vereinzelt welche.
Genauso mit HTML: Das ist ja auch schon längst Schnee von gestern und das Zauberwort heißt hier XHTML! Aber auch das ist noch nicht zum Standard geworden bzw. hat sich noch nicht rum gesprochen, wenn ich mir da einige HPs im Netz anschaue ^^
lg
Naja entities sind tatsächlich out, aber leider hat sich das och nicht so überall rum gesprochen ^^ Viele benutzen das immer noch. OK, die "pros" sicherlich nicht aber es gibt da ja auch vereinzelt welche.
Genauso mit HTML: Das ist ja auch schon längst Schnee von gestern und das Zauberwort heißt hier XHTML! Aber auch das ist noch nicht zum Standard geworden bzw. hat sich noch nicht rum gesprochen, wenn ich mir da einige HPs im Netz anschaue ^^
lg
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Da hast du recht - zumindest teilweise, jedoch wird XHTML immer populärer und ich selbst schreibe schon seit langer Zeit kein HTML mehr, welches nicht als XHTML validiert werden kann.XtraNine hat geschrieben:Genauso mit HTML: Das ist ja auch schon längst Schnee von gestern und das Zauberwort heißt hier XHTML! Aber auch das ist noch nicht zum Standard geworden bzw. hat sich noch nicht rum gesprochen, wenn ich mir da einige HPs im Netz anschaue ^^
Die Ausrede "Die anderen nutzen doch auch HTML", bzw. "Die anderen nutzen doch auch Entities" zieht nicht.. mehr
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@Leonidas:
Hi, ich hab jetzt in der HTML im den <HTML>-Tag folgendermaßen umgeändert:
<html xmlns=http://www.w3.org/1999/xhtml>
Der ganze header sieht so aus:
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
Damit wird mir jetzt die umlaute samt ß richtig angezeigt Eine frage hätte ich aber noch dazu. Ist das so I.O. oder sollte man zwecks Kompatibilität noch was hinzufügen? Ich kenne mich nur ein wenig mit HTML aus und fange erst jetzt an mich mit XHTML auseinander zu setzen.
Auch wäre es nicht schlecht wenn die Entwickler das in ihren nächsten release berücksichtigen. Vielleicht sollte ich mal wirklich eine Anfrage bei den zuständigen stellen (wenn ich weiß wie man das macht ^^).
Der einzige nachteil ist halt nur der, das es in der Konsole weiterhin Kryptisch angezeigt wird und bei Aufruf von pydoc.py mit Option -g weiterhin kryptisch aussieht. Aber das sol mich nicht weiter stören xD
Hmm, ich denke langfristig werde ich wohl doch nen eigenen Docstring-Parser der dann ein HTML-File generiert schreiben müssen, da mir das Styling von dem durch pydoc erzeugten HTML-File nicht zusagt. Oder sotte ich mal lieber selber versuchen in pydoc.py das so abzuändern, das im HTML-Tag das xmlns="http://www.w3.org/1999/xhtml" eingefügt wird? Hmm, sollte man einfach so in den Libs "Fuschen"?? 0_o Was meint ihr dazu?
BTW: Doxygen (http://de.wikipedia.org/wiki/Doxygen) scheint aber auch probs mit umlauten zu haben. Die generierten HTML-Files sind auch ein wenig...naja...Kann das einer bestätigen?
Hi, ich hab jetzt in der HTML im den <HTML>-Tag folgendermaßen umgeändert:
<html xmlns=http://www.w3.org/1999/xhtml>
Der ganze header sieht so aus:
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
Damit wird mir jetzt die umlaute samt ß richtig angezeigt Eine frage hätte ich aber noch dazu. Ist das so I.O. oder sollte man zwecks Kompatibilität noch was hinzufügen? Ich kenne mich nur ein wenig mit HTML aus und fange erst jetzt an mich mit XHTML auseinander zu setzen.
Auch wäre es nicht schlecht wenn die Entwickler das in ihren nächsten release berücksichtigen. Vielleicht sollte ich mal wirklich eine Anfrage bei den zuständigen stellen (wenn ich weiß wie man das macht ^^).
Der einzige nachteil ist halt nur der, das es in der Konsole weiterhin Kryptisch angezeigt wird und bei Aufruf von pydoc.py mit Option -g weiterhin kryptisch aussieht. Aber das sol mich nicht weiter stören xD
Hmm, ich denke langfristig werde ich wohl doch nen eigenen Docstring-Parser der dann ein HTML-File generiert schreiben müssen, da mir das Styling von dem durch pydoc erzeugten HTML-File nicht zusagt. Oder sotte ich mal lieber selber versuchen in pydoc.py das so abzuändern, das im HTML-Tag das xmlns="http://www.w3.org/1999/xhtml" eingefügt wird? Hmm, sollte man einfach so in den Libs "Fuschen"?? 0_o Was meint ihr dazu?
BTW: Doxygen (http://de.wikipedia.org/wiki/Doxygen) scheint aber auch probs mit umlauten zu haben. Die generierten HTML-Files sind auch ein wenig...naja...Kann das einer bestätigen?
Kennst Du epydoc, pudge oder PythonDoc? Solltest Du jedenfalls mal reinschauen bevor Du auch so etwas anfängst.
Bei epydoc die 3.0alpha nehmen, weil bei den Neuheiten steht:
Full unicode support, including support for the encoding directive.
Bei epydoc die 3.0alpha nehmen, weil bei den Neuheiten steht:
Full unicode support, including support for the encoding directive.
Zuletzt geändert von BlackJack am Montag 30. Oktober 2006, 14:18, insgesamt 1-mal geändert.
Hab nal die pydoc.py gesucht und nach der entsprechenden Zeile gesucht und auch gleich gefunden xD Für alle interesierten, es ist die Zeile 424. Dort steht dann <html><head><title>Python: %s</title>.
So hab den <html>-Tag nun in <html xmlns="http://www.w3.org/1999/xhtml"> geändert.
Das proble ist nun wenn die HTML-Datei erzeugt wird und ich sie im browser öffnen dan wird mir das wie vorher angezeigt! Wenn ich die datei im editor öffne und dann einmal abspeichere ohne was zu ändern wird mir das dan so angezeigt wie gewollt. Woran liegt das den nun?? Die Datei ist in UTF-8 gespeichert…
EDIT: Danke BlackJack werde ihch mir anschauen.
Aber woran liegt das den nun das ich erst die Datei einmal öffnen muss dan Speichern, damit mir die umlaute angezeigt werden?
So hab den <html>-Tag nun in <html xmlns="http://www.w3.org/1999/xhtml"> geändert.
Das proble ist nun wenn die HTML-Datei erzeugt wird und ich sie im browser öffnen dan wird mir das wie vorher angezeigt! Wenn ich die datei im editor öffne und dann einmal abspeichere ohne was zu ändern wird mir das dan so angezeigt wie gewollt. Woran liegt das den nun?? Die Datei ist in UTF-8 gespeichert…
EDIT: Danke BlackJack werde ihch mir anschauen.
Aber woran liegt das den nun das ich erst die Datei einmal öffnen muss dan Speichern, damit mir die umlaute angezeigt werden?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Huch, einen HTML 4 Doctype mit einem XHTM-Namespace verbinden? Das ist auf keinen Fall sauber.XtraNine hat geschrieben:Hi, ich hab jetzt in der HTML im den <HTML>-Tag folgendermaßen umgeändert:
<html xmlns=http://www.w3.org/1999/xhtml>
Der ganze header sieht so aus:
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
Mein XHTML-Template fängt so an:
Code: Alles auswählen
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Code: Alles auswählen
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Code: Alles auswählen
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Eigentlich ist es die Sache des Webservers das richtige Encoding im Header mitzuschicken, daher ist es bei mir quasi nie nötig, das Encoding explizit anzugeben.XtraNine hat geschrieben:Damit wird mir jetzt die umlaute samt ß richtig angezeigt Eine frage hätte ich aber noch dazu. Ist das so I.O. oder sollte man zwecks Kompatibilität noch was hinzufügen? Ich kenne mich nur ein wenig mit HTML aus und fange erst jetzt an mich mit XHTML auseinander zu setzen.
Ein Eintrag im Bugtracker, oder gleich einen Patch einschicken, sowas wirkt manchmal WunderXtraNine hat geschrieben:Auch wäre es nicht schlecht wenn die Entwickler das in ihren nächsten release berücksichtigen. Vielleicht sollte ich mal wirklich eine Anfrage bei den zuständigen stellen (wenn ich weiß wie man das macht ^^).
Oder einfach epydoc verwenden, mit der Version 3.0 soll es inzwischen ziemlich gut geworden sein.XtraNine hat geschrieben:Hmm, ich denke langfristig werde ich wohl doch nen eigenen Docstring-Parser der dann ein HTML-File generiert schreiben müssen, da mir das Styling von dem durch pydoc erzeugten HTML-File nicht zusagt.
Nein, solltest du nicht, weil das XMLNS nicht teil des HTML 4 Standards ist. XMLNS gilt nur für XML Dokumente, welches HTML aber nicht ist. HTML ist SGML.XtraNine hat geschrieben:Oder sotte ich mal lieber selber versuchen in pydoc.py das so abzuändern, das im HTML-Tag das xmlns="http://www.w3.org/1999/xhtml" eingefügt wird? Hmm, sollte man einfach so in den Libs "Fuschen"?? 0_o Was meint ihr dazu?
Möglich. Aber wer braucht schon Doxygen, wenn es epydoc gibtXtraNine hat geschrieben:BTW: Doxygen (http://de.wikipedia.org/wiki/Doxygen) scheint aber auch probs mit umlauten zu haben. Die generierten HTML-Files sind auch ein wenig...naja...Kann das einer bestätigen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das liegt daran, dass die Datei vorher in einem anderen Encoding gespeichert ist und du sie durch das öffnen und speichern in UTF-8 verwandelst.XtraNine hat geschrieben:Aber woran liegt das den nun das ich erst die Datei einmal öffnen muss dan Speichern, damit mir die umlaute angezeigt werden?
Aber wie gesagt, deine Lösung ist ein Hack, der eigentlich das Problem nur zufällig (wenn überhaupt) löst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
OK danke, ich lade mir mal epydoc runter und teste das mal. Aber vorher probiere ich im meta das encoding zu setzen. Vielleicht klappt das ja auch wenn ich das direkt im pydoc.py reinsetze, dann kann ich beim bugtracker das ja mal als Vorschlag schicken
Danke euch für eure Hilfe Ich melde mich später nochmal.
lg
Danke euch für eure Hilfe Ich melde mich später nochmal.
lg
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Problem ist, dass man das Encoding nicht "einfach so" auf ISO-8859-1 oder ISO-8859-15 setzen kann, weil es ja noch sein kann, dass das Programm in ISO-8859-2 gespeichert sein kann oder in UTF-8 oder in.. whatever. Da müsste man wohl erstmal das ggf. vorhandene Emacs-Cookie auslesen (# -*- coding -*-) und danach erst entscheiden welches Encoding die HTML-Datei haben soll.XtraNine hat geschrieben:OK danke, ich lade mir mal epydoc runter und teste das mal. Aber vorher probiere ich im meta das encoding zu setzen. Vielleicht klappt das ja auch wenn ich das direkt im pydoc.py reinsetze, dann kann ich beim bugtracker das ja mal als Vorschlag schicken
Irgendwie finde ich das nun recht interessant, mal gucken wie pydoc implementiert ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Danke Leute ihr seit Genial!! Ich hab epydoc jetzt installiert und ausprobiert! Einfach Genial! Umlaute, etc werden richtig übernommen und das Styling ist auch einfach spitze!
Da hab ich auch ne kurze frage, wie gebe ich für eine Variable einen Docstring an? Sehe gerad das sowas auch geht, da mir bei description für eine Varibale none angezeigt wird. Wuste ich bis her nicht. Bin davon ausgegangen das man nur Header, Klassen, Methoden und Funktionen mit docstrings versehen kann.
LG und nochmals vielen dank
EDIT:
EDIT2: Entschuldigt meine Euphorie aber epydoc ist der pure Wahnsinn!! Der zeigt sogar den source code an und bietet ne collaps funktion von Classen/Methoden
Da hab ich auch ne kurze frage, wie gebe ich für eine Variable einen Docstring an? Sehe gerad das sowas auch geht, da mir bei description für eine Varibale none angezeigt wird. Wuste ich bis her nicht. Bin davon ausgegangen das man nur Header, Klassen, Methoden und Funktionen mit docstrings versehen kann.
LG und nochmals vielen dank
EDIT:
Ist schon komisch, hab mich noch par Minuten rangesetzt aber es ging irgendwie nicht auch nicht mit den meta-tag. Liegt vielleicht daran wie die datei gespeichert wird, wie du schon meintest.Leonidas hat geschrieben:Problem ist, dass man das Encoding nicht "einfach so" auf ISO-8859-1 oder ISO-8859-15 setzen kann, weil es ja noch sein kann, dass das Programm in ISO-8859-2 gespeichert sein kann oder in UTF-8 oder in.. whatever. Da müsste man wohl erstmal das ggf. vorhandene Emacs-Cookie auslesen (# -*- coding -*-) und danach erst entscheiden welches Encoding die HTML-Datei haben soll.XtraNine hat geschrieben:OK danke, ich lade mir mal epydoc runter und teste das mal. Aber vorher probiere ich im meta das encoding zu setzen. Vielleicht klappt das ja auch wenn ich das direkt im pydoc.py reinsetze, dann kann ich beim bugtracker das ja mal als Vorschlag schicken
Irgendwie finde ich das nun recht interessant, mal gucken wie pydoc implementiert ist.
EDIT2: Entschuldigt meine Euphorie aber epydoc ist der pure Wahnsinn!! Der zeigt sogar den source code an und bietet ne collaps funktion von Classen/Methoden
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Stimmt: Variablen (d.h. 'Namen') haben in der Regel keine Docstrings. Du kannst allerdings versuchen über die Variable einen Kommentar zu schrieben, vielleicht übernimmt Epydoc ja diesen Text mit in die Dokumentation (Wild guess).XtraNine hat geschrieben:Da hab ich auch ne kurze frage, wie gebe ich für eine Variable einen Docstring an? Sehe gerad das sowas auch geht, da mir bei description für eine Varibale none angezeigt wird. Wuste ich bis her nicht. Bin davon ausgegangen das man nur Header, Klassen, Methoden und Funktionen mit docstrings versehen kann.
Naja, noch zu den Docstrings die Variablen haben oder nicht haben:
Code: Alles auswählen
In [13]:text = 'abc'
In [14]: print text.__doc__
str(object) -> string
Return a nice string representation of the object.
If the argument is a string, the return value is the same object.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi XtraNine!XtraNine hat geschrieben:wie gebe ich für eine Variable einen Docstring an?
http://epydoc.sourceforge.net/whatsnew.html
Code: Alles auswählen
>>> #: docstring for x
... x = 22
>>> x = 22 #: docstring for x
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Oder man dekodiert entsprechend dem Coding-Cookie und schreibt dann grundsätzlich UTF-8 raus. Das macht es auch einfacher Docstrings aus verschiedenen Dateien in verschiedenen Kodierungen auf einer HTML-Seite auszugeben. Zum Beispiel eine Übersichtsseite über alle Module in einem Package.Leonidas hat geschrieben:Problem ist, dass man das Encoding nicht "einfach so" auf ISO-8859-1 oder ISO-8859-15 setzen kann, weil es ja noch sein kann, dass das Programm in ISO-8859-2 gespeichert sein kann oder in UTF-8 oder in.. whatever. Da müsste man wohl erstmal das ggf. vorhandene Emacs-Cookie auslesen (# -*- coding -*-) und danach erst entscheiden welches Encoding die HTML-Datei haben soll.
@gerold:
Danke, Super das funktioniert
Ich habe glaube ich gerade einen Bug (?) entdeckt in epydoc.
Wenn ich z.B. folgenden Code habe...:
Dan steht bei Variables Details unter Value zur variable c eine 8 anstatt a*b. Warum ist das so und kann man das abstellen? Auf die schnelle habe ich da nichts gefunden.
Danke, Super das funktioniert
Ich habe glaube ich gerade einen Bug (?) entdeckt in epydoc.
Wenn ich z.B. folgenden Code habe...:
Code: Alles auswählen
a = 2
b = 4
c = a*b