hyb
2025-11-04 668edf874b4f77214a8ff4513e60e3c1a973f532
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
Ë
ñúhãóԗddlmZddlZddlZddlZddlmZddlmZm    Z    ddl
m Z ddl m Z mZddlmZe    r ddlmZdd    lmZGd
„d «ZGd „d ee «ZGd„dee«Zdd„Zy)é)Ú annotationsN)Údedent)ÚIOÚ TYPE_CHECKING)ÚPath)Ú    BaseCacheÚSeparateBodyBaseCache)ÚCacheController)Údatetime)Ú BaseFileLockcó„—eZdZdZ                d
                                            d d„Zed d„«Zd d„Zdd„Z    d                            dd„Z    dd„Z
dd    „Z y)Ú_FileCacheMixinz2Shared implementation for both FileCache variants.Nc󦗠   |€ddlm}|}||_||_||_||_||_y#t$rtd«}t|«‚wxYw)Nr)ÚFileLockz¹
            NOTE: In order to use the FileCache you must have
            filelock installed. You can install it via pip:
              pip install cachecontrol[filecache]
            )    ÚfilelockrÚ ImportErrorrÚ    directoryÚforeverÚfilemodeÚdirmodeÚ
lock_class)ÚselfrrrrrrÚnotices        ú]H:\Change_password\venv_build\Lib\site-packages\pip/_vendor/cachecontrol/caches/file_cache.pyÚ__init__z_FileCacheMixin.__init__sg€ð     &ØÐ!Ý-à%
ð#ˆŒØˆŒ Ø ˆŒ ؈Œ Ø$ˆøôò    &ÜðóˆFô˜fÓ%Ð %ð    &ús    ‚
0° Acód—tj|j««j«S©N)ÚhashlibÚsha224ÚencodeÚ    hexdigest)Úxs rr z_FileCacheMixin.encode6s €ä~‰~˜aŸh™h›jÓ)×3Ñ3Ó5Ð5ócóœ—|j|«}t|dd«|gz}tjj|j
g|¢­ŽS)Né)r ÚlistÚosÚpathÚjoinr)rÚnameÚhashedÚpartss    rÚ_fnz_FileCacheMixin._fn:sE€ð—‘˜TÓ"ˆÜV˜B˜QZÓ  F 8Ñ+ˆÜw‰w|‰|˜DŸN™NÐ3¨UÒ3Ð3r#có¨—|j|«}    t|d«5}|j«cddd«S#1swYyxYw#t$rYywxYw)NÚrb)r-ÚopenÚreadÚFileNotFoundError)rÚkeyr*Úfhs    rÚgetz_FileCacheMixin.getAsQ€Øx‰x˜‹}ˆð    Üd˜DÓ!ð ! RØ—w‘w“y÷ !÷ !ò !ûô!ò    Ùð    ús*“ AŸ9¯    A¹A¾AÁAÁ    AÁAcóJ—|j|«}|j||«yr©r-Ú_write)rr3ÚvalueÚexpiresr*s     rÚsetz_FileCacheMixin.setJs€ðx‰x˜‹}ˆØ  ‰ D˜%Õ r#có—tjj|«}tj||jd¬«|j |dz«5t j|¬«\}}    tj||«tj|«tj||j«tj||«ddd«y#tj|«wxYw#1swYyxYw)z:
        Safely write the data to the given path.
        T)Úexist_okz.lock)ÚdirN) r'r(ÚdirnameÚmakedirsrrÚtempfileÚmkstempÚwriteÚcloseÚchmodrÚreplace)rr(Údatar?Úfdr*s      rr8z_FileCacheMixin._writePsµ€ô
—'‘'—/‘/ $Ó'ˆÜ
 ‰ G˜TŸ\™\°DÕ9à _‰_˜T G™^Ó ,ñ    #ä!×)Ñ)¨gÔ6‰JˆRð Ü—‘˜˜TÔ"ä—‘˜” Ü H‰HT˜4Ÿ=™=Ô )Ü J‰Jt˜TÔ "÷    #ð    #øô —‘˜• ú÷     #ð    #ús%ÁC5Á1CÂA C5ÃC2Ã2C5Ã5C>có—|j|«|z}|js    tj|«yy#t$rYywxYwr)r-rr'Úremover2)rr3Úsuffixr*s    rÚ_deletez_FileCacheMixin._deletebsD€Øx‰x˜‹}˜vÑ%ˆØ|Š|ð Ü—    ‘    ˜$•ðøô%ò Ùð ús¢9¹    AÁA)Fi€iÀN) rz
str | PathrÚboolrÚintrrNrztype[BaseFileLock] | NoneÚreturnÚNone)r"ÚstrrOrQ)r*rQrOrQ)r3rQrOz bytes | Noner)r3rQr9Úbytesr:zint | datetime | NonerOrP)r(rQrGrRrOrP)r3rQrKrQrOrP) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rÚ staticmethodr r-r5r;r8rL©r#rrrs¦„Ù<ð
ØØØ04ð %àð%ðð%ðð    %ð
ð %ð .ð %ð
ó%ð:ò6óð6ó4óðHLð!Øð!Ø$ð!Ø/Dð!à     ó!ó #ô$r#rcó—eZdZdZdd„Zy)Ú    FileCachezc
    Traditional FileCache: body is stored in memory, so not suitable for large
    downloads.
    có(—|j|d«y)NÚ©rL©rr3s  rÚdeletezFileCache.deleteqs€Ø  ‰ S˜"Õr#N©r3rQrOrP)rSrTrUrVr_rXr#rrZrZks „ñô
r#rZcó(—eZdZdZdd„Zdd„Zdd„Zy)    ÚSeparateBodyFileCachezh
    Memory-efficient FileCache: body is stored in a separate file, reducing
    peak memory usage.
    cób—|j|«dz}    t|d«S#t$rYywxYw)Nú.bodyr/)r-r0r2)rr3r*s   rÚget_bodyzSeparateBodyFileCache.get_body{s8€Øx‰x˜‹}˜wÑ&ˆð    Ü˜˜dÓ#Ð #øÜ ò    Ùð    ús – "¢    .­.cóP—|j|«dz}|j||«y)Nrdr7)rr3Úbodyr*s    rÚset_bodyzSeparateBodyFileCache.set_body‚s"€Øx‰x˜‹}˜wÑ&ˆØ  ‰ D˜$Õr#cóL—|j|d«|j|d«y)Nr\rdr]r^s  rr_zSeparateBodyFileCache.delete†s€Ø  ‰ S˜"ÔØ  ‰ S˜'Õ"r#N)r3rQrOzIO[bytes] | None)r3rQrgrRrOrPr`)rSrTrUrVrerhr_rXr#rrbrbus„ñó
ó ô#r#rbcóN—tj|«}|j|«S)z\Return the file cache path based on the URL.
 
    This does not ensure the file exists!
    )r
Ú    cache_urlr-)ÚurlÚ    filecacher3s   rÚurl_to_file_pathrn‹s#€ô
# CÓ
(€CØ =‰=˜Ó Ðr#)rlrQrmrZrOrQ)Ú
__future__rrr'rAÚtextwraprÚtypingrrÚpathlibrÚpip._vendor.cachecontrol.cacherr    Ú#pip._vendor.cachecontrol.controllerr
r rr rrZrbrnrXr#rú<module>rusZðõ#ãÛ    ÛÝß$ÝçKÝ?áÝ!å%÷RñRôj ôô#˜OÐ-Bô#ô,r#