hyb
2025-11-18 7539e6f48c75dcaeb808359cccfd1c0d0d182ce8
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
Ë
ñúhJãó —dZddlmZddlZddlZddlZddlZddlZddlm    Z    ddl
m Z m Z m Z ddlmZddlmZmZddlmZe rdd    l
mZdd
lmZdd lmZdd lmZej6e«Zej<d «ZdZ dd„Z!Gd„d«Z"y)z7
The httplib2 algorithms ported for use with requests.
é)Ú annotationsN)Ú parsedate_tz)Ú TYPE_CHECKINGÚ
CollectionÚMapping)ÚCaseInsensitiveDict)Ú    DictCacheÚSeparateBodyBaseCache)Ú
Serializer)ÚLiteral)ÚPreparedRequest)Ú HTTPResponse)Ú    BaseCachez9^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?)é-é4có€—tj|«}|€J‚|j«}|d|d|d|d|dfS)zƒParses a URI using the regex given in Appendix B of RFC 3986.
 
    (scheme, authority, path, query, fragment) = parse_uri(uri)
    ééééé)ÚURIÚmatchÚgroups)Úurirrs   úVH:\Change_password\venv_build\Lib\site-packages\pip/_vendor/cachecontrol/controller.pyÚ    parse_urir'sM€ô
I‰Ic‹N€EØ Ð ÐÐ Ø \‰\‹^€FØ 1‰Iv˜a‘y &¨¡)¨V°A©Y¸¸q¹    Ð BÐBócó̗eZdZdZ                d                             dd„Zedd„«Zedd„«Zdd„Zdd„Z    dd„Z
dd    „Z         d                                            dd
„Z         d                                    dd „Z                         dd „Zy)ÚCacheControllerz4An interface to see if request should cached or not.Ncót—|€
t«n||_||_|xs
t«|_|xsd|_y)N)éÈéËi,rr)r    ÚcacheÚ cache_etagsr Ú
serializerÚcacheable_status_codes)Úselfr$r%r&Ú status_codess     rÚ__init__zCacheController.__init__5s7€ð%* M”Y”[°uˆŒ
Ø&ˆÔØ$Ò4¬
« ˆŒØ&2Ò&OÐ6OˆÕ#rcóà—t|«\}}}}}|r|std|z«‚|j«}|j«}|sd}|xrdj||g«xs|}|dz|z|z}|S)z4Normalize the URL to create a safe key for the cachez(Only absolute URIs are allowed. uri = %sú/ú?z://)rÚ    ExceptionÚlowerÚjoin)    ÚclsrÚschemeÚ    authorityÚpathÚqueryÚfragmentÚ request_uriÚ
defrag_uris             rÚ_urlnormzCacheController._urlnormAs„€ô6?¸s³^Ñ2ˆ˜D %¨Ù™YÜÐFÈÑLÓMÐ Mà—‘“ˆØ—O‘OÓ%ˆ    á؈DðÒ7 §¡¨$°¨Ó 7Ò?¸4ˆ ؘe‘^ iÑ/°+Ñ=ˆ
àÐrcó$—|j|«S)N)r9)r1rs  rÚ    cache_urlzCacheController.cache_urlUs€à|‰|˜CӠРrc ó†—tdftdftdfddddddddtdfdœ }|jd|jdd««}i}|jd«D]j}|j«sŒ|jd    d
«}|d j«}    ||\}}    |r|    sd||<|sŒN    ||d
j««||<Œl|S#t$rt
j d |«YŒwxYw#t$r|    rt
j d |«YŒ·t$r$t
j d||j«YŒâwxYw)NTF)NF) úmax-agez    max-staleú    min-freshúno-cacheúno-storez no-transformzonly-if-cachedzmust-revalidateÚpublicÚprivatezproxy-revalidatezs-maxagez cache-controlz Cache-ControlÚú,ú=rrz,Ignoring unknown cache-control directive: %sz-Missing value for cache-control directive: %sz8Invalid value for cache-control directive %s, must be %s)
ÚintÚgetÚsplitÚstripÚKeyErrorÚloggerÚdebugÚ
IndexErrorÚ
ValueErrorÚ__name__)
r(ÚheadersÚknown_directivesÚ
cc_headersÚretvalÚ cc_directiveÚpartsÚ    directiveÚtypÚrequireds
          rÚparse_cache_controlz#CacheController.parse_cache_controlYsf€ô˜T{ܘu˜Ü˜t˜Ø%Ø%Ø)Ø+Ø,Ø#Ø$Ø -ܘd˜ ñ
Ðð —[‘[ °'·+±+¸oÈrÓ2RÓSˆ
à(*ˆà&×,Ñ,¨SÓ1ò    ˆLØ×%Ñ%Ô'Øà ×&Ñ& s¨AÓ.ˆEؘa™Ÿ™Ó(ˆIð Ø 0°Ñ ;‘ Xñ
™hØ$(yÑ!Úð Ù(+¨E°!©H¯N©NÓ,<Ó(=F˜9Ò%ð#    ð>ˆ øô-ò Ü— ‘ ÐKÈYÔWÙð ûô"òÙÜŸ ™ ØNØ%ôùô"òÜ—L‘LØUØ!ØŸ ™ öðús*ÂC Â,C1à C.Ã-C.Ã1!EÄ)EÄ?Ecó‚—d|jvry|j}|€J‚|jj|«}|€tj d«yt |jt«r|jj|«}nd}|jj|||«}|€tjd«|S)zO
        Load a cached response, or return None if it's not available.
        ÚRangeNzNo cache entry availablez1Cache entry deserialization failed, entry ignored) rPÚurlr$rGrKrLÚ
isinstancer
Úget_bodyr&ÚloadsÚwarning)r(Úrequestr;Ú
cache_dataÚ    body_fileÚresults      rÚ_load_from_cachez CacheController._load_from_caches§€ð g—o‘oÑ %Øà—K‘Kˆ    ØÐ$Ð$Ð$Ø—Z‘Z—^‘^ IÓ.ˆ
Ø Ð Ü L‰LÐ3Ô 4Øä d—j‘jÔ"7Ô 8ØŸ
™
×+Ñ+¨IÓ6‰IàˆIà—‘×&Ñ& w°
¸IÓFˆØ ˆ>Ü N‰NÐNÔ O؈ rcóð—|j€J‚|j|j«}tjd|«|j    |j
«}d|vrtjd«yd|vr|ddk(rtjd«y|j |«}|syt|j«tvrd    }tj|«|St|j
«}|rd
|vrJd |vr0tjd «|jj|«tjd «ytj«}t|d
«}|€J‚tj |dd«}    t#d||    z
«}
tjd|
«|j    |«} d} | j%d«} | | } tjd| «nQd|vrMt|d«}|=tj |dd«|    z
}t#d|«} tjd| «|j%d«} | | } tjd| «|j%d«}||
|z }
tjd|
«| |
kDr.tjd«tjd| |
«|Sd |vr0tjd«|jj|«y)ze
        Return a cached response if it exists in the cache, otherwise
        return False.
        NzLooking up "%s" in the cacher?z-Request header has "no-cache", cache bypassedFr=rz1Request header has "max_age" as 0, cache bypassedzQReturning cached permanent redirect response (ignoring date and etag information)ÚdateÚetagz(Purging cached response: no date or etagz!Ignoring cached response: no daterzCurrent age based on date: %iz#Freshness lifetime from max-age: %iÚexpiresz#Freshness lifetime from expires: %iz+Freshness lifetime from request max-age: %ir>z'Adjusted current age from min-fresh: %iz2The response is "fresh", returning cached responsez%i > %iz4The cached response is "stale" with no etag, purging)r\r;rKrLrYrPrerFÚstatusÚPERMANENT_REDIRECT_STATUSESrr$ÚdeleteÚtimerÚcalendarÚtimegmÚmaxrG)r(rar;ÚccÚrespÚmsgrPÚnowÚ
time_tuplergÚ current_ageÚresp_ccÚfreshness_lifetimeÚmax_ageriÚ expire_timeÚ    min_freshs                 rÚcached_requestzCacheController.cached_request©sÊ€ð
{‰{Ð&Ð&Ð&Ø—N‘N 7§;¡;Ó/ˆ    Ü ‰ Ð3°YÔ?Ø × %Ñ % g§o¡oÓ 6ˆð ˜Ñ Ü L‰LÐHÔ IØà ˜‰?˜r )™}°Ò1Ü L‰LÐLÔ MØð×$Ñ$ WÓ-ˆÙØô ˆt{‰{Ó Ô:Ñ :ð7ð ô L‰L˜Ô ؈Kä,?ÀÇ Á Ó,MˆÙ˜&¨Ñ/ؘWÑ$ô— ‘ ÐGÔHØ—
‘
×!Ñ! )Ô,Ü L‰LÐ<Ô =Øäi‰i‹kˆÜ! '¨&¡/Ó2ˆ
ØÐ%Ð%Ð%܏‰˜z¨"¨1˜~Ó.ˆÜ˜!˜S 4™ZÓ(ˆ ܏ ‰ Ð4°kÔBð ×*Ñ*¨7Ó3ˆðÐð—+‘+˜iÓ(ˆØ Ð Ø!(Ð Ü L‰LÐ>Ð@RÕ Sð˜'Ñ !Ü" 7¨9Ñ#5Ó6ˆGØÐ"Ü&Ÿo™o¨g°b°q¨kÓ:¸TÑA Ü%(¨¨KÓ%8Ð"Ü— ‘ ÐBÐDVÔWð—&‘&˜Ó#ˆØ Ð Ø!(Ð Ü L‰LØ=Ð?Qô ð—F‘F˜;Ó'ˆ    Ø Ð  à ˜9Ñ $ˆKÜ L‰LÐBÀKÔ Pð   Ò +Ü L‰LÐMÔ NÜ L‰L˜Ð$6¸ Ô D؈Kð ˜Ñ  Ü L‰LÐOÔ PØ J‰J× Ñ ˜iÔ (ðrcóŠ—|j|«}i}|r-t|j«}d|vr|d|d<d|vr|d|d<|S)NrhÚETagz If-None-Matchz last-modifiedz Last-ModifiedzIf-Modified-Since)rerrP)r(rarrÚ new_headersrPs     rÚconditional_headersz#CacheController.conditional_headerss\€Ø×$Ñ$ WÓ-ˆØˆ á Ü0CÀDÇLÁLÓ0QˆGà˜Ñ Ø/6°v© ˜OÑ,à 'Ñ)Ø3:¸?Ñ3K Ð/Ñ0àÐrcó\—t|jt«rY|jj||jj ||d«|¬«||jj ||«yy|jj||jj |||«|¬«y)z.
        Store the data in the cache.
        r)riN)r]r$r
Úsetr&ÚdumpsÚset_body)r(r;raÚresponseÚbodyÚ expires_times      rÚ
_cache_setzCacheController._cache_set&sš€ô d—j‘jÔ"7Ô 8ð J‰JN‰NØØ—‘×%Ñ% g¨x¸Ó=Ø$ð ô ðÐØ—
‘
×#Ñ# I¨tÕ4ð ð J‰JN‰NØØ—‘×%Ñ% g¨x¸Ó>Ø$ð õ rcó—t|tj«r
|«}|€y|}|xs |j}|j|vr"t
j d|j|«yt|j«}d|vr+t|d«}|€J‚tj|dd«}    nd}    |2d|vr.|dj«rt|d«t|«k7ry|j|j«}
|j|«} |j €J‚|j#|j «} t
j d| «d} d    | vrd
} t
j d «d    |
vrd
} t
j d «| rK|j$j'| «r0t
j d «|j$j)| «| ryd|j'dd«vrt
j d«y|j*r’d|vrŽd}|j'd«r+t|d«}|tj|dd«|    z
}t-|d«}t
j d|›d«t
j d«|j/| ||||«yt|j«t0vr*t
j d«|j/| ||d«yd|vrât|d«}|€J‚tj|dd«}    | j'd«}|2|dkDr-t
j d«|}|j/| ||||«yd|vrn|drht|d«}|tj|dd«|    z
}nd}t
j dj3|««|j/| ||||«yyyy)zc
        Algorithm for caching requests.
 
        This assumes a requests Response object.
        NzStatus code %s not in %srgrrúcontent-lengthz&Updating cache with response from "%s"Fr@TzResponse header has "no-store"zRequest header has "no-store"z0Purging existing cache entry to honor "no-store"Ú*ÚvaryrCzResponse header has "Vary: *"rhriiuzetag object cached for z secondszCaching due to etagzCaching permanent redirectrr=z'Caching b/c date exists and max-age > 0z4Caching b/c of expires header. expires in {} seconds)r]ÚweakrefÚ ReferenceTyper'rjrKrLrrPrrnroÚisdigitrFÚlenrYr\r;r$rGrlr%rprˆrkÚformat)r(raÚresponse_or_refr†r)r…r'Úresponse_headersrurgÚcc_reqrqr;Úno_storer‡rirys                 rÚcache_responsezCacheController.cache_responseDsÈ€ô o¤w×'<Ñ'<Ô =Ù&Ó(ˆHØÐðà&ˆHð".Ò!L°×1LÑ1LÐØ ?‰?Ð"8Ñ 8Ü L‰LØ*¨H¯O©OÐ=Sô ð ä5HØ × Ñ ó6
