zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
Þ=®dÙã@s‚ddlmZddlmZddlmZdd„ZGdd„dƒZGd    d
„d
ƒZGd d „d eƒZ    Gd d„dƒZ
dd„Z Gdd„de ƒZ dS)é)Ú annotations)Úrepeaté)Ú_missingcCstt|ƒj›dƒ‚dS)Nz objects are immutable)Ú    TypeErrorÚtypeÚ__name__©Úself©r úUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\werkzeug/datastructures/mixins.pyÚ is_immutablesr c@s€eZdZdZdZdd„Zdd„Zdd„Zd    d
„Zd d „Z    d d„Z
dd„Z dd„Z dd„Z dd„Zddd„Zdd„Zd dd„ZdS)!ÚImmutableListMixinzOMakes a :class:`list` immutable.
 
    .. versionadded:: 0.5
 
    :private:
    NcCs&|jdk    r|jStt|ƒƒ}|_|S©N)Ú _hash_cacheÚhashÚtuple©r
Úrvr r r Ú__hash__s
zImmutableListMixin.__hash__cCst|ƒt|ƒffSr)rÚlist©r
Úprotocolr r r Ú __reduce_ex__sz ImmutableListMixin.__reduce_ex__cCs t|ƒdSr©r ©r
Úkeyr r r Ú __delitem__szImmutableListMixin.__delitem__cCs t|ƒdSrr©r
Úotherr r r Ú__iadd__"szImmutableListMixin.__iadd__cCs t|ƒdSrrrr r r Ú__imul__%szImmutableListMixin.__imul__cCs t|ƒdSrr©r
rÚvaluer r r Ú __setitem__(szImmutableListMixin.__setitem__cCs t|ƒdSrr©r
Úitemr r r Úappend+szImmutableListMixin.appendcCs t|ƒdSrrr%r r r Úremove.szImmutableListMixin.removecCs t|ƒdSrr)r
Úiterabler r r Úextend1szImmutableListMixin.extendcCs t|ƒdSrr©r
Úposr#r r r Úinsert4szImmutableListMixin.insertéÿÿÿÿcCs t|ƒdSrr)r
Úindexr r r Úpop7szImmutableListMixin.popcCs t|ƒdSrrr    r r r Úreverse:szImmutableListMixin.reverseFcCs t|ƒdSrr)r
rr1r r r Úsort=szImmutableListMixin.sort)r.)NF)rÚ
__module__Ú __qualname__Ú__doc__rrrrr r!r$r'r(r*r-r0r1r2r r r r r s
rcs~eZdZdZdZed‡fdd„    ƒZdd„Zdd„Zd    d
„Z    dd d „Z
d d„Z ddd„Z dd„Z dd„Zdd„Zdd„Z‡ZS)ÚImmutableDictMixinzOMakes a :class:`dict` immutable.
 
    .. versionadded:: 0.5
 
    :private:
    Ncs$tƒ |¡}| t|t|ƒƒ¡|Sr)ÚsuperÚ__new__Ú__init__Úzipr)ÚclsÚkeysr#Úinstance©Ú    __class__r r ÚfromkeysKs zImmutableDictMixin.fromkeyscCst|ƒt|ƒffSr)rÚdictrr r r rQsz ImmutableDictMixin.__reduce_ex__cCs| ¡Sr©Úitemsr    r r r Ú_iter_hashitemsTsz"ImmutableDictMixin._iter_hashitemscCs*|jdk    r|jStt| ¡ƒƒ}|_|Sr)rrÚ    frozensetrDrr r r rWs
