Ñò ô†³Kc@s dZddkZddgZdZedZedZedZedZed Zed Z he d 6ed 6ed 6ed6ed6ed6ed6Z e i ƒZ e i d„ƒed„ZeidƒZd„Zd„ZedjoddkZeiƒndS(s DateInterval.py Convert interval strings (in the form of 1w2d, etc) to seconds, and back again. Is not exactly about months or years (leap years in particular). Accepts (y)ear, (b)month, (w)eek, (d)ay, (h)our, (m)inute, (s)econd. Exports only timeEncode and timeDecode functions. iÿÿÿÿNtinterval_decodetinterval_encodeii<iiiimtytbtwtdthtmtscCst|d|dƒ S(i(tcmp(taR((s;/usr/lib/python2.6/site-packages/paste/util/dateinterval.pyt"scCs©d}|}t|ƒ}xNtD]F\}}||jo-t||ƒ\}}|d||f7}qqW|djod|}n"|pdS|od|}n|S(sµEncodes a number of seconds (representing a time interval) into a form like 1h2d3s. >>> interval_encode(10) '10s' >>> interval_encode(493939) '5d17h12m19s' ts%i%sit-t0t+(tabst timeOrderedtdivmod(tsecondst include_signRtorigtchartamountti((s;/usr/lib/python2.6/site-packages/paste/util/dateinterval.pyR$s     s[0-9]+[a-zA-Z]cCsÍd}d}|iƒ}|idƒo|d}d}n|idƒo|d}nxlt|tƒD][}|idƒdiƒ}ti|ƒpqjn|t|idƒd ƒt|7}qjW|S(säDecodes a number in the format 1h4d3m (1 hour, 3 days, 3 minutes) into a number of seconds >>> interval_decode('40s') 40 >>> interval_decode('10000s') 10000 >>> interval_decode('3d1w45s') 864045 iiR iÿÿÿÿR( tstript startswitht allMatchest_timeREtgrouptlowert timeValuesthas_keytint(RttimetsigntmatchR((s;/usr/lib/python2.6/site-packages/paste/util/dateinterval.pyR=s    )cCsbd}t|ƒ}g}|i||ƒ}x1|o)|i|ƒ|i||iƒƒ}q-W|S(s1Return a list of matches for regex in source i(tlentsearchtappendtend(tsourcetregextposR(trvR$((s;/usr/lib/python2.6/site-packages/paste/util/dateinterval.pyRYs  t__main__(t__doc__tret__all__tsecondtminutethourtdaytweektmonthtyearRtitemsRtsorttFalseRtcompileRRRt__name__tdoctestttestmod(((s;/usr/lib/python2.6/site-packages/paste/util/dateinterval.pyt s4