@@ -2099,7 +2099,13 @@ <h4 id="frequenz.client.dispatch.recurrence.RecurrenceRule" class="doc doc-headi
20992099< span class ="normal "> < a href ="#__codelineno-0-221 "> 221</ a > </ span >
21002100< span class ="normal "> < a href ="#__codelineno-0-222 "> 222</ a > </ span >
21012101< span class ="normal "> < a href ="#__codelineno-0-223 "> 223</ a > </ span >
2102- < span class ="normal "> < a href ="#__codelineno-0-224 "> 224</ a > </ span > </ pre > </ div > </ td > < td class ="code "> < div > < pre > < span > </ span > < code > < span id ="__span-0-112 "> < a id ="__codelineno-0-112 " name ="__codelineno-0-112 "> </ a > < span class ="nd "> @dataclass</ span > < span class ="p "> (</ span > < span class ="n "> kw_only</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> )</ span >
2102+ < span class ="normal "> < a href ="#__codelineno-0-224 "> 224</ a > </ span >
2103+ < span class ="normal "> < a href ="#__codelineno-0-225 "> 225</ a > </ span >
2104+ < span class ="normal "> < a href ="#__codelineno-0-226 "> 226</ a > </ span >
2105+ < span class ="normal "> < a href ="#__codelineno-0-227 "> 227</ a > </ span >
2106+ < span class ="normal "> < a href ="#__codelineno-0-228 "> 228</ a > </ span >
2107+ < span class ="normal "> < a href ="#__codelineno-0-229 "> 229</ a > </ span >
2108+ < span class ="normal "> < a href ="#__codelineno-0-230 "> 230</ a > </ span > </ pre > </ div > </ td > < td class ="code "> < div > < pre > < span > </ span > < code > < span id ="__span-0-112 "> < a id ="__codelineno-0-112 " name ="__codelineno-0-112 "> </ a > < span class ="nd "> @dataclass</ span > < span class ="p "> (</ span > < span class ="n "> kw_only</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> )</ span >
21032109</ span > < span id ="__span-0-113 "> < a id ="__codelineno-0-113 " name ="__codelineno-0-113 "> </ a > < span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc "> RecurrenceRule</ span > < span class ="p "> :</ span >
21042110</ span > < span id ="__span-0-114 "> < a id ="__codelineno-0-114 " name ="__codelineno-0-114 "> </ a > < span class ="w "> </ span > < span class ="sd "> """Ruleset governing when and how a dispatch should re-occur.</ span >
21052111</ span > < span id ="__span-0-115 "> < a id ="__codelineno-0-115 " name ="__codelineno-0-115 "> </ a >
@@ -2187,31 +2193,37 @@ <h4 id="frequenz.client.dispatch.recurrence.RecurrenceRule" class="doc doc-headi
21872193</ span > < span id ="__span-0-197 "> < a id ="__codelineno-0-197 " name ="__codelineno-0-197 "> </ a > < span class ="sd "> The rrule object.</ span >
21882194</ span > < span id ="__span-0-198 "> < a id ="__codelineno-0-198 " name ="__codelineno-0-198 "> </ a >
21892195</ span > < span id ="__span-0-199 "> < a id ="__codelineno-0-199 " name ="__codelineno-0-199 "> </ a > < span class ="sd "> Raises:</ span >
2190- </ span > < span id ="__span-0-200 "> < a id ="__codelineno-0-200 " name ="__codelineno-0-200 "> </ a > < span class ="sd "> ValueError: If the interval is 0.</ span >
2196+ </ span > < span id ="__span-0-200 "> < a id ="__codelineno-0-200 " name ="__codelineno-0-200 "> </ a > < span class ="sd "> ValueError: If the interval is 0 or the frequency is UNSPECIFIED .</ span >
21912197</ span > < span id ="__span-0-201 "> < a id ="__codelineno-0-201 " name ="__codelineno-0-201 "> </ a > < span class ="sd "> """</ span >
2192- </ span > < span id ="__span-0-202 "> < a id ="__codelineno-0-202 " name ="__codelineno-0-202 "> </ a > < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> interval </ span > < span class ="o "> ==</ span > < span class ="mi " > 0 </ span > < span class ="p "> :</ span >
2193- </ span > < span id ="__span-0-203 "> < a id ="__codelineno-0-203 " name ="__codelineno-0-203 "> </ a > < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Interval must be greater than 0 "</ span > < span class ="p "> )</ span >
2198+ </ span > < span id ="__span-0-202 "> < a id ="__codelineno-0-202 " name ="__codelineno-0-202 "> </ a > < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> frequency </ span > < span class ="o "> ==</ span > < span class ="n " > Frequency </ span > < span class =" o " > . </ span > < span class =" n " > UNSPECIFIED </ span > < span class ="p "> :</ span >
2199+ </ span > < span id ="__span-0-203 "> < a id ="__codelineno-0-203 " name ="__codelineno-0-203 "> </ a > < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Frequency must be specified "</ span > < span class ="p "> )</ span >
21942200</ span > < span id ="__span-0-204 "> < a id ="__codelineno-0-204 " name ="__codelineno-0-204 "> </ a >
2195- </ span > < span id ="__span-0-205 "> < a id ="__codelineno-0-205 " name ="__codelineno-0-205 "> </ a > < span class ="n "> count</ span > < span class ="p "> ,</ span > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
2196- </ span > < span id ="__span-0-206 "> < a id ="__codelineno-0-206 " name ="__codelineno-0-206 "> </ a > < span class ="k "> if</ span > < span class ="n "> end</ span > < span class ="o "> :=</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> end_criteria</ span > < span class ="p "> :</ span >
2197- </ span > < span id ="__span-0-207 "> < a id ="__codelineno-0-207 " name ="__codelineno-0-207 "> </ a > < span class ="n "> count</ span > < span class ="o "> =</ span > < span class ="n "> end</ span > < span class ="o "> .</ span > < span class ="n "> count</ span >
2198- </ span > < span id ="__span-0-208 "> < a id ="__codelineno-0-208 " name ="__codelineno-0-208 "> </ a > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="n "> end</ span > < span class ="o "> .</ span > < span class ="n "> until</ span >
2199- </ span > < span id ="__span-0-209 "> < a id ="__codelineno-0-209 " name ="__codelineno-0-209 "> </ a >
2200- </ span > < span id ="__span-0-210 "> < a id ="__codelineno-0-210 " name ="__codelineno-0-210 "> </ a > < span class ="n "> rrule_obj</ span > < span class ="o "> =</ span > < span class ="n "> rrule</ span > < span class ="o "> .</ span > < span class ="n "> rrule</ span > < span class ="p "> (</ span >
2201- </ span > < span id ="__span-0-211 "> < a id ="__codelineno-0-211 " name ="__codelineno-0-211 "> </ a > < span class ="n "> freq</ span > < span class ="o "> =</ span > < span class ="n "> _RRULE_FREQ_MAP</ span > < span class ="p "> [</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> frequency</ span > < span class ="p "> ],</ span >
2202- </ span > < span id ="__span-0-212 "> < a id ="__codelineno-0-212 " name ="__codelineno-0-212 "> </ a > < span class ="n "> dtstart</ span > < span class ="o "> =</ span > < span class ="n "> start_time</ span > < span class ="p "> ,</ span >
2203- </ span > < span id ="__span-0-213 "> < a id ="__codelineno-0-213 " name ="__codelineno-0-213 "> </ a > < span class ="n "> count</ span > < span class ="o "> =</ span > < span class ="n "> count</ span > < span class ="p "> ,</ span >
2204- </ span > < span id ="__span-0-214 "> < a id ="__codelineno-0-214 " name ="__codelineno-0-214 "> </ a > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="n "> until</ span > < span class ="p "> ,</ span >
2205- </ span > < span id ="__span-0-215 "> < a id ="__codelineno-0-215 " name ="__codelineno-0-215 "> </ a > < span class ="n "> byminute</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byminutes</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2206- </ span > < span id ="__span-0-216 "> < a id ="__codelineno-0-216 " name ="__codelineno-0-216 "> </ a > < span class ="n "> byhour</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byhours</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2207- </ span > < span id ="__span-0-217 "> < a id ="__codelineno-0-217 " name ="__codelineno-0-217 "> </ a > < span class ="n "> byweekday</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> _RRULE_WEEKDAY_MAP</ span > < span class ="p "> [</ span > < span class ="n "> weekday</ span > < span class ="p "> ]</ span > < span class ="k "> for</ span > < span class ="n "> weekday</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byweekdays</ span > < span class ="p "> ]</ span >
2208- </ span > < span id ="__span-0-218 "> < a id ="__codelineno-0-218 " name ="__codelineno-0-218 "> </ a > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2209- </ span > < span id ="__span-0-219 "> < a id ="__codelineno-0-219 " name ="__codelineno-0-219 "> </ a > < span class ="n "> bymonthday</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> bymonthdays</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2210- </ span > < span id ="__span-0-220 "> < a id ="__codelineno-0-220 " name ="__codelineno-0-220 "> </ a > < span class ="n "> bymonth</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> bymonths</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2211- </ span > < span id ="__span-0-221 "> < a id ="__codelineno-0-221 " name ="__codelineno-0-221 "> </ a > < span class ="n "> interval</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> interval</ span > < span class ="p "> ,</ span >
2212- </ span > < span id ="__span-0-222 "> < a id ="__codelineno-0-222 " name ="__codelineno-0-222 "> </ a > < span class ="p "> )</ span >
2213- </ span > < span id ="__span-0-223 "> < a id ="__codelineno-0-223 " name ="__codelineno-0-223 "> </ a >
2214- </ span > < span id ="__span-0-224 "> < a id ="__codelineno-0-224 " name ="__codelineno-0-224 "> </ a > < span class ="k "> return</ span > < span class ="n "> rrule_obj</ span >
2201+ </ span > < span id ="__span-0-205 "> < a id ="__codelineno-0-205 " name ="__codelineno-0-205 "> </ a > < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> interval</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
2202+ </ span > < span id ="__span-0-206 "> < a id ="__codelineno-0-206 " name ="__codelineno-0-206 "> </ a > < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Interval must be greater than 0"</ span > < span class ="p "> )</ span >
2203+ </ span > < span id ="__span-0-207 "> < a id ="__codelineno-0-207 " name ="__codelineno-0-207 "> </ a >
2204+ </ span > < span id ="__span-0-208 "> < a id ="__codelineno-0-208 " name ="__codelineno-0-208 "> </ a > < span class ="n "> count</ span > < span class ="p "> ,</ span > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
2205+ </ span > < span id ="__span-0-209 "> < a id ="__codelineno-0-209 " name ="__codelineno-0-209 "> </ a > < span class ="k "> if</ span > < span class ="n "> end</ span > < span class ="o "> :=</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> end_criteria</ span > < span class ="p "> :</ span >
2206+ </ span > < span id ="__span-0-210 "> < a id ="__codelineno-0-210 " name ="__codelineno-0-210 "> </ a > < span class ="n "> count</ span > < span class ="o "> =</ span > < span class ="n "> end</ span > < span class ="o "> .</ span > < span class ="n "> count</ span >
2207+ </ span > < span id ="__span-0-211 "> < a id ="__codelineno-0-211 " name ="__codelineno-0-211 "> </ a > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="n "> end</ span > < span class ="o "> .</ span > < span class ="n "> until</ span >
2208+ </ span > < span id ="__span-0-212 "> < a id ="__codelineno-0-212 " name ="__codelineno-0-212 "> </ a >
2209+ </ span > < span id ="__span-0-213 "> < a id ="__codelineno-0-213 " name ="__codelineno-0-213 "> </ a > < span class ="n "> rrule_obj</ span > < span class ="o "> =</ span > < span class ="n "> rrule</ span > < span class ="o "> .</ span > < span class ="n "> rrule</ span > < span class ="p "> (</ span >
2210+ </ span > < span id ="__span-0-214 "> < a id ="__codelineno-0-214 " name ="__codelineno-0-214 "> </ a > < span class ="c1 "> # Mypy expects a Literal for the `freq` argument, but it can't infer</ span >
2211+ </ span > < span id ="__span-0-215 "> < a id ="__codelineno-0-215 " name ="__codelineno-0-215 "> </ a > < span class ="c1 "> # that the values from the `_RRULE_FREQ_MAP` dictionary are of the</ span >
2212+ </ span > < span id ="__span-0-216 "> < a id ="__codelineno-0-216 " name ="__codelineno-0-216 "> </ a > < span class ="c1 "> # correct type.</ span >
2213+ </ span > < span id ="__span-0-217 "> < a id ="__codelineno-0-217 " name ="__codelineno-0-217 "> </ a > < span class ="n "> freq</ span > < span class ="o "> =</ span > < span class ="n "> _RRULE_FREQ_MAP</ span > < span class ="p "> [</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> frequency</ span > < span class ="p "> ],</ span > < span class ="c1 "> # type: ignore[arg-type]</ span >
2214+ </ span > < span id ="__span-0-218 "> < a id ="__codelineno-0-218 " name ="__codelineno-0-218 "> </ a > < span class ="n "> dtstart</ span > < span class ="o "> =</ span > < span class ="n "> start_time</ span > < span class ="p "> ,</ span >
2215+ </ span > < span id ="__span-0-219 "> < a id ="__codelineno-0-219 " name ="__codelineno-0-219 "> </ a > < span class ="n "> count</ span > < span class ="o "> =</ span > < span class ="n "> count</ span > < span class ="p "> ,</ span >
2216+ </ span > < span id ="__span-0-220 "> < a id ="__codelineno-0-220 " name ="__codelineno-0-220 "> </ a > < span class ="n "> until</ span > < span class ="o "> =</ span > < span class ="n "> until</ span > < span class ="p "> ,</ span >
2217+ </ span > < span id ="__span-0-221 "> < a id ="__codelineno-0-221 " name ="__codelineno-0-221 "> </ a > < span class ="n "> byminute</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byminutes</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2218+ </ span > < span id ="__span-0-222 "> < a id ="__codelineno-0-222 " name ="__codelineno-0-222 "> </ a > < span class ="n "> byhour</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byhours</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2219+ </ span > < span id ="__span-0-223 "> < a id ="__codelineno-0-223 " name ="__codelineno-0-223 "> </ a > < span class ="n "> byweekday</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> _RRULE_WEEKDAY_MAP</ span > < span class ="p "> [</ span > < span class ="n "> weekday</ span > < span class ="p "> ]</ span > < span class ="k "> for</ span > < span class ="n "> weekday</ span > < span class ="ow "> in</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> byweekdays</ span > < span class ="p "> ]</ span >
2220+ </ span > < span id ="__span-0-224 "> < a id ="__codelineno-0-224 " name ="__codelineno-0-224 "> </ a > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2221+ </ span > < span id ="__span-0-225 "> < a id ="__codelineno-0-225 " name ="__codelineno-0-225 "> </ a > < span class ="n "> bymonthday</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> bymonthdays</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2222+ </ span > < span id ="__span-0-226 "> < a id ="__codelineno-0-226 " name ="__codelineno-0-226 "> </ a > < span class ="n "> bymonth</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> bymonths</ span > < span class ="ow "> or</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
2223+ </ span > < span id ="__span-0-227 "> < a id ="__codelineno-0-227 " name ="__codelineno-0-227 "> </ a > < span class ="n "> interval</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> interval</ span > < span class ="p "> ,</ span >
2224+ </ span > < span id ="__span-0-228 "> < a id ="__codelineno-0-228 " name ="__codelineno-0-228 "> </ a > < span class ="p "> )</ span >
2225+ </ span > < span id ="__span-0-229 "> < a id ="__codelineno-0-229 " name ="__codelineno-0-229 "> </ a >
2226+ </ span > < span id ="__span-0-230 "> < a id ="__codelineno-0-230 " name ="__codelineno-0-230 "> </ a > < span class ="k "> return</ span > < span class ="n "> rrule_obj</ span >
22152227</ span > </ code > </ pre > </ div > </ td > </ tr > </ table > </ div >
22162228 </ details >
22172229
0 commit comments