Ðð Ð%Ñ %Ü%Ð&6°vÑ&>Ó?ˆJØÐ)Ð )Ð)Ü—?‘? :¨b¨q >Ó2‰DàˆDð Ð Ø Ð$4Ñ4Ø Ð!1Ñ2×:Ñ:Ô<ÜÐ$Ð%5Ñ6Ó7¼3¸t»9ÒDà à×)Ñ)¨'¯/©/Ó:ˆØ × %Ñ %Ð&6Ó 7ˆà{‰{Ð&Ð&Ð&Ø—N‘N 7§;¡;Ó/ˆ    Ü ‰ Ð=¸yÔIðˆØ ˜Ñ ؈HÜ L‰LÐ9Ô :Ø ˜Ñ ؈HÜ L‰LÐ8Ô 9Ù ˜Ÿ
™
Ÿ™ yÔ1Ü L‰LÐKÔ LØ J‰J× Ñ ˜iÔ (Ù Ø ð Ð"×&Ñ& v¨rÓ2Ñ 2Ü L‰LÐ8Ô 9Ø ð × Ò  Ð*:Ñ :؈LØ×#Ñ# IÔ.Ü&Ð'7¸    Ñ'BÓCØÐ&Ü#+§?¡?°7¸2¸A°;Ó#?À$Ñ#FLä˜|¨ZÓ8ˆLä L‰LÐ2°<°.ÀÐIÔ JÜ L‰LÐ.Ô /Ø O‰O˜I w°¸$À Õ Mô—‘Ó !Ô%@Ñ @Ü L‰LÐ5Ô 6Ø O‰O˜I w°¸#Õ >ð
Ð'Ñ 'Ü%Ð&6°vÑ&>Ó?ˆJØÐ)Ð )Ð)Ü—?‘? :¨b¨q >Ó2ˆDà—f‘f˜YÓ'ˆGØÐ" w°¢{Ü— ‘ ÐFÔGØ& Ø—‘ØØØØØ õ ðÐ.Ñ.Ø# IÒ.Ü*Ð+;¸IÑ+FÓGGØÐ*Ü'/§¡°w¸rÀ°{Ó'CÀdÑ'J™ à'+˜ ä—L‘LØN×UÑUØ(óôð
—O‘OØ!ØØ ØØ$õ ð/ð/ð'(rcóz—|j€J‚|j|j«}|j|«}|s|Sdg}|jj    |jj «Dcic]\}}|j «|vr||“Œc}}«d|_|j|||«|Scc}}w)zéOn a 304 we will get a new set of headers that we want to
        update our cached value with, assuming we have one.
 
        This should only ever be called when we've sent an ETag and
        gotten a 304 as the response.
        rŠr")    r\r;rerPÚupdateÚitemsr/rjrˆ)r(rar…r;Úcached_responseÚexcluded_headersÚkÚvs        rÚupdate_cached_responsez&CacheController.update_cached_response×s€ð{‰{Ð&Ð&Ð&Ø—N‘N 7§;¡;Ó/ˆ    Ø×/Ñ/°Ó8ˆáàˆOð-Ð-Ðà×Ñ×&Ñ&ð%×,Ñ,×2Ñ2Ó4÷ áAqØ—7‘7“9Ð$4Ñ4ð1‘ó ô    
ð"%ˆÔð     ‰˜     7¨OÔ<àÐùó sÁ4B7
)NTNN)r$zBaseCache | Noner%Úboolr&zSerializer | Noner)úCollection[int] | None)rÚstrÚreturnr¡)rPzMapping[str, str]r¢zdict[str, int | None])rar r¢zHTTPResponse | None)rar r¢zHTTPResponse | Literal[False])rar r¢zdict[str, str])NN) r;r¡rar r…rr†ú bytes | Noner‡z
int | Noner¢ÚNone)
rar r’z2HTTPResponse | weakref.ReferenceType[HTTPResponse]r†r£r)r r¢r¤)rar r…rr¢r)rOÚ
__module__Ú __qualname__Ú__doc__r*Ú classmethodr9r;rYrer|r€rˆr–rž©rrr r 2s,„Ù>ð#'Ø Ø(,Ø/3ð
Pàð
Pðð
Pð&ð    
Pð
-ó
Pðòóðð&ò!óð!ó4óló4ló\ ð("Ø#'ð àðð!ððð    ð
ð ð !ð ð
óðD"Ø/3ð Qà ðQðLðQðð    Qð
-ð Qð
ó Qðf(Ø&ð(Ø2>ð(à    ô(rr )rr¡r¢ztuple[str, str, str, str, str])#r§Ú
__future__rrnÚloggingÚrermrÚ email.utilsrÚtypingrrrÚpip._vendor.requests.structuresrÚpip._vendor.cachecontrol.cacher    r
Ú"pip._vendor.cachecontrol.serializer r Úpip._vendor.requestsr Úpip._vendor.urllib3rrÚ    getLoggerrOrKÚcompilerrkrr r©rrú<module>r¶szðñ
õ#ãÛÛ    Û ÛÝ$ß5Ñ5å?çKÝ9áÝå4Ý0å8à    ˆ×    Ñ    ˜8Ó    $€à€b‡jjÐMÓN€à(ÐóC÷MòMr