3 ”ReE7 ã @ s„ d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl m Z ddlmZ ej eƒZejdƒZd d „ ZG dd„ deƒZdS ) z7 The httplib2 algorithms ported for use with requests. é N)Úparsedate_tz)ÚCaseInsensitiveDicté )Ú DictCache)Ú Serializerz9^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?c C s0 t j| ƒjƒ }|d |d |d |d |d fS )z‡Parses a URI using the regex given in Appendix B of RFC 3986. (scheme, authority, path, query, fragment) = parse_uri(uri) r é é é é )ÚURIÚmatchÚgroups)Úurir © r ú’/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/cachecontrol/controller.pyÚ parse_uri s r c @ s\ e Zd ZdZddd„Zedd„ ƒZedd „ ƒZd d„ Zdd „ Z dd„ Z ddd„Zdd„ ZdS )ÚCacheControllerz9An interface to see if request should cached or not. NTc C s4 |d krt ƒ n|| _|| _|p"tƒ | _|p,d| _d S )NéÈ éË é, é- )r r r r )r ÚcacheÚcache_etagsr Ú serializerÚcacheable_status_codes)Úselfr r r Ústatus_codesr r r Ú__init__" s zCacheController.__init__c C sl t |ƒ\}}}}}| s| r*td| ƒ‚|jƒ }|jƒ }|sBd}|rTdj||gƒpV|}|d | | }|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_urir r r Ú_urlnorm* s zCacheController._urlnormc C s | j |ƒS )N)r+ )r# r r r r Ú cache_url> s zCacheController.cache_urlc C s2 t dft dft dfddddddddt dfdœ}|jd|jddƒƒ}i }xæ|jdƒD ]Ø}|jƒ s`qR|jdd ƒ}|d jƒ }y|| \}} W n" tk rª tjd|ƒ wRY nX | s¸| rÀd ||<