%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/__pycache__/datetime.cpython-38.pyc

U

naX
@sdZddlZddlZddlZddZdZdZdZ	dd	d
d	dd	dd	d	dd	dd	g
Z
dgZdZe
ddD]Z
eeee
7Zqd[[
dd
ZddZddZddZddZedZedZedZedkstededkstededkstddZdddd d!d"d#d$d%d&d'd(d)g
Zdd*d+d,d-d.d/d0gZd1d2Zdld4d5Zd6d7Zd8d9Zd:d;Zd<d=Z d>d?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)GdPdQdQZ*e*dRe*_+e*dSdTdUdUdVdWe*_,e*ddXe*_-GdYdZdZZ.e.Z/e.ddde._+e.dd[d	e._,e*dd\e._-Gd]d^d^Z0e0Z1Gd_d`d`ZeZ2eddde_+edTdUdUdVe_,e*ddXe_-Gdadbdbe.Z3e3ddde3_+e3dd[d	dTdUdUdVe3_,e*ddXe3_-dcddZ4Gdedfdfe0Z5e56e*de5_7e56e*dTdUdge5_+e56e*dTdUdge5_,e3dhdde5j7diZ8zddjl9TWne:k
r.YnXX[[[
[[[[8[	[[[%[$[&['["[#[[([/[[[[[[[4[[[[2[1[[[)[[![ ddkl9mZdS)mzConcrete date/time and related types.

See http://www.iana.org/time-zones/repository/tz-link.html for
time zone and DST data sources.
NcCs||krdS||krdSdS)Nrxyrr$/usr/local/lib/python3.8/datetime.py_cmpsr	ri'i۹7rcCs$|ddko"|ddkp"|ddkS)zyear -> 1 if leap year, else 0.rdr)yearrrr_is_leap%srcCs(|d}|d|d|d|dS)z2year -> number of days before January 1st of year.rmr
rrr)rrrrr_days_before_year)srcCs:d|krdksnt||dkr2t|r2dSt|S)z9year, month -> number of days in that month in that year.r)AssertionErrorr_DAYS_IN_MONTHrmonthrrr_days_in_month.srcCs6d|krdksntdt||dko2t|S)zCyear, month -> number of days in year preceding first day of month.rrmonth must be in 1..12r)r_DAYS_BEFORE_MONTHrrrrr_days_before_month5srcCs`d|krdksntdt||}d|kr<|ksJntd|t|t|||S)z>year, month, day -> ordinal, considering 01-Jan-0001 as day 1.rrrday must be in 1..%d)rrrrrrdaydimrrr_ymd2ord:s
"r#ieir
c	Cs8|d8}t|t\}}|dd}t|t\}}t|t\}}t|d\}}||d|d|7}|dkst|dkr|dkst|dddfS|d	ko|d
kp|d	k}|t|kst|dd?}t||d
ko|}||kr|d8}|t||d
ko|8}||8}d|kr$t||ks*nt|||dfS)z@ordinal -> (year, month, day), considering 01-Jan-0001 as day 1.rrrrr
rrr
2r%r)	divmod_DI400Y_DI100Y_DI4Yrrrrr)	nZn400rZn100Zn4Zn1ZleapyearrZ	precedingrrr_ord2ymdSs($r/ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecZMonZTueZWedZThuZFriZSatZSunc	Cs>t|||dd}t|||}t|||||||||f	S)N)r#r_timestruct_time)	rmdhhmmssZdstflagZwdayZdnumrrr_build_struct_timesr9autocCstdddddd}|dkr&|r dnd	}n|d
kr6|d}z||}Wntk
r^tdYnX|||||SdS)
Nz{:02d}z
{:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})hoursminutessecondsmillisecondsmicrosecondsr:r?r=r>zUnknown timespec value)KeyError
ValueErrorformat)r6r7r8ustimespecZspecsfmtrrr_format_timesrGcCsd}|dk	r|jdkr"d}|}nd}t|tdd\}}t|tdd\}}|d|||f7}|sj|jr|d	|j7}|jr|d
|j7}|S)Nr-+rr;r<z%s%02d:%02dz:%02d.%06d)daysr*	timedeltar?r=)offssignr6r7r8rrr_format_offsets

rScCsd}d}d}g}|j}dt|}}	||	kr||}
|d7}|
dkr||	kr||}
|d7}|
dkr|dkrdt|dd}||q|
dkrl|dkrRd}t|d	rR|}|dk	rRd
}|jdkr|}d}t|tdd\}
}t|tdd
\}}|j}|j	}|r,d||
|||f}n&|rDd||
||f}nd||
|f}d|ks`t
||n^|
dkr|dkrd}t|dr|}|dk	r|dd}||n|d||
n|dq$||
q$d
|}t||S)Nrr%fz%06dmicrosecondzrH	utcoffsetrJrIrKrLz%c%02d%02d%02d.%06dz%c%02d%02d%02dz
%c%02d%02dZtznamez%%)appendlengetattrhasattrrXrNr*rOr=r?rrZreplacejoinr2strftime)objectrC	timetupleZfreplaceZzreplaceZZreplaceZ	newformatpushir.ZchoffsetrRhrestr4rQurrr_wrap_strftimesn













rjcCsjt|dd}|ddkr,td|dt|dd}|ddkrPtdt|dd	}|||gS)
Nrr
rIzInvalid date separator: %sr%r1zInvalid date separator
)intrB)Zdtstrrrr!rrr_parse_isoformat_datesrncCs
t|}ddddg}d}tddD]t}||dkr:tdt|||d||<|d7}|||d}|rv|dkrzq|dkrtd||d7}q"||kr||dkrtd	nN|d7}||}|d
krtd	t||d|d<|dkr|dd9<|S)Nrr'rzIncomplete time componentr:zInvalid time separator: %c.zInvalid microsecond component)r'r0r@)r\rangerBrm)tstrlen_str
time_compsposcompZ	next_charZ
len_remainderrrr_parse_hh_mm_ss_ffs2



