Ich bin dabei zu untersuchen, wie man eine menschenfreundliche Textdarstellung von Wiederholungsregeln ähnlich den toText()
und fromText()
Methoden von rrule.js; Ich möchte es jedoch in Python unter dateutil.rrule implementieren.Implementierung einer Äquivalenzrelation für Wiederholungsregeln (Rules)
Testen solcher Methoden, die prüfen, dass sie einander 'invers' sind, dh, sie rufen das Ergebnis des anderen auf und prüfen, ob das Ergebnis der ursprünglichen Eingabe entspricht. Was mich zur Frage bringt: Was bedeutet es genau, dass zwei Objekte gleichwertig sind?
Die neueste Version von dateutil.rrule
, 2.6.0, scheint keine __eq__
Methode zur rrule
Klasse zu haben (siehe source code). Äquivalenz scheint auch nicht so trivial zu sein wie die Äquivalenz aller Attribute, da manchmal ein anderer freq
Parameter immer noch zu den gleichen Wiederholungen führen kann. (Zum Beispiel führt freq=DAILY
und freq=WEEKLY
zu den gleichen Wiederholungszeiten, wenn byweekday=FR
gewählt wird; siehe Screen-Grabs unten aus der rrule.js demo).
Kennt jemand eine Implementierung einer Äquivalenzrelation für Rules? (Es muss nicht in Python sein).
In der Tat, auch in rrule.js, scheint die 'Rules' nicht genau rekonstruierbar zu sein, da sie die Startzeit (den' dtstart' Parameter) auslässt. Vielleicht reicht es aus, nur eine "rule => text_version" -Umsetzung zu implementieren. –