Seite 1 von 1

MPD-Wecker

Verfasst: Montag 9. November 2009, 18:03
von ptrck
hej,

ich bin etwas aus der übung gekommen und zudem sowieso anfänger in python. daher habe ich mir zur übung folgendes geschrieben:

ein programm, das nach aktivierung in den standby modus wechselt, zu einer eingestellten zeit wieder aufwacht und den mpd anwirft. das ganze läuft über eine ncurses oberfläche (wollte ich einfach mal ausprobieren) in der man die zeit einstellen und einen letzten blick auf die weck-playlist werfen kann, einschlafen & wieder aufwachen wird mit rtcwake gemacht.

es ging mir mehr um das python-üben als um den nutzen. :)

wäre super, wenn der ein oder andere mal einen blick auf den code werfen könnte: http://paste.pocoo.org/show/149604/

danke!
patrick

Verfasst: Montag 9. November 2009, 18:16
von derdon
In Kurzform, weil ich eigentlich Englisch machen soll:

Verfasst: Montag 9. November 2009, 19:00
von snafu
Warum nutzt du `os.system()`, wo du doch offenbar weißt, dass es das modernere `subprocess.Popen()` gibt?

Verfasst: Montag 9. November 2009, 19:09
von Leonidas
Und wozu ``date`` verwenden, wenn Python dafür Tools in der Stdlib mitbringt?

Verfasst: Montag 9. November 2009, 19:24
von ptrck
* PEP8
* es gibt conditional expressions
* \ muss nicht immer sein: http://docs.python.org/howto/doanddont. ... statements
* es gibt curses.wrapper
* except sollte explizit angeben, was abgefangen wird
was passt denn nicht so gut in die pep8-standards?
conditional expressions habe ich eingebaut, ging bisher an mir vorbei.. gute sache!
den rest hab ich angepasst.. danke!
snafu hat geschrieben:Warum nutzt du `os.system()`, wo du doch offenbar weißt, dass es das modernere `subprocess.Popen()` gibt?
du hast recht, ist geändert. danke
Leonidas hat geschrieben:Und wozu ``date`` verwenden, wenn Python dafür Tools in der Stdlib mitbringt?
ich habe den befehl bisher direkt über die kommandozeile eingegeben und fand das mit den date-strings sehr praktisch. also dass man relativ flexibel "tomorrow 8" oder etwas derartiges eingeben kann. ich habe da nichts dergleichen in den python-libs gefunden. ich könnte mir natürlich etwas ähnliches selber bauen. mal schauen... danke!

Verfasst: Dienstag 10. November 2009, 13:20
von mkesper
ptrck hat geschrieben:ich habe den befehl bisher direkt über die kommandozeile eingegeben und fand das mit den date-strings sehr praktisch. also dass man relativ flexibel "tomorrow 8" oder etwas derartiges eingeben kann. ich habe da nichts dergleichen in den python-libs gefunden. ich könnte mir natürlich etwas ähnliches selber bauen. mal schauen... danke!
Sowas ist halt problematisch, weil eine andere Implementierung des Befehls eventuell anders reagiert (von Plattformunabhängigkeit jetzt mal nicht zu reden).

Verfasst: Dienstag 10. November 2009, 17:33
von ptrck
mkallas hat geschrieben:Sowas ist halt problematisch, weil eine andere Implementierung des Befehls eventuell anders reagiert (von Plattformunabhängigkeit jetzt mal nicht zu reden).
ja, das stimmt wohl. muss ich ändern!
ich habe etwas in der richtung gefunden (http://pypi.python.org/pypi/parsedatetime/0.8.6), versuche mich im moment aber doch erst einmal selbst daran. ein wenig regexp-wiederholung kann nicht schaden.

Verfasst: Dienstag 10. November 2009, 17:57
von snafu
Reicht dir [mod]datetime[/mod] nicht?

Verfasst: Donnerstag 12. November 2009, 11:53
von ptrck
snafu hat geschrieben:Reicht dir [mod]datetime[/mod] nicht?
es ging mir darum, einfach eine beliebige datums-/zeitangabe eingeben zu können, die dann erkannt wird. datetime ist ja immer an bestimmte formate (%y.%m.%d, etc) gebunden. ich bin gerade dabei, eine klasse zu schreiben, die beliebige, "menschliche" eingaben (zb tomorrow 16:00) entgegennimmt und ein entsprechendes datetime-objekt daraus macht. mal schauen was daraus wird. soweit eine gute übung.

Edit:
so schaut das ganze bisher aus:
http://paste.pocoo.org/show/150800/