rwc
Cst|}|dkrtd|ddp2|dd}|dkrL|d|dn|}t|}d}|dkr||d}t|dkrtdt|}td	d
|Drtj}nD||ddkrdnd}t|d|d|d|dd
}	t||	}|||S)NrzIsoformat time too shortrIrrJr)r%rkzMalformed time zone stringcss|]}|dkVqdS)rNr).0rrrr	<genexpr>Tsz(_parse_isoformat_time.<locals>.<genexpr>rr'r;r<r=r?)	r\rBfindrwalltimezoneutcrOr[)
rrrsZtz_posZtimestrrtZtziZtzstrZtz_compsZtzsignZtdrrr_parse_isoformat_time;s,
rcCs&|dk	r"t|ts"tdt|dS)Nz4tzinfo.tzname() must return None or string, not '%s')
isinstancestr	TypeErrortype)namerrr
_check_tznamedsrcCsj|dkst|dkrdSt|ts6td|t|ftd|krTtdksfntd||fdS)N)rXdstz3tzinfo.%s() must return None or timedelta, not '%s'rzN%s()=%s, must be strictly between -timedelta(hours=24) and timedelta(hours=24))rrrOrrrB)rrfrrr_check_utc_offsetos

 rcCst|tr|St|tr tdz|}Wntk
r@Yn"Xt|ts^tdt|j|S|}z|}Wntk
rYnDXt|tstdt|jddl	}|j
dt|jtdd|Stdt|jdS)Nz$integer argument expected, got floatz$__index__ returned non-int (type %s)z"__int__ returned non-int (type %s)rz$an integer is required (got type %s)r)
stacklevel)rrmfloatr	__index__AttributeErrorr__name____int__warningswarnDeprecationWarning)valueZorigrrrr_check_int_field{sB



rcCst|}t|}t|}t|kr,tks@ntdttf|d|krTdks`ntd|t||}d|kr~|ksntd|||||fS)Nzyear must be in %d..%drrrr)rMINYEARMAXYEARrBrr rrr_check_date_fieldss

rcCst|}t|}t|}t|}d|kr4dks@ntd|d|krTdks`ntd|d|krtdksntd|d|krdksntd||d	krtd
||||||fS)Nrzhour must be in 0..23;zminute must be in 0..59zsecond must be in 0..59?Bz microsecond must be in 0..999999)rrzfold must be either 0 or 1)rrB)hourminutesecondrVfoldrrr_check_time_fieldss




rcCs|dk	rt|tstddS)Nz4tzinfo argument must be None or of a tzinfo subclass)rtzinfor)tzrrr_check_tzinfo_argsrcCs tdt|jt|jfdS)Nzcan't compare '%s' to '%s')rrrrrrr	_cmperrorsrcCsRt||\}}|d9}|dkr&||kn||k}|sF||krN|ddkrN|d7}|S)zdivide a by b and round result to the nearest integer

    When the ratio is exactly half-way between two integers,
    the even integer is returned.
    rrr)r*)abqrZgreater_than_halfrrr_divide_and_roundsrc@seZdZdZdZd?ddZddZdd	Zd
dZe	dd
Z
e	ddZe	ddZddZ
e
ZddZddZddZddZddZddZeZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Z d6d7Z!d8d9Z"d:d;Z#d<d=Z$d>S)@rOaRepresent the difference between two datetime objects.

    Supported operators:

    - add, subtract timedelta
    - unary plus, minus, abs
    - compare to timedelta
    - multiply, divide by int

    In addition, datetime supports subtraction of two datetime objects
    returning a timedelta, and addition or subtraction of a datetime
    and a timedelta giving a datetime.

    Representation: (days, seconds, microseconds).  Why?  Because I
    felt like it.
    )_days_seconds
_microseconds	_hashcodercCsVd}}	}
||d7}||d|d7}||d7}t|trt|\}}t|d\}}
|
t|
ksrtt|
}	|t|kstt|}nd}|}t|tstt|dkstt|tstt|	d	kstt|tr(t|\}}|t|kstt|}||7}t|d
ks,tn|}t|ts<tt|d
ksNtt|ts^tt|d	\}}||7}|	t|7}	t|	tstt|	dkst|d}t|d
kstt|trt||}t|d\}}t|d	\}}||7}|	|7}	n@t|}t|d\}}t|d	\}}||7}|	|7}	t||}t|	tsRtt|tsbtt|	dksttt|dkstt|d\}}
|	|7}	t|	d	\}}	||7}t|tstt|	trd|	krd	ksntt|
trd|
krdksntt|dkr0t	d|t
|}||_|	|_
|
|_d|_|S)Nrr1<r@g@gg?Qg@i.Ag@A@BigGAɚ;z$timedelta # of days is too large: %dr)rr_mathmodfrmrabsr*round
OverflowErrorrb__new__rrrr)clsrNr=r?r>r<r;Zweeksr5rQrDZdayfracZdaysecondsfracZdaysecondswholeZsecondsfracZusdoubleselfrrrrs


**
ztimedelta.__new__cCspg}|jr|d|j|jr0|d|j|jrF|d|j|sT|dd|jj|jjd|fS)Nzdays=%dz
seconds=%dzmicroseconds=%d0	%s.%s(%s), )rr[rr	__class__
__module____qualname__r`)rargsrrr__repr__Ms
ztimedelta.__repr__cCsdt|jd\}}t|d\}}d|||f}|jrLdd}d||j|}|jr`|d|j}|S)Nrz%d:%02d:%02dcSs|t|dkrdpdfS)NrrQrH)r)r.rrrplural`sz!timedelta.__str__.<locals>.pluralz
%d day%s, rM)r*rrr)rr7r8r6rQrrrr__str__[sztimedelta.__str__cCs|jd|jd|jdS)zTotal seconds in the duration.rr)rNr=r?rrrr
total_secondsgs
ztimedelta.total_secondscCs|jSrNrrrrrrNmsztimedelta.dayscCs|jSr=)rrrrrr=rsztimedelta.secondscCs|jSr?)rrrrrr?wsztimedelta.microsecondscCs2t|tr.t|j|j|j|j|j|jStSNrrOrrrNotImplementedrotherrrr__add__|s


ztimedelta.__add__cCs2t|tr.t|j|j|j|j|j|jStSrrrrrr__sub__s


ztimedelta.__sub__cCst|tr||StSr)rrOrrrrr__rsub__s

ztimedelta.__rsub__cCst|j|j|jSr)rOrrrrrrr__neg__sztimedelta.__neg__cCs|Srrrrrr__pos__sztimedelta.__pos__cCs|jdkr|S|SdSNrrrrrr__abs__s
ztimedelta.__abs__cCs`t|tr(t|j||j||j|St|tr\|}|\}}tddt	|||St
Sr)rrmrOrrrr_to_microsecondsas_integer_ratiorrrrusecrrrrr__mul__s


ztimedelta.__mul__cCs|jd|jd|jS)Nrrrrrrrrrrsztimedelta._to_microsecondscCsNt|ttfstS|}t|tr0||St|trJtdd||SdSr)rrmrOrr)rrrrrr__floordiv__s

ztimedelta.__floordiv__cCs~t|tttfstS|}t|tr2||St|trNtddt||St|trz|\}}tddt|||SdSr)rrmrrOrrrrrrrr__truediv__s


ztimedelta.__truediv__cCs*t|tr&||}tdd|StSr)rrOrr)rrrrrr__mod__s
ztimedelta.__mod__cCs4t|tr0t||\}}|tdd|fStSr)rrOr*rr)rrrrrrr
__divmod__s
ztimedelta.__divmod__cCs t|tr||dkStSdSrrrOr	rrrrr__eq__s
ztimedelta.__eq__cCs t|tr||dkStSdSrrrrrr__le__s
ztimedelta.__le__cCs t|tr||dkStSdSrrrrrr__lt__s
ztimedelta.__lt__cCs t|tr||dkStSdSrrrrrr__ge__s
ztimedelta.__ge__cCs t|tr||dkStSdSrrrrrr__gt__s
ztimedelta.__gt__cCs t|tstt||Sr)rrOrr		_getstaterrrrr	sztimedelta._cmpcCs|jdkrt||_|jS)Nrrhashrrrrr__hash__s
ztimedelta.__hash__cCs|jdkp|jdkp|jdkSrrrrrr__bool__s

ztimedelta.__bool__cCs|j|j|jfSrrrrrrr
sztimedelta._getstatecCs|j|fSrrrrrrr
__reduce__
sztimedelta.__reduce__N)rrrrrrr)%rrr__doc__	__slots__rrrrpropertyrNr=r?r__radd__rrrrrr__rmul__rrrrrrrrrrr	rrrrrrrrrOsR
e


		
		rOi6errrr)rNr;r<r=r?rc@s@eZdZdZdZdDddZeddZedd	Zed
dZ	edd
Z
eddZddZddZ
ddZddZddZeZeddZeddZeddZd d!Zd"d#ZdEd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Z e Z!d6d7Z"d8d9Z#d:d;Z$d<d=Z%d>d?Z&d@dAZ'dBdCZ(dS)FdateaConcrete date type.

    Constructors:

    __new__()
    fromtimestamp()
    today()
    fromordinal()

    Operators:

    __repr__, __str__
    __eq__, __le__, __lt__, __ge__, __gt__, __hash__
    __add__, __radd__, __sub__ (add/radd only with timedelta arg)

    Methods:

    timetuple()
    toordinal()
    weekday()
    isoweekday(), isocalendar(), isoformat()
    ctime()
    strftime()

    Properties (readonly):
    year, month, day
    )_year_month_dayrNcCs|dkrt|ttfrt|dkrdt|ddkrBdkrnnTt|tr|z|d}Wntk
rztdYnXt	|}|
|d	|_|St|||\}}}t	|}||_
||_||_d	|_|S)
zVConstructor.

        Arguments:

        year, month, day (required, base 1)
        Nr
rrr'rlatin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r)rbytesrr\ordencodeUnicodeEncodeErrorrBrbr_date__setstaterrrrr)rrrr!rrrrr3s8






zdate.__new__c	Cs(t|\	}}}}}}}}	}
||||S)z;Construct a date from a POSIX timestamp (like time.time()).)r2	localtime)rtrr4r5r6r7r8weekdayjdayrrrr
fromtimestampUszdate.fromtimestampcCst}||S)z"Construct a date from time.time().r2timerrrrrrtoday[sz
date.todaycCst|\}}}||||S)zConstruct a date from a proleptic Gregorian ordinal.

        January 1 of year 1 is day 1.  Only the year, month and day are
        non-zero in the result.
        )r/)rr.rr4r5rrrfromordinalaszdate.fromordinalcCsXt|tstdzt|dks$t|t|WStk
rRtd|YnXdS)z5Construct a date from the output of date.isoformat().#fromisoformat: argument must be strrlInvalid isoformat string: N)rrrr\rrn	ExceptionrB)rdate_stringrrr
fromisoformatks
zdate.fromisoformatc	Cst|krtks$ntd|d|kr8dksnd}|dkrrt|ddd}|dksn|dkrrt|rrd	}|rtd
|d|krdksntd|d
|dd|d}t|}||}|t|S)z|Construct a date from the ISO year, week number and weekday.

        This is the inverse of the date.isocalendar() functionzYear is out of range: r5Trr1r
r'FzInvalid week: rkzInvalid weekday: z (range is [1, 7]))rrrBr#r_isoweek1mondayr/)	rrweekr!Zout_of_rangeZ
first_weekdayZ
day_offsetZday_1Zord_dayrrrfromisocalendarws$zdate.fromisocalendarcCs d|jj|jj|j|j|jfS)a5Convert to formal string, for repr().

        >>> dt = datetime(2010, 1, 1)
        >>> repr(dt)
        'datetime.datetime(2010, 1, 1, 0, 0)'

        >>> dt = datetime(2010, 1, 1, tzinfo=timezone.utc)
        >>> repr(dt)
        'datetime.datetime(2010, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)'
        z%s.%s(%d, %d, %d))rrrrrrrrrrrsz
date.__repr__cCs.|dpd}dt|t|j|j|jfS)Return ctime() style string.r1z%s %s %2d 00:00:00 %04d)	toordinal	_DAYNAMES_MONTHNAMESrrrrrrrrctimesz
date.ctimecCst|||S)zFormat using strftime().)rjrcrrFrrrrasz
date.strftimecCs:t|tstdt|jt|dkr2||St|SNzmust be str, not %srrrrrrr\rarrrr
__format__s


zdate.__format__cCsd|j|j|jfS)zReturn the date formatted according to ISO.

        This is 'YYYY-MM-DD'.

        References:
        - http://www.w3.org/TR/NOTE-datetime
        - http://www.cl.cam.ac.uk/~mgk25/iso-time.html
        z%04d-%02d-%02d)rrrrrrr	isoformats	zdate.isoformatcCs|jS)z
year (1-9999))rrrrrrsz	date.yearcCs|jS)zmonth (1-12))rrrrrrsz
date.monthcCs|jS)z
day (1-31))rrrrrr!szdate.daycCst|j|j|jddddS)9Return local time tuple compatible with time.localtime().rr)r9rrrrrrrrcszdate.timetuplecCst|j|j|jS)zReturn proleptic Gregorian ordinal for the year, month and day.

        January 1 of year 1 is day 1.  Only the year, month and day values
        contribute to the result.
        )r#rrrrrrrrszdate.toordinalcCs:|dkr|j}|dkr|j}|dkr*|j}t||||S)z;Return a new date with new values for the specified fields.N)rrrr)rrrr!rrrr_szdate.replacecCst|tr||dkStSrrrr	rrrrrrs
zdate.__eq__cCst|tr||dkStSrrrrrrrs
zdate.__le__cCst|tr||dkStSrrrrrrrs
zdate.__lt__cCst|tr||dkStSrrrrrrr
s
zdate.__ge__cCst|tr||dkStSrrrrrrrs
zdate.__gt__cCsPt|tst|j|j|j}}}|j|j|j}}}t|||f|||fSr)rrrrrrr	)rrrr4r5Zy2Zm2Zd2rrrr	sz	date._cmpcCs|jdkrt||_|jS)Hash.rrrrrrrs
z
date.__hash__cCsJt|trF||j}d|kr,tkr>nnt||StdtS)zAdd a date to a timedelta.rresult out of range)	rrOrrN_MAXORDINALrrrr)rrorrrr%s
zdate.__add__cCsDt|tr|t|jSt|tr@|}|}t||StS)z.Subtract two dates, or a date and a timedelta.)rrOrNrrr)rrdays1days2rrrr0s

zdate.__sub__cCs|ddS)z:Return day of the week, where Monday == 0 ... Sunday == 6.r0r1rrrrrr:szdate.weekdaycCs|dpdS)z:Return day of the week, where Monday == 1 ... Sunday == 7.r1r"rrrr
isoweekday@szdate.isoweekdaycCs|j}t|}t|j|j|j}t||d\}}|dkr^|d8}t|}t||d\}}n$|dkr|t|dkr|d7}d}||d|dfS)aReturn a 3-tuple containing ISO year, week number, and weekday.

        The first ISO week of the year is the (Mon-Sun) week
        containing the year's first Thursday; everything else derives
        from that.

        The first week is 1; Monday is 1 ... Sunday is 7.

        ISO calendar algorithm taken from
        http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
        (used with permission)
        r1rr4)rrr#rrr*)rrweek1mondayrr
r!rrrisocalendarEs
zdate.isocalendarcCs&t|jd\}}t|||j|jgfSN)r*rrrr)ryhiylorrrrcszdate._getstatecCs"|\}}|_|_|d||_dSr')rrr)rstringr)r*rrr
__setstategszdate.__setstatecCs|j|fSrrrrrrrkszdate.__reduce__)NN)NNN))rrrrrrclassmethodrrrr
rrrrarrrrrrr!rcrr_rrrrrr	rrrrrr#r&rrrrrrrrsX
"


	

$



	
rrrc@s<eZdZdZdZddZddZddZd	d
ZddZ	d
S)rz}Abstract base class for time zone info classes.

    Subclasses must override the name(), utcoffset() and dst() methods.
    rcCstddS)z%datetime -> string name of time zone.z&tzinfo subclass must override tzname()NNotImplementedErrorrdtrrrrZ|sz
tzinfo.tznamecCstddS)zIdatetime -> timedelta, positive for east of UTC, negative for west of UTCz)tzinfo subclass must override utcoffset()Nr.r0rrrrXsztzinfo.utcoffsetcCstddS)zdatetime -> DST offset as timedelta, positive for east of UTC.

        Return 0 if DST not in effect.  utcoffset() must include the DST
        offset.
        z#tzinfo subclass must override dst()Nr.r0rrrrsz
tzinfo.dstcCst|tstd|j|k	r$td|}|dkr<td|}|dkrTtd||}|r||7}|}|dkrtd||S)z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.tzinfo is not selfNz0fromutc() requires a non-None utcoffset() resultz*fromutc() requires a non-None dst() resultz;fromutc(): dt.dst gave inconsistent results; cannot convert)rdatetimerrrBrXr)rr1ZdtoffZdtdstdeltarrrfromutcs"

ztzinfo.fromutccCsft|dd}|r|}nd}t|dd}|r4|}nt|ddpBd}|dkrV|j|fS|j||fSdS)N__getinitargs__r__getstate____dict__)r]r)rZgetinitargsrgetstatestaterrrrs
ztzinfo.__reduce__N)
rrrrrrZrXrr4rrrrrrusrc@s*eZdZdZdZdBddddZedd	Zed
dZedd
Z	eddZ
eddZeddZddZ
ddZddZddZddZdCdd Zd!d"Zd#d$Zd%d&ZdDd(d)ZeZed*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZdEddd7d8ZdFd:d;Z d<d=Z!d>d?Z"d@dAZ#dS)Gra<Time with time zone.

    Constructors:

    __new__()

    Operators:

    __repr__, __str__
    __eq__, __le__, __lt__, __ge__, __gt__, __hash__

    Methods:

    strftime()
    isoformat()
    utcoffset()
    tzname()
    dst()

    Properties (readonly):
    hour, minute, second, microsecond, tzinfo, fold
    )_hour_minute_second_microsecond_tzinfor_foldrNrcCst|ttfrt|dkrt|ddd@dkrt|trhz|d}Wntk
rftdYnXt	|}|
||p~dd	|_|St|||||\}}}}}t
|t	|}||_||_||_||_||_d	|_||_|S)
zConstructor.

        Arguments:

        hour, minute (required)
        second, microsecond (default to zero)
        tzinfo (default to None)
        fold (keyword only, default to zero)
        r0rrr(rznFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.Nr)rrrr\rrrrBrbr_time__setstaterrrr:r;r<r=r>r?)rrrrrVrrrrrrrs>




ztime.__new__cCs|jSzhour (0-23)r:rrrrrsz	time.hourcCs|jSz
minute (0-59)r;rrrrrsztime.minutecCs|jSz
second (0-59)r<rrrrrsztime.secondcCs|jSzmicrosecond (0-999999)r=rrrrrVsztime.microsecondcCs|jSztimezone info objectr>rrrrrsztime.tzinfocCs|jSrr?rrrrrsz	time.foldcCs$t|tr|j|dddkStSdS)NTallow_mixedrrrr	rrrrrrs
ztime.__eq__cCs t|tr||dkStSdSrrPrrrrr#s
ztime.__le__cCs t|tr||dkStSdSrrPrrrrr)s
ztime.__lt__cCs t|tr||dkStSdSrrPrrrrr/s
ztime.__ge__cCs t|tr||dkStSdSrrPrrrrr5s
ztime.__gt__Fc
Cst|tst|j}|j}d}}||kr0d}n|}|}||k}|rvt|j|j|j|j	f|j|j|j|j	fS|dks|dkr|rdSt
d|jd|j|tdd}|jd|j|tdd}	t||j|j	f|	|j|j	fS)NTrz$cannot compare naive and aware timesrrrL)rrrr>rXr	r:r;r<r=rrO)
rrrOmytzottzmyoffotoffbase_compareZmyhhmmZothhmmrrrr	;s4z	time._cmpcCs|jdkr|jr|jdd}n|}|}|sBt|d|_ntt|j|j	d|tdd\}}|tddr|t
d|tdd}d|krd	krnntt|||j|j
|_nt|||j|j
f|_|jS)
rrrr@r;r<rrKrLzwhole minuter()rrr_rXrrr*rOrrrrrrV)rrtzoffrgr4rrrrWs 
z
time.__hash__cCs|}t|S)z=Return formatted timezone offset (+xx:xx) or an empty string.)rXrS)rrPrrr_tzstrnsztime._tzstrcCs|jdkrd|j|jf}n|jdkr2d|j}nd}d|jj|jj|j|j|f}|jdk	r|dddksrt|ddd	|jd}|j	r|dddkst|ddd
}|S)%Convert to formal string, for repr().rz, %d, %dz, %drHz%s.%s(%d, %d%s)Nr), tzinfo=%r	, fold=1))
r=r<rrrr:r;r>rr?rrQrrrrss$


z
time.__repr__r:cCs0t|j|j|j|j|}|}|r,||7}|S)aReturn the time formatted according to ISO.

        The full format is 'HH:MM:SS.mmmmmm+zz:zz'. By default, the fractional
        part is omitted if self.microsecond == 0.

        The optional argument timespec specifies the number of additional
        terms of the time to include. Valid options are 'auto', 'hours',
        'minutes', 'seconds', 'milliseconds' and 'microseconds'.
        )rGr:r;r<r=rX)rrErQrrrrrs
ztime.isoformatcCsHt|tstdz|t|WStk
rBtd|YnXdS)z0Construct a time from the output of isoformat().rrN)rrrrrrB)rZtime_stringrrrr
s
ztime.fromisoformatc	Cs(ddd|j|j|jdddf	}t|||S)z{Format using strftime().  The date part of the timestamp passed
        to underlying strftime should not be used.
        ilrrr)r:r;r<rj)rrFrcrrrrasz
