CLI - brauche input...

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

bin mir bei folgendem gerade nicht so schlüssig...

Einen neuen Termin in meinem Kalender zu erstellen schaut momentan so aus:

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00
So weit, so gut. Um nun einen Termin mit Wiederholung zu erstellen, fallen mir folgende Möglichkeiten ein:

1

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 recurrence=type:monthly days:23, 25, 27
2

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 --recurrence type=monthly days=23, 25, 27
3

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 type=monthly days=23, 25, 27
Ohne es wirklich begründen zu können: Möglichkeit 1 gefällt mir nicht...

Ich favorisiere Möglichkeit 2, da mir diese Syntax dann entgegenkommt, wenn es darum geht, bei einem bestehenden Termin nachträglich eine Wiederholung einzurichten. Könnte dann so aussehen:

Code: Alles auswählen

$ denkdran --modify ID 18 --recurrence type=monthly days=23, 25, 27
Selbiges ginge natürlich auch mit Möglichkeit 3, allerdings werden Wiederholungsargumente bei Möglichkeit 2 auch ausdrücklich als solche eingeleitet.

Für Möglichkeit 3 spräche, dass die Wiederholungsargumente von den Terminargumenten nicht abgesondert sind (auch wenn eine Wiederholung intern eine eigene Klasse ist) und somit sichtbar zu einem Termin gehören. Allerdings muss ich beim Parsen dann Termin- und Wiederholungsargumente trennen, aber egal!

Was meint ihr?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

4. da ich da ein paar Redundanzen sehe

Code: Alles auswählen

$ denkdran --add title=Neuer Termin begin=2012.1.23 15:00 end=16:00 monthly=23, 25, 27
Ich finde uebrigens, dass du mit 2. einen inkonsistenten Weg gehst, da du sonstige Attribute von deinen Terminen sonst auch nicht mit "--" einleitest.
BlackJack

@cofi: Das finde ich nicht inkonsequent. Die Option ``--add`` bekommt die zwingend notwendigen Attribute um einen Termin anzulegen und zusätzliche, optionale Attribute, verwenden weitere Optionen.

Ungewöhlich finde ich eher, dass eine Option sowohl mehrere Werte haben kann, als auch ein Wert Leerzeichen enthalten kann ohne dass da irgend etwas „escaped” werden muss.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

cofi hat geschrieben:4. da ich da ein paar Redundanzen sehe
Bei jährlichen Wiederholungen sehe ich da aber dann Probleme:

Code: Alles auswählen

$ denkdran --add ... type=yearly months=1, 4, 7, 10 days=23, 25, 27
Sicherlich könnte man sich das type-Attribut sparen, ich finde aber, dass die explizite Nennung Fehlinterpretationen vermeidet.
Oder hab' ich Dich falsch verstanden?
cofi hat geschrieben:... sonst auch nicht mit "--" einleitest.
Was die zusätzliche '--recurrence'-Option anbelangt bin ich auch nicht so wirklich glücklich. Andernfalls sehe ich es eben auch so wie BlackJack, dass eine Wiederholung, obwohl zu einem Termin gehörend, eben auch als etwas eigenständiges gesehen werden kann.
BlackJack hat geschrieben:Ungewöhlich finde ich eher, dass eine Option sowohl mehrere Werte haben kann, als auch ein Wert Leerzeichen enthalten kann ohne dass da irgend etwas „escaped” werden muss.
Da habe ich mich bewusst gegen POSIX entschieden. Ich sehe keine Probleme am Horizont, wenn Attributwerte ohne diese lästigen Anführungszeichen übergeben werden können. Beim Parsen interpretiere ich alles, was zwischen dem ersten und dem letzten Vorkommen eines Attributnamens steht als Attributwert. Und sollte es wirklich einmal zu einem Konflikt kommen, darf man ja Anführungszeichen verwenden.
Und eine Werteliste kann so

Code: Alles auswählen

1,2 ich, du
aussehen. Ein klein wenig Komfort sollte schon sein. Zumal dieser ja ohne undurchschaubare Magie möglich ist.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten