hyb
2025-11-07 cadac0a99d87c53805a07f3b4ca7fd11e524fe4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Ë
Yñúh±2ãóº—ddlmZddlmZddlmZmZmZed«ZddgZd„Z    e
ed«rdd„Z nGd    „d
e«Z dd „Z d „Z Gd „de«ZGd„de«Zy)é)ÚPY2©Úwraps)ÚdatetimeÚ    timedeltaÚtzinfoÚtzname_in_python2Úenfoldcó>‡—trt‰«ˆfd„«}|S‰S)zžChange unicode output into bytestrings in Python 2
 
    tzname() API changed in Python 3. It used to return bytes, but was changed
    to unicode strings
    có<•—‰|i|¤Ž}||j«}|S©N)Úencode)ÚargsÚkwargsÚnameÚnamefuncs   €úFH:\Change_password\venv_build\Lib\site-packages\dateutil/tz/_common.pyÚadjust_encodingz*tzname_in_python2.<locals>.adjust_encodings(ø€á˜TÐ, VÑ,ˆDØÐØ—{‘{“}àˆKó)rr)rrs` rr    r     s+ø€õ  Ü    ˆx‹ó    ó
ð    ðÐàˆrÚfoldcó&—|j|¬«S)á®
        Provides a unified interface for assigning the ``fold`` attribute to
        datetimes both before and after the implementation of PEP-495.
 
        :param fold:
            The value for the ``fold`` attribute in the returned datetime. This
            should be either 0 or 1.
 
        :return:
            Returns an object for which ``getattr(dt, 'fold', 0)`` returns
            ``fold`` for all versions of Python. In versions prior to
            Python 3.6, this is a ``_DatetimeWithFold`` object, which is a
            subclass of :py:class:`datetime.datetime` with the ``fold``
            attribute added, if ``fold`` is 1.
 
        .. versionadded:: 2.6.0
        ©r©Úreplace)Údtrs  rr
r
%s€ð$z‰z˜tˆzÓ$Ð$rcó*—eZdZdZdZd„Zed„«Zy)Ú_DatetimeWithFoldzö
        This is a class designed to provide a PEP 495-compliant interface for
        Python versions before 3.6. It is used only for dates in a fold, so
        the ``fold`` attribute is fixed at ``1``.
 
        .. versionadded:: 2.6.0
        ©có—d}t||«D](\}}||vrtdj|««‚|||<Œ*|D]}||vsŒt||«||<Œ|j    dd«r |j
nt }|di|¤ŽS)aì
            Return a datetime with the same attributes, except for those
            attributes given new values by whichever keyword arguments are
            specified. Note that tzinfo=None can be specified to create a naive
            datetime from an aware datetime with no conversion of date and time
            data.
 
            This is reimplemented in ``_DatetimeWithFold`` because pypy3 will
            return a ``datetime.datetime`` even if ``fold`` is unchanged.
            )ÚyearÚmonthÚdayÚhourÚminuteÚsecondÚ microsecondrzDuplicate argument: {}rér)ÚzipÚ    TypeErrorÚformatÚgetattrÚgetÚ    __class__r)ÚselfrrÚargnamesÚargÚargnameÚdt_classs       rrz_DatetimeWithFold.replaceDsž€ðˆHô
!$ D¨(Ó 3ò &‘ WؘfÑ$Ü#Ð$<×$CÑ$CÀGÓ$LÓMÐMà"%w’ð     &ð $ò =Ø &Ò(Ü&-¨d°GÓ&<F˜7’Oð =ð*0¯©°F¸AÔ)>t—~’~ÄHˆHáÑ%˜fÑ%Ð %rcó—y)Nr(r©r/s rrz_DatetimeWithFold.foldbs€àrN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú    __slots__rÚpropertyrrrrrr:s'„ñ     ðˆ    ò    &ð<
ñ    ó
ñ    rrcó¦—t|dd«|k(r|S|j«dd}||j|jfz }|rt    |ŽSt |ŽS)rrrNé)r,Ú    timetupler'rrr)rrrs   rr
r
fs[€ô$ 2v˜qÓ ! TÒ )؈Ià|‰|‹~˜b˜qÐ!ˆØ —‘ §¡Ð+Ñ+ˆá Ü$ dÐ+Ð +ä˜T?Ð "rcó.‡—t‰«ˆfd„«}|S)z
    The CPython version of ``fromutc`` checks that the input is a ``datetime``
    object and that ``self`` is attached as its ``tzinfo``.
    có~•—t|t«s td«‚|j|ur t    d«‚‰||«S)Nú&fromutc() requires a datetime argumentúdt.tzinfo is not self)Ú
isinstancerr*rÚ
ValueError)r/rÚfs  €rÚfromutcz)_validate_fromutc_inputs.<locals>.fromutc‰s=ø€ä˜"œhÔ'ÜÐDÓEÐ EØ 9‰9˜DÑ  ÜÐ4Ó5Ð 5ᐐr‹{Ðrr)rErFs` rÚ_validate_fromutc_inputsrG„s"ø€ô
 ˆ1ƒXóóðð €Nrcó8—eZdZdZd„Zd„Zd„Zd„Zed„«Z    y)Ú_tzinfoz=
    Base class for all ``dateutil`` ``tzinfo`` objects.
    cóô—|j|¬«}t|d¬«}t|d¬«}|j«|j«k(}|jd¬«|jd¬«k(}|xr| S)á6
        Whether or not the "wall time" of a given datetime is ambiguous in this
        zone.
 
        :param dt:
            A :py:class:`datetime.datetime`, naive or time zone aware.
 
 
        :return:
            Returns ``True`` if ambiguous, ``False`` otherwise.
 
        .. versionadded:: 2.6.0
        ©rrrr(N)rr
Ú    utcoffset)r/rÚwall_0Úwall_1Ú same_offsetÚsame_dts      rÚ is_ambiguousz_tzinfo.is_ambiguousšsu€ðZ‰Z˜tˆZÓ $ˆä˜ Ô#ˆÜ˜ Ô#ˆà×&Ñ&Ó(¨F×,<Ñ,<Ó,>Ñ>ˆ Ø—.‘.¨.Ó-°·±Àt°Ó1LÑLˆàÒ*˜{˜?Ð*rcó”—|j|«r4||z
}t||j«|j«z
k(«}|Sd}|S)aÀ
        Determine the fold status of a "wall" datetime, given a representation
        of the same datetime as a (naive) UTC datetime. This is calculated based
        on the assumption that ``dt.utcoffset() - dt.dst()`` is constant for all
        datetimes, and that this offset is the actual number of hours separating
        ``dt_utc`` and ``dt_wall``.
 
        :param dt_utc:
            Representation of the datetime as UTC
 
        :param dt_wall:
            Representation of the datetime as "wall time". This parameter must
            either have a `fold` attribute or have a fold-naive
            :class:`datetime.tzinfo` attached, otherwise the calculation may
            fail.
        r)rRÚintrMÚdst)r/Údt_utcÚdt_wallÚ
delta_wallÚ_folds     rÚ _fold_statusz_tzinfo._fold_status³sR€ð" × Ñ ˜WÔ %Ø  6Ñ)ˆJܘ
 v×'7Ñ'7Ó'9¸F¿J¹J»LÑ'HÑIÓJˆEðˆ ðˆEàˆ rcó—t|dd«S)Nrr)r,©r/rs  rrYz _tzinfo._foldÌs€Ür˜6 1Ó%Ð%rcóä—|j«}|€ td«‚|j«}|€ td«‚||z
}||z }t|d¬«j«}|€ td«‚||zS)áü
        Given a timezone-aware datetime in a given timezone, calculates a
        timezone-aware datetime in a new timezone.
 
        Since this is the one time that we *know* we have an unambiguous
        datetime object, we take this opportunity to determine whether the
        datetime is ambiguous and in a "fold" state (e.g. if it's the first
        occurrence, chronologically, of the ambiguous datetime).
 
        :param dt:
            A timezone-aware :class:`datetime.datetime` object.
        z0fromutc() requires a non-None utcoffset() resultz*fromutc() requires a non-None dst() resultr(rz;fromutc(): dt.dst gave inconsistent results; cannot convert)rMrDrUr
)r/rÚdtoffÚdtdstÚdeltas     rÚ_fromutcz_tzinfo._fromutcÏsŽ€ð— ‘ “ˆØ ˆ=Üð&ó'ð 'ð —‘“ˆØ ˆ=ÜÐIÓJÐ Jؘ‘ ˆà
ˆe‰ ˆôr Ô"×&Ñ&Ó(ˆØ ˆ=Üð7ó8ð 8àE‰zÐrcób—|j|«}|j||«}t||¬«S)r^r)rbrZr
)r/rrWrYs    rrFz_tzinfo.fromutcôs5€ð—-‘- Ó#ˆð×!Ñ! " gÓ.ˆôg EÔ*Ð*rN)
r6r7r8r9rRrZrYrbrGrFrrrrIrI•s0„ñò+ò2ò2&ò#ðJñ+óñ+rrIcó‚—eZdZdZd„Zd„Zd„Zed„«Zd„Z    d„Z
d„Z d    „Z e d
„«Zd Zd „Zd „Zej&Zy )Ú tzrangebasea‹
    This is an abstract base class for time zones represented by an annual
    transition into and out of DST. Child classes should implement the following
    methods:
 
        * ``__init__(self, *args, **kwargs)``
        * ``transitions(self, year)`` - this is expected to return a tuple of
          datetimes representing the DST on and off transitions in standard
          time.
 
    A fully initialized ``tzrangebase`` subclass should also provide the
    following attributes:
        * ``hasdst``: Boolean whether or not the zone uses DST.
        * ``_dst_offset`` / ``_std_offset``: :class:`datetime.timedelta` objects
          representing the respective UTC offsets.
        * ``_dst_abbr`` / ``_std_abbr``: Strings representing the timezone short
          abbreviations in DST and STD, respectively.
        * ``_hasdst``: Whether or not the zone has DST.
 
    .. versionadded:: 2.6.0
    có—td«‚)Nz%tzrangebase is an abstract base class)ÚNotImplementedErrorr5s rÚ__init__ztzrangebase.__init__!s€Ü!Ð"IÓJÐJrcó^—|j|«}|€y|r |jS|jSr )Ú_isdstÚ _dst_offsetÚ _std_offset©r/rÚisdsts   rrMztzrangebase.utcoffset$s2€Ø— ‘ ˜B“ˆà ˆ=ØÙ Ø×#Ñ#Ð #à×#Ñ#Ð #rcóR—|j|«}|€y|r |jStSr )rjÚ_dst_base_offsetÚZEROrms   rrUztzrangebase.dst.s+€Ø— ‘ ˜B“ˆà ˆ=ØÙ Ø×(Ñ(Ð (äˆKrcóT—|j|«r |jS|jSr )rjÚ    _dst_abbrÚ    _std_abbrr\s  rÚtznameztzrangebase.tzname8s!€à ;‰;rŒ?Ø—>‘>Ð !à—>‘>Ð !rcóü—t|t«s td«‚|j|ur t    d«‚|j |j «}|€||j|«zS|\}}||jz}||jz}||f}|jd¬«}|j||«}|r||jz}n||jz}t| xr|j|««}    t||    ¬«S)z, Given a datetime in UTC, return local time rArBNrLr)rCrr*rrDÚ transitionsr!rMrlrÚ _naive_isdstrkrTrRr
)
r/rrwÚdstonÚdstoffÚutc_transitionsrVrnrWrYs
          rrFztzrangebase.fromutc?s€ä˜"œhÔ'ÜÐDÓEÐ Eà 9‰9˜DÑ  ÜÐ4Ó5Ð 5ð×&Ñ& r§w¡wÓ/ˆ Ø Ð Ø˜Ÿ™ rÓ*Ñ*Ð *ð$‰ ˆˆvà ×!Ñ!Ñ!ˆØ$×"Ñ"Ñ"ˆà  &˜/ˆØ—‘ 4Ó(ˆà×!Ñ! &¨/Ó:ˆá ؘ4×+Ñ+Ñ+‰Gà˜4×+Ñ+Ñ+ˆG䘐IÒ< $×"3Ñ"3°GÓ"<Ó=ˆäg EÔ*Ð*rcó¶—|jsy|j|j«\}}|jd¬«}||cxkxr||jzkScS)rKFNrL)Úhasdstrwr!rrp)r/rÚstartÚends    rrRztzrangebase.is_ambiguous`sW€ð{Š{Øà×%Ñ% b§g¡gÓ.‰
ˆˆsà Z‰Z˜tˆZÓ $ˆØrÖ7˜C $×"7Ñ"7Ñ7Ñ7Ð8Ñ7Ð8rcóô—|jsy|€y|j|j«}|€y|jd¬«}|j    ||«}|s#|j |«r|j |« S|S)NFrL)r}rwr!rrxrRrY)r/rrwrns    rrjztzrangebase._isdstvs{€Ø{Š{ØØ ˆZØà×&Ñ& r§w¡wÓ/ˆ à Ð Øà Z‰Z˜tˆZÓ $ˆà×!Ñ! " kÓ2ˆñ˜×*Ñ*¨2Ô.Ø—z‘z "“~Ð%Ð %àˆLrcóˆ—|\}}|jd¬«}||kr||cxkxr|k}|Sc}|S||cxkxr|knc }|S)NrLr)r/rrwryrzrns      rrxztzrangebase._naive_isdst‹s_€Ø#‰ ˆˆvà Z‰Z˜tˆZÓ $ˆà 6Š>ؘRÖ( &Ñ(ˆEðˆ ñ    )ˆEðˆ ð "Ö, uÔ,Ð,ˆEàˆ rcó4—|j|jz
Sr )rkrlr5s rrpztzrangebase._dst_base_offset—s€à×Ñ $×"2Ñ"2Ñ2Ð2rNcó—||k( Sr r)r/Úothers  rÚ__ne__ztzrangebase.__ne__s€Ø˜E‘MÐ"Ð"rcó4—d|jjzS)Nz%s(...))r.r6r5s rÚ__repr__ztzrangebase.__repr__ s€Ø˜4Ÿ>™>×2Ñ2Ñ2Ð2r)r6r7r8r9rhrMrUr    rurFrRrjrxr;rpÚ__hash__r…r‡ÚobjectÚ
__reduce__rrrrere sr„ñò*Kò$òðñ"óð"ò +òB9ò,ò*
ðñ3óð3ð€Hò#ò3ð×"Ñ"JrreN)r()ÚsixrÚ    functoolsrrrrrqÚ__all__r    Úhasattrr
rrGrIrerrrú<module>rspðÝåç0Ñ0ñƒ|€à  Ð
)€òñ, ˆ8VÔô%ô**˜Hô*óX#ò<ô"s+ˆfôs+ôlX#'õX#r