time.strftimecCs:t|tstdt|jt|dkr2||St|Srrrrrrrs


ztime.__format__cCs(|jdkrdS|jd}td||S)z^Return the timezone offset as timedelta, positive east of UTC
         (negative west of UTC).NrXr>rXrrrfrrrrXs


ztime.utcoffsetcCs&|jdkrdS|jd}t||SaReturn the timezone name.

        Note that the name is 100% informational -- there's no requirement that
        it mean anything in particular. For example, "GMT", "UTC", "-500",
        "-5:00", "EDT", "US/Eastern", "America/New York" are all valid replies.
        Nr>rZrrrrrrrZs

ztime.tznamecCs(|jdkrdS|jd}td||SaqReturn 0 if DST is not in effect, or the DST offset (as timedelta
        positive eastward) if DST is in effect.

        This is purely informational; the DST offset has already been added to
        the UTC offset returned by utcoffset() if applicable, so there's no
        need to consult dst() unless you're interested in displaying the DST
        info.
        Nrr>rrr_rrrrs
	

ztime.dstTcCsl|dkr|j}|dkr|j}|dkr*|j}|dkr8|j}|dkrF|j}|dkrT|j}t|||||||dS)z;Return a new time with new values for the specified fields.NTr@)rrrrVrr?r)rrrrrVrrrrrr_sztime.replacer'cCspt|jd\}}t|d\}}|j}|jr:|dkr:|d7}t||j|j|||g}|jdkrb|fS||jfSdSNr(r')r*r=r:r?rr;r<r>)rprotocolus2us3us1rg	basestaterrrrs
ztime._getstatecCst|dk	rt|tstd|\}|_|_}}}|dkrHd|_|d|_nd|_||_|d>|Bd>|B|_||_dS)Nbad tzinfo state argrArrfrrk)	r
_tzinfo_classrr;r<r?r:r=r>)rr+rrgrjrhrirrrr,sztime.__setstatecCs|j||fSrrrrgrrr
__reduce_ex__sztime.__reduce_ex__cCs
|dSNrrorrrrrsztime.__reduce__)rrrrN)F)r:)NNNNT)r')$rrrrrrrrrrrVrrrrrrrr	rrXrrrr-r
rarrXrZrr_rrBrorrrrrrsT(








		



rc@seZdZdZejejZddddddZeddZ	ed	d
Z
eddZed
dZeddZ
eddZeddZededdZeddZedfddZeddZedgddZed d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zdhddd0d1Zd2d3Zdid4d5Zd6d7Zdjd:d;Z d<d=Z!d>d?Z"ed@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dLdMZ)dNdOZ*dPdQZ+dkdSdTZ,dUdVZ-e-Z.dWdXZ/dYdZZ0dld\d]Z1d^d_Z2d`daZ3dbdcZ4dS)mr2zdatetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

    The year, month and day arguments are required. tzinfo may be None, or an
    instance of a tzinfo subclass. The remaining arguments may be ints.
    Nrr@c	Cst|ttfrt|dkrdt|ddd@kr>dkrnnVt|trxzt|d}Wntk
rvtdYnXt|}
|
	||d	|
_
|
St|||\}}}t|||||	\}}}}}	t
|t|}
||
_||
_||
_||
_||
_||
_||
_||
_d	|
_
|	|
_|
S)
Nrlrrr'rArrzrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r)rrrr\rrrBrbr_datetime__setstaterrrrrrrr:r;r<r=r>r?)rrrr!rrrrVrrrrrrrsL




zdatetime.__new__cCs|jSrCrDrrrrrCsz
datetime.hourcCs|jSrErFrrrrrHszdatetime.minutecCs|jSrGrHrrrrrMszdatetime.secondcCs|jSrIrJrrrrrVRszdatetime.microsecondcCs|jSrKrLrrrrrWszdatetime.tzinfocCs|jSrrMrrrrr\sz
datetime.foldc	Cspt|\}}t|d}|dkr4|d7}|d8}n|dkrL|d8}|d7}|rVtjntj}||\	}}}	}
}}}
}}t|d}||||	|
||||}|dkrbd}||krtj	dr|S|||dd	\}}}	}
}}||||	|
||||}||t
d|}|jdkrl|||t
dddd	\}}}	}
}}||||	|
||||}||krld|_n
|
|}|S)
Construct a datetime from a POSIX timestamp (like time.time()).

        A timezone info object may be passed in as well.
        rrrrrNrwinr0)rrrr2gmtimerminsysplatform
