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
U
H=®d9ã@s~ddlZddlZddlmZddlmZddlmZzeWne    k
rXe
e fZYnXdd„Z Gdd    „d    eƒZ d
d „ZdS) éN)Údedenté)Ú    BaseCache)ÚCacheControllerc    Cs tj}|tjtjBO}ttdƒr*|tjO}ttdƒr>|tjO}zt |¡Wntt    fk
rdYnXt 
|||¡}zt  |d¡WSt  |¡‚YnXdS)NÚ
O_NOFOLLOWÚO_BINARYÚwb) ÚosÚO_WRONLYÚO_CREATÚO_EXCLÚhasattrrrÚremoveÚIOErrorÚOSErrorÚopenÚfdopenÚclose)ÚfilenameÚfmodeÚflagsÚfd©rúaD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/cachecontrol/caches/file_cache.pyÚ_secure_open_writes 
 
 
 
 
rc@sBeZdZddd„Zedd„ƒZd    d
„Zd d „Zd d„Zdd„Z    dS)Ú    FileCacheFé€éÀNc
Cs’|dk    r|dk    rtdƒ‚zddlm}ddlm}Wn$tk
rXtdƒ}    t|    ƒ‚YnX|rd|}n |dkrp|}||_||_||_    ||_
||_ dS)Nz/Cannot use use_dir_lock and lock_class togetherr)ÚLockFile)Ú MkdirLockFilezª
            NOTE: In order to use the FileCache you must have
            lockfile installed. You can install it via pip:
              pip install lockfile
            ) Ú
ValueErrorÚlockfilerÚlockfile.mkdirlockfilerÚ ImportErrorrÚ    directoryÚforeverÚfilemodeÚdirmodeÚ
lock_class)
Úselfr$r%r&r'Ú use_dir_lockr(rrÚnoticerrrÚ__init__:s&
 ÿzFileCache.__init__cCst | ¡¡ ¡S©N)ÚhashlibÚsha224ÚencodeÚ    hexdigest)Úxrrrr0aszFileCache.encodecCs4| |¡}t|dd…ƒ|g}tjj|jf|žŽS)Né)r0Úlistr    ÚpathÚjoinr$)r)ÚnameÚhashedÚpartsrrrÚ_fnes
z FileCache._fnc
CsR| |¡}z,t|dƒ}| ¡W5QR£WSQRXWntk
rLYdSXdS)NÚrb)r:rÚreadÚFileNotFoundError)r)Úkeyr7ÚfhrrrÚgetls 
  z FileCache.getc
Cs|| |¡}zt tj |¡|j¡Wnttfk
r<YnX| |¡*}t    |j|j
ƒ}|  |¡W5QRXW5QRXdSr-) r:r    Úmakedirsr5Údirnamer'rrr(rr&Úwrite)r)r>Úvaluer7Úlockr?rrrÚsetus
 z FileCache.setcCs8| |¡}|js4zt |¡Wntk
r2YnXdSr-)r:r%r    rr=)r)r>r7rrrÚdeleteƒs 
zFileCache.delete)FrrNN)
Ú__name__Ú
__module__Ú __qualname__r,Ú staticmethodr0r:r@rFrGrrrrr8sù
'
    rcCst |¡}| |¡S)z\Return the file cache path based on the URL.
 
    This does not ensure the file exists!
    )rÚ    cache_urlr:)ÚurlÚ    filecacher>rrrÚurl_to_file_pathŒs
rO)r.r    ÚtextwraprÚcacherÚ
controllerrr=Ú    NameErrorrrrrrOrrrrÚ<module>s   )T