zImmutableDictMixin.__hash__cCs t|ƒdSrr©r
rÚdefaultr r r Ú
setdefault]szImmutableDictMixin.setdefaultcOs t|ƒdSrr©r
ÚargsÚkwargsr r r Úupdate`szImmutableDictMixin.updatecCs t|ƒdSrrrFr r r r0cszImmutableDictMixin.popcCs t|ƒdSrrr    r r r ÚpopitemfszImmutableDictMixin.popitemcCs t|ƒdSrrr"r r r r$iszImmutableDictMixin.__setitem__cCs t|ƒdSrrrr r r rlszImmutableDictMixin.__delitem__cCs t|ƒdSrrr    r r r ÚclearoszImmutableDictMixin.clear)N)N)N)rr3r4r5rÚ classmethodr@rrDrrHrLr0rMr$rrNÚ __classcell__r r r>r r6As
 
r6c@sJeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    ddd„Z
dS)ÚImmutableMultiDictMixinzTMakes a :class:`MultiDict` immutable.
 
    .. versionadded:: 0.5
 
    :private:
    cCst|ƒt|jddƒffS©NT)Zmulti)rrrCrr r r r{sz%ImmutableMultiDictMixin.__reduce_ex__cCs |jddSrRrBr    r r r rD~sz'ImmutableMultiDictMixin._iter_hashitemscCs t|ƒdSrrr"r r r ÚaddszImmutableMultiDictMixin.addcCs t|ƒdSrrr    r r r Ú popitemlist„sz#ImmutableMultiDictMixin.popitemlistcCs t|ƒdSrrrr r r Úpoplist‡szImmutableMultiDictMixin.poplistcCs t|ƒdSrr)r
rZnew_listr r r ÚsetlistŠszImmutableMultiDictMixin.setlistNcCs t|ƒdSrr)r
rZ default_listr r r Úsetlistdefaultsz&ImmutableMultiDictMixin.setlistdefault)N) rr3r4r5rrDrSrTrUrVrWr r r r rQssrQc@s†eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z defdd„Zdd„Zdd„Zdd„ZdS)ÚImmutableHeadersMixinzÞMakes a :class:`Headers` immutable.  We do not mark them as
    hashable though since the only usecase for this datastructure
    in Werkzeug is a view on a mutable structure.
 
    .. versionadded:: 0.5
 
    :private:
    cKs t|ƒdSrr)r
rrKr r r r›sz!ImmutableHeadersMixin.__delitem__cCs t|ƒdSrrr"r r r r$žsz!ImmutableHeadersMixin.__setitem__cKs t|ƒdSrr©r
Ú_keyÚ_valuerKr r r Úset¡szImmutableHeadersMixin.setcCs t|ƒdSrr)r
rÚvaluesr r r rV¤szImmutableHeadersMixin.setlistcKs t|ƒdSrrrYr r r rS§szImmutableHeadersMixin.addcKs t|ƒdSrr)r
rZr[Ú_kwargsr r r Ú
add_headerªsz ImmutableHeadersMixin.add_headercCs t|ƒdSrrrr r r r(­szImmutableHeadersMixin.removecOs t|ƒdSrrrIr r r r*°szImmutableHeadersMixin.extendcOs t|ƒdSrrrIr r r rL³szImmutableHeadersMixin.updatecCs t|ƒdSrrr+r r r r-¶szImmutableHeadersMixin.insertNcCs t|ƒdSrrrFr r r r0¹szImmutableHeadersMixin.popcCs t|ƒdSrrr    r r r rM¼szImmutableHeadersMixin.popitemcCs t|ƒdSrrrFr r r rH¿sz ImmutableHeadersMixin.setdefaultcCs t|ƒdSrrrFr r r rWÂsz$ImmutableHeadersMixin.setlistdefault)rr3r4r5rr$r\rVrSr_r(r*rLr-rr0rMrHrWr r r r rX‘s    rXcs‡fdd„}ˆ|_|S)Ncs.ttt|ƒˆƒ||Ž}|jdk    r*| |¡|Sr)Úgetattrr7ÚUpdateDictMixinÚ    on_update)r
rJÚkwr©Únamer r ÚoncallÇs
 
z_calls_update.<locals>.oncall)r)rerfr rdr Ú _calls_updateÆs rgcs^eZdZdZdZd ‡fdd„    Zef‡fdd„    ZedƒZ    edƒZ
ed    ƒZ ed
ƒZ ed ƒZ ‡ZS) razbMakes dicts call `self.on_update` on modifications.
 
    .. versionadded:: 0.5
 
    :private:
    Ncs2||k}tƒ ||¡}|r.|jdk    r.| |¡|Sr)r7rHrb©r
rrGÚmodifiedrr>r r rHÝs
 
zUpdateDictMixin.setdefaultcsH||k}|tkrtƒ |¡}ntƒ ||¡}|rD|jdk    rD| |¡|Sr)rr7r0rbrhr>r r r0äs
zUpdateDictMixin.popr$rrNrMrL)N)rr3r4r5rbrHrr0rgr$rrNrMrLrPr r r>r raÓs
raN)Ú
__future__rÚ    itertoolsrÚ    _internalrr rr6rQrXrgrArar r r r Ú<module>s   525