startswithrOrNr?r4)rrrrZfracrD	converterrr4r5r6r7r8rrrresultmax_fold_secondsZprobe1ZtransZprobe2rrr_fromtimestamp`s4


 *

zdatetime._fromtimestampcCst||||dk	|S)rsN)rr})rrrrrrrszdatetime.fromtimestampcCs||ddS)z6Construct a naive UTC datetime from a POSIX timestamp.TN)r}rrrrutcfromtimestampszdatetime.utcfromtimestampcCst}|||S)zBConstruct a datetime from time.time() and optional time zone info.r)rrrrrrnowszdatetime.nowcCst}||S)z*Construct a UTC datetime from time.time().)r2rr~rrrrutcnowszdatetime.utcnowTcCs\t|tstdt|ts$td|dkr2|j}||j|j|j|j|j	|j
|j||jd	S)z8Construct a datetime from a given date and a given time.z%date argument must be a date instancez%time argument must be a time instanceTr@)
r_date_classr_time_classrrrr!rrrrVr)rrrrrrrcombines

zdatetime.combinecCst|tstd|dd}|dd}zt|}Wn"tk
rXtd|YnX|rzt|}Wqtk
rtd|YqXndddddg}|||S)z=Construct a datetime from the output of datetime.isoformat().rrrlNr)rrrrnrBr)rr	ZdstrrrZdate_componentsZtime_componentsrrrr
s
zdatetime.fromisoformatcCsD|}|dkrd}n|r d}nd}t|j|j|j|j|j|j|S)rNrrr)rr9rrr!rrr)rrrrrrcszdatetime.timetuplec
stdddd}|tdd}fdd}|||}||}||}||kr|||f|j}|||}||kr|Sn||}||kst||}||}	|	|kr|S||kr|Sttf|j||S)zReturn integer POSIX timestamp.rrrcs>t|dd\}}}}}}t||||||tddS)Nr0rr)r2rr2rO)rirr4r5r6r7r8Zepochrrlocalszdatetime._mktime.<locals>.local)r2rOrrmaxrv)
rr|rrru1t1u2rt2rrr_mktimes*zdatetime._mktimecCs0|jdkr |}||jdS|tSdS)zReturn POSIX timestamp as floatNr)r>rrV_EPOCHrr]rrr	timestamps
zdatetime.timestampcCsT|}|r||8}|j|j|j}}}|j|j|j}}}t||||||dS)z4Return UTC time tuple compatible with time.gmtime().r)rXrrr!rrrr9)rrfrr4r5r6r7r8rrrutctimetupleszdatetime.utctimetuplecCst|j|j|jS)zReturn the date part.)rrrrrrrrrsz
datetime.datecCst|j|j|j|j|jdS)z'Return the time part, with tzinfo None.r@)rrrrrVrrrrrrsz
datetime.timecCs t|j|j|j|j|j|jdS)z'Return the time part, with same tzinfo.r@)rrrrrVr>rrrrrtimetzszdatetime.timetzc	
Cs|dkr|j}|dkr|j}|dkr*|j}|dkr8|j}|dkrF|j}|dkrT|j}|dkrb|j}|dkrp|j}|	dkr~|j}	t	||||||||||	d	S)z?Return a new datetime with new values for the specified fields.NTr@)
rrr!rrrrVrrr)
rrrr!rrrrVrrrrrr_s.zdatetime.replacecCs\|jdkr|}n|ttdd}t|}t|dd}|j}|j}t	t|d|S)Nrrr0)
rrrrOr2rr2	tm_gmtofftm_zoner~)rtsZlocaltmrZgmtoffZzonerrr_local_timezone4s


zdatetime._local_timezonecCs|dkr|}nt|ts$td|j}|dkrF|}||}n,||}|dkrr|jdd}||}||kr~|S||j|d}||S)Nz)tz argument must be an instance of tzinfor)rrrrrXr_r4)rrrQZmyoffsetrrrr
astimezone@s 



zdatetime.astimezonecCs:|dpd}dt|t|j|j|j|j|j|jfS)rr1z%s %s %2d %02d:%02d:%02d %04d)	rrrrrr:r;r<rrrrrr[szdatetime.ctimeTr:cCsNd|j|j|j|ft|j|j|j|j|}|}t	|}|rJ||7}|S)aReturn the time formatted according to ISO.

        The full format looks like 'YYYY-MM-DD HH:MM:SS.mmmmmm'.
        By default, the fractional part is omitted if self.microsecond == 0.

        If self.tzinfo is not None, the UTC offset is also attached, giving
        giving a full format of 'YYYY-MM-DD HH:MM:SS.mmmmmm+HH:MM'.

        Optional argument sep specifies the separator between date and
        time, default 'T'.

        The optional argument timespec specifies the number of additional
        terms of the time to include. Valid options are 'auto', 'hours',
        'minutes', 'seconds', 'milliseconds' and 'microseconds'.
        z%04d-%02d-%02d%c)
rrrrGr:r;r<r=rXrS)rseprErQrPrrrrreszdatetime.isoformatcCs|j|j|j|j|j|j|jg}|ddkr2|d=|ddkrD|d=d|jj|jj	d
tt|f}|j
dk	r|dddkst|ddd|j
d}|jr|dddkst|ddd}|S)	rYrrrrNrZr[r\)rrrr:r;r<r=rrrr`maprr>rr?)rLrQrrrrs*
zdatetime.__repr__cCs|jddS)zConvert to string, for str(). )r)rrrrrrszdatetime.__str__cCsddl}||||S)zKstring, format -> new datetime parsed from a string (like time.strptime()).rN)	_strptimeZ_strptime_datetime)rr	rCrrrrstrptimeszdatetime.strptimecCs(|jdkrdS|j|}td||S)z\Return the timezone offset as timedelta positive east of UTC (negative west of
        UTC).NrXr^r_rrrrXs


zdatetime.utcoffsetcCs&|jdkrdS|j|}t||Sr`rarbrrrrZs

zdatetime.tznamecCs(|jdkrdS|j|}td||Srcrdr_rrrrs
	

zdatetime.dstcCs2t|tr|j|dddkSt|ts*tSdSdS)NTrNrF)rr2r	rrrrrrrs


zdatetime.__eq__cCs4t|tr||dkSt|ts&tSt||dSrrr2r	rrrrrrrrs


zdatetime.__le__cCs4t|tr||dkSt|ts&tSt||dSrrrrrrrs


zdatetime.__lt__cCs4t|tr||dkSt|ts&tSt||dSrrrrrrrs


zdatetime.__ge__cCs4t|tr||dkSt|ts&tSt||dSrrrrrrrs


zdatetime.__gt__Fc		Cst|tst|j}|j}d}}||kr0d}nT|}|}|r|||j|jdkr`dS||j|jdkr|dS||k}|rt|j|j	|j
|j|j|j
|jf|j|j	|j
|j|j|j
|jfS|dks|dkr|rdStd||}|jdkrdS|rdpdS)NTr@rz(cannot compare naive and aware datetimesrrr)rr2rr>rXr_rr	rrrr:r;r<r=rrN)	rrrOrQrRrSrTrUZdiffrrrr	sHz
datetime._cmpc
Cst|tstSt||j|j|j|jd}||7}t|j	d\}}t|d\}}d|j
krhtkrnn*t|
t|j
t||||j|jdStddS)zAdd a datetime and a timedelta.r{rrrrrN)rrOrrr:r;r<r=r*r=rNrrrrrrr?r>r)rrr3rremrrrrrrs&
zdatetime.__add__c	Cst|ts"t|tr||StS|}|}|j|jd|jd}|j|jd|jd}t|||||j|j}|j	|j	kr|S|
}|
}||kr|S|dks|dkrtd|||S)z6Subtract two datetimes, or a datetime and a timedelta.rrNz(cannot mix naive and timezone-aware time)rr2rOrrr<r;r:r=r>rXr)	rrr r!Zsecs1Zsecs2baserSrTrrrr&s*



zdatetime.__sub__cCs|jdkr|jr|jdd}n|}|}|dkrFt|d|_nDt|j|j|j	}|j
d|jd|j}tt
|||j||_|jS)Nrrr@rr)rrr_rXrrr#rrr!rrrrOrV)rrrWrNr=rrrr>s
zdatetime.__hash__r'c	Cst|jd\}}t|jd\}}t|d\}}|j}|jrJ|dkrJ|d7}t||||j|j|j|j	|||g
}|j
dkr~|fS||j
fSdSre)r*rr=rr?rrr:r;r<r>)	rrgr)r*rhrirjr4rkrrrrOs"
zdatetime._getstatec	
Cs|dk	rt|tstd|\
}}}|_|_|_|_}}}|dkrTd|_|d|_nd|_||_|d||_	|d>|Bd>|B|_
||_dS)NrlrArrfrr(rk)rrmrrr:r;r<r?rrr=r>)	rr+rr)r*r4rjrhrirrrr,^s"zdatetime.__setstatecCs|j||fSrrrnrrrromszdatetime.__reduce_ex__cCs
|dSrprqrrrrrpszdatetime.__reduce__)NNrrrrN)N)N)T)NNNNNNNT)N)rr:)F)r')5rrrrrrrrrrrrrVrrr-r}rr~rrrr
rcrrrrr_rrrrrrrrXrZrrrrrrr	rrrrrrrrorrrrrr2s$






+	



#	



	

%
r2cCs8d}t|dd}|dd}||}||kr4|d7}|S)Nr'rr0r1)r#)rZTHURSDAYZfirstdayZfirstweekdayr%rrrrysrc@seZdZdZeZefddZedddZddZ	d	d
Z
ddZd
dZddZ
ddZddZddZddZedddZeZeddZdS)r~)_offset_namecCslt|tstd||jkr,|s&|jSd}nt|ts>td|j|krV|jks`ntd|	||S)Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).)
rrOr_Omittedrr
_minoffset
_maxoffsetrB_create)rrfrrrrrs


ztimezone.__new__NcCst|}||_||_|Sr)rrrr)rrfrrrrrrs
ztimezone._createcCs|jdkr|jfS|j|jfS)zpickle supportN)rrrrrrr5s
ztimezone.__getinitargs__cCst|tr|j|jkStSr)rr~rrrrrrrs
ztimezone.__eq__cCs
t|jSr)rrrrrrrsztimezone.__hash__cCsL||jkrdS|jdkr0d|jj|jj|jfSd|jj|jj|j|jfS)aConvert to formal string, for repr().

        >>> tz = timezone.utc
        >>> repr(tz)
        'datetime.timezone.utc'
        >>> tz = timezone(timedelta(hours=-5), 'EST')
        >>> repr(tz)
        "datetime.timezone(datetime.timedelta(-1, 68400), 'EST')"
        zdatetime.timezone.utcNz	%s.%s(%r)z
%s.%s(%r, %r))rrrrrrrrrrrs


ztimezone.__repr__cCs
|dSr)rZrrrrrsztimezone.__str__cCs$t|ts|dkr|jStddS)Nz8utcoffset() argument must be a datetime instance or None)rr2rrr0rrrrXsztimezone.utcoffsetcCs:t|ts|dkr.|jdkr(||jS|jStddS)Nz5tzname() argument must be a datetime instance or None)rr2r_name_from_offsetrrr0rrrrZs

ztimezone.tznamecCs"t|ts|dkrdStddS)Nz2dst() argument must be a datetime instance or None)rr2rr0rrrrsztimezone.dstcCs2t|tr&|j|k	rtd||jStddS)Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)rr2rrBrrr0rrrr4s



ztimezone.fromutcr(r)r;r?c
Cs|sdS|tdkr d}|}nd}t|tdd\}}t|tdd\}}|j}|j}|rd||dd	|dd	|dd
|d	S|rd||dd	|dd	|dSd||dd	|dS)NZUTCrrIrJrrKrLZ02drorpZ06d)rOr*r=r?)r3rRr;rhr<r=r?rrrrs( ztimezone._name_from_offset)N)rrrrrbrrr-rr5rrrrrXrZrr4rOrrstaticmethodrrrrrr~s$	r~rVrr)*)r)r:);rrr2mathrrwr	rrrrrdbmr"r[rrrrr#r+r,r-rr/rrr9rGrSrjrnrwrrrrrrrrrrOrvrZ
resolutionrrrrmrr2rr~rrrZ	_datetimeImportErrorrrrr<module>s

	?
@') 
=

[DXatG


Zerion Mini Shell 1.0