hyb
2026-01-09 4cb426cb3ae31e772a09d4ade5b2f0242aaeefa0
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
Ë
 
çúhK;ãó—ddlmZddlZddlZddlZddlZddlZddlmZddl    m
Z
m Z m Z m Z mZmZddlmZmZddlmZmZddlmZmZgd¢Zdd    lmZdd
lmZdd lmZd Z d Z!hd£Z"eGd„d««Z#Gd„de$«Z%Gd„d«Z&y)é)Ú annotationsN)Ú    dataclass)ÚAnyÚDictÚMappingÚOptionalÚTupleÚUnion)Ú    HTTPErrorÚURLError)Ú    urlencodeÚurljoin)ÚRequestÚurlopen)Ú
HttpClientÚ HttpResponseÚ    HttpErrorÚDEFAULT_TIMEOUT)ÚExponentialWithJitterBackoff)ÚRetry©Ú
dummy_failz)HttpClient/1.0 (+https://example.invalid)g>@>é­éôéöé÷éøcóP—eZdZUded<ded<ded<ded<d dd
„Zdd „Zdd „Zy    )rÚintÚstatusúDict[str, str]ÚheadersÚstrÚurlÚbytesÚcontentNcód—|xs|j«}|jj|d¬«S)NÚreplace)Úerrors)Ú _get_encodingr&Údecode)ÚselfÚencodingÚencs   õiH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\redis/http/http_client.pyÚtextzHttpResponse.text s/€ØÒ.˜$×,Ñ,Ó.ˆØ|‰|×"Ñ" 3¨yÐ"Ó9Ð9ócóh—tj|j|j«¬««S)N)r-)ÚjsonÚloadsr0r*)r,s r/r3zHttpResponse.json$s%€Üz‰z˜$Ÿ)™)¨T×-?Ñ-?Ó-A˜)ÓBÓCÐCr1có—|jjdd«}|jd«D]Z}|j«}|j    «j d«sŒ3|jdd«dj«xsdcSy)Nú content-typeÚú;zcharset=ú=éúutf-8)r"ÚgetÚsplitÚstripÚlowerÚ
startswith)r,ÚctypeÚpartÚps    r/r*zHttpResponse._get_encoding'sw€à— ‘ × Ñ  °Ó4ˆà—K‘K Ó$ò    =ˆDØ—
‘
“ ˆA؏w‰w‹y×#Ñ# JÕ/Ø—w‘w˜s A“ qÑ)×/Ñ/Ó1Ò<°WÒ<ð    =ðr1©N)r-ú Optional[str]Úreturnr#)rFr)rFr#)Ú__name__Ú
__module__Ú __qualname__Ú__annotations__r0r3r*©r1r/rrs'…à ƒKØ ÓØ     ƒHØ ƒNô:óDôr1rcó"‡—eZdZddˆfd„ ZˆxZS)rcóv•—||_||_|xsd|›d|›|_t‰||j«y)NzHTTP z for )r r$ÚmessageÚsuperÚ__init__)r,r r$rNÚ    __class__s    €r/rPzHttpError.__init__3s;ø€ØˆŒ ؈ŒØÒ< E¨&¨°°s°eÐ"<ˆŒ Ü ‰Ñ˜Ÿ™Õ&r1rD)r rr$r#rNrE)rGrHrIrPÚ __classcell__)rQs@r/rr2s ø„÷'ò'r1rc óD—eZdZdZddeeedd¬«d¬«d    dddddddef                                                                                                             dd
„Z                d                                            dd „Z                    d                                            dd „Z
                        d                                                            dd „Z                         d                                                            dd„Z                         d                                                            dd„Z                 d                                                    dd„Z        d                     d!d„Zd"d„Z                    d#                                                            d$d„Z    d                     d%d„Z    d&                    d'd„Z                        d(d„Zd)d„Zd*d„Zy)+rz7
    A lightweight HTTP client for REST API calls.
    r7Nr:é
)ÚbaseÚcapé)ÚbackoffÚretriesTcóâ—|r$|jd«s|j«dzn||_|xsij«Dcic]\}}|j    «|“Œc}}|_||_||_|jjtttjf«||_ ||_||_||_|    |_|
|_| |_| |_| |_ycc}}w)a 
        Initialize a new HTTP client instance.
 
        Args:
            base_url: Base URL for all requests. Will be prefixed to all paths.
            headers: Default headers to include in all requests.
            timeout: Default timeout in seconds for requests.
            retry: Retry configuration for failed requests.
            verify_tls: Whether to verify TLS certificates.
            ca_file: Path to CA certificate file for TLS verification.
            ca_path: Path to a directory containing CA certificates.
            ca_data: CA certificate data as string or bytes.
            client_cert_file: Path to client certificate for mutual TLS.
            client_key_file: Path to a client private key for mutual TLS.
            client_key_password: Password for an encrypted client private key.
            auth_basic: Tuple of (username, password) for HTTP basic auth.
            user_agent: User-Agent header value for requests.
 
        The client supports both regular HTTPS with server verification and mutual TLS
        authentication. For server verification, provide CA certificate information via
        ca_file, ca_path or ca_data. For mutual TLS, additionally provide a client
        certificate and key via client_cert_file and client_key_file.
        ú/N)ÚendswithÚrstripÚbase_urlÚitemsr?Ú_default_headersÚtimeoutÚretryÚupdate_supported_errorsr r ÚsslÚSSLErrorÚ
verify_tlsÚca_fileÚca_pathÚca_dataÚclient_cert_fileÚclient_key_fileÚclient_key_passwordÚ
auth_basicÚ
user_agent)r,r^r"rarbrfrgrhrirjrkrlrmrnÚkÚvs                r/rPzHttpClient.__init__?sրñZ × 1Ñ 1°#Ô 6ð O‰OÓ  Ò #àð     Œ ð
<Cº=Àb×:OÑ:OÓ:Q× R±$°!°Q §¡£¨A¡Ó RˆÔ؈Œ ؈Œ
Ø 
‰
×*Ñ*¬I´xÄÇÁÐ+NÔOØ$ˆŒðˆŒ ؈Œ ؈Œ Ø 0ˆÔØ.ˆÔØ#6ˆÔ à$ˆŒØ$ˆùó!SsÁC+c    ó2—|jd||||d|¬«S)NÚGET©Úparamsr"raÚbodyÚ expect_json©Ú
_json_call©r,Úpathrtr"rarvs      r/r<zHttpClient.gets/€ð‰Ø Ø ØØØØØ#ðó
ð    
r1c    ó2—|jd||||d|¬«S)NÚDELETErsrwrys      r/ÚdeletezHttpClient.delete•s/€ð‰Ø Ø ØØØØØ#ðó
ð    
r1c óT—|jd|||||j||¬«|¬«S)NÚPOST©Ú    json_bodyÚdatars©rxÚ _prepare_body©r,rzrr‚rtr"rarvs        r/ÚpostzHttpClient.post©s?€ð‰Ø Ø ØØØØ×#Ñ#¨i¸dÐ#ÓCØ#ðó
ð    
r1c óT—|jd|||||j||¬«|¬«S)NÚPUTr€rsrƒr…s        r/ÚputzHttpClient.put¿s?€ð‰Ø Ø ØØØØ×#Ñ#¨i¸dÐ#ÓCØ#ðó
ð    
r1c óT—|jd|||||j||¬«|¬«S)NÚPATCHr€rsrƒr…s        r/ÚpatchzHttpClient.patchÕs?€ð‰Ø Ø ØØØØ×#Ñ#¨i¸dÐ#ÓCØ#ðó
ð    
r1có,‡‡‡‡—‰j||«}‰j||«}t|t«r|j    d«n|}    t ||j «|    |¬«ŠdŠ|j«jd«r±‰jrutj‰j‰j‰j¬«Š‰jrc‰j!‰j‰j"‰j$¬«n0tj«Šd‰_tj(‰_    ‰j,j/ˆˆˆˆfd„d„ˆfd    „«S#t0$r§}
d
}     |
j3«} n#t4$rYnwxYw|
j6xsij9«D  cic]\} } | j«| “Œncc} } w}} } ‰j;| |«} t=|
d d «xsd }t?|||| ¬ «}|cYd}
~
Sd}
~
wwxYw)Nr;)r$Úmethodr‚r"Úhttps)ÚcafileÚcapathÚcadata)ÚcertfileÚkeyfileÚpasswordFcó,•—‰j‰‰‰¬«S)N)Úcontextra)Ú _make_request)r—Úreqr,ras€€€€r/ú<lambda>z$HttpClient.request.<locals>.<lambda>sø€˜×*Ñ*¨3¸ÈÐ*ÓQ€r1có—t«SrDr)Ú_s r/ršz$HttpClient.request.<locals>.<lambda>s€œ*›,€r1có&•—‰j|«SrD)Ú_is_retryable_http_error)Úerrorr,s €r/ršz$HttpClient.request.<locals>.<lambda>sø€˜d×;Ñ;¸EÓB€r1r1Úcoder©r r"r$r&) Ú
_build_urlÚ_prepare_headersÚ
isinstancer#ÚencoderÚupperr?r@rfrdÚcreate_default_contextrgrhrirjÚload_cert_chainrkrlÚcheck_hostnameÚ    CERT_NONEÚ verify_moderbÚcall_with_retryr ÚreadÚ    Exceptionr"r_Ú_maybe_decompressÚgetattrr)r,rŽrzrtr"rurar$Ú all_headersr‚ÚeÚerr_bodyrorpÚ headers_mapr Úresponser—r™s`     `          @@r/ÚrequestzHttpClient.requestìsÍû€ðo‰o˜d FÓ+ˆØ×+Ñ+¨G°TÓ:ˆ Ü'1°$¼Ô'<ˆt{‰{˜7Ô#À$ˆä˜# f§l¡l£n¸4ÈÔUˆà,0ˆØ 9‰9‹;× !Ñ ! 'Ô *؏Šä×4Ñ4ØŸ<™<ØŸ<™<ØŸ<™<ôð ×(Ò(Ø×+Ñ+Ø!%×!6Ñ!6Ø $× 4Ñ 4Ø!%×!9Ñ!9ð,õô×4Ñ4Ó6Ø).Ô&Ü&)§m¡mÔ#ð    Ø—:‘:×-Ñ-ÞQÙ&ÛBóð øô
ò    àˆHð ØŸ6™6›8‘øÜò Ùð úà56·Y±Y²_À"×4KÑ4KÓ4M×N©D¨A¨q˜1Ÿ7™7›9 a™<ÑNùÓNˆKÑNØ×-Ñ-¨h¸ ÓDˆHܘQ ¨Ó*Ò/¨aˆFÜ#ØØ#ØØ ô    ˆHð Oûð!    úsNÄ<&E#Å#    HÅ,HÅ/FÅ?HÆ    F Æ    HÆ F Æ $HÆ0G Ç =HÈHÈHcóz—t||xs |j|¬«5}|j«}|jj    «Dcic]\}}|j «|“Œ}}}|j ||«}t|j||j«|¬«cddd«Scc}}w#1swYyxYw)N)rar—r¡)
rrar­r"r_r?r¯rr Úgeturl)    r,r¶r—raÚrespÚrawrorpr´s             r/r˜zHttpClient._make_request+s¢€ô W gÒ&=°·±ÀwÔ Oð        ÐSWØ—)‘)“+ˆCØ48·L±L×4FÑ4FÓ4H×I©D¨A¨q˜1Ÿ7™7›9 a™<ÐIˆKÑIØ×(Ñ(¨¨kÓ:ˆCÜØ—{‘{Ø#Ø—K‘K“MØô    ÷            ñ        ùãI÷        ð        ús.B1Á B+Á&;B1Â+B1Â1B:cóZ—t|t«r|j|j«Sy)NF)r¤r Ú_should_retry_statusr )r,rŸs  r/ržz#HttpClient._is_retryable_http_error<s$€Ü eœYÔ 'Ø×,Ñ,¨U¯Z©ZÓ8Ð 8Ør1cóä—|j||||||¬«}d|jcxkrdks1nt|j|j|j    ««‚|r|j «S|S)N)rŽrzrtr"ruraéÈi)r¶r rr$r0r3)    r,rŽrzrtr"rarurvr¹s             r/rxzHttpClient._json_callBsm€ð|‰|ØØØØØØð ó
ˆðt—{‘{Ô( SÔ(ܘDŸK™K¨¯©°4·9±9³;Ó?Ð ?Ù Ø—9‘9“;Р؈ r1cóX—| | td«‚|tj|dd¬«S|S)Nz+Provide either json_body or data, not both.F)ú,ú:)Ú ensure_asciiÚ
separators)Ú
ValueErrorr3Údumps)r,rr‚s   r/r„zHttpClient._prepare_body\s9€ð Ð   TÐ%5ÜÐJÓKÐ KØ Ð  Ü—:‘:˜i°eÈ
ÔSÐ S؈ r1có֗t|jxsd|«}|rFt|j«Dcic] \}}|€Œ    ||“Œ c}}d¬«}d|vrdnd}|r|›|›|›n|}|Scc}}w)Nr7T)Údoseqú?ú&)rr^r r_)r,rzrtr$rorpÚqueryÚ    separators        r/r¢zHttpClient._build_urlesx€ôd—m‘mÒ) r¨4Ó0ˆÙ äØ"(§,¡,£.×B™$˜!˜Q°A±MA‘ÓBÈ$ôˆEð!$ s¡
™°ˆIÙ05SE˜)˜ U GÑ,¸3ˆC؈
ùó    Cs µ
A%
ÁA%
có —i}|j|j«|jdd«|jd|j«|jdd«|"t    |t
«r|jdd«|j rSd|vrO|j \}}tj|›d    |›jd
««jd «}d |›|d<|r+|j«D]\}}|||j«<Œ|S) NÚacceptzapplication/jsonz
user-agentzaccept-encodingz gzip, deflater6zapplication/json; charset=utf-8Ú authorizationrÁr;ÚasciizBasic ) Úupdater`Ú
setdefaultrnr¤r#rmÚbase64Ú    b64encoder¥r+r_r?)    r,r"ruÚpreparedÚuserÚpwdÚtokenrorps             r/r£zHttpClient._prepare_headersvs€ð$&ˆØ‰˜×-Ñ-Ô.ð    ×јHÐ&8Ô9Ø×јL¨$¯/©/Ô:à×ÑÐ-¨Ô?ð Ð ¤
¨4´Ô 5Ø × Ñ  Ð0QÔ Rð ?Š?˜°hÑ>ØŸ™‰IˆD#Ü×$Ñ$¨ v¨Q¨s¨e _×%;Ñ%;¸GÓ%DÓE×LÑLÈWÓUˆEØ*0°°Ð(8ˆH_Ñ %ñ ØŸ ™ ›ò (‘1Ø&'˜Ÿ™›Ò#ð (ð
ˆr1có—|tvSrD)ÚRETRY_STATUS_CODES)r,r s  r/r¼zHttpClient._should_retry_status–s€ØÔ+Ð+Ð+r1có\—|s|S|jd«xsdj«}    d|vrtj|«Sd|vr&    t    j|tj
«S    |S#tj $rt    j|«cYSwxYw#t$r|cYSwxYw)Nzcontent-encodingr7ÚgzipÚdeflate)r<r?rÛÚ
decompressÚzlibÚ    MAX_WBITSrŸr®)r,r&r"r-s    r/r¯zHttpClient._maybe_decompress™sª€Ù؈NØ—K‘KР2Ó3Ò9°r×@Ñ@ÓBˆð     Ø˜Ñ!Ü—‘ wÓ/Ð/ؘHÑ$ð4ÜŸ?™?¨7´T·^±^°OÓDÐDð%ðˆøô —z‘zò4ÜŸ?™?¨7Ó3Ò3ð4ûäò    àŠNð    ús5©BÁBÁ$A/Á/(BÂBÂBÂB B+Â*B+)r^r#r"úOptional[Mapping[str, str]]raÚfloatrbrrfÚboolrgrErhrErizOptional[Union[str, bytes]]rjrErkrErlrErmzOptional[Tuple[str, str]]rnr#rFÚNone)NNNT) rzr#rtúGOptional[Mapping[str, Union[None, str, int, float, bool, list, tuple]]]r"ràraúOptional[float]rvrârFúUnion[HttpResponse, Any])NNNNNT)rzr#rú Optional[Any]r‚úOptional[Union[bytes, str]]rträr"ràrarårvrârFræ)NNNN)rŽr#rzr#rträr"ràrurèrarårFr)NN)r¶rr—zOptional[ssl.SSLContext]rarå)rŸr®rFrâ)NNNNT)rŽr#rzr#rträr"ràrarårurèrvrârFræ)rrçr‚rèrFrèrD)rzr#rträrFr#)r"ràrurèrFr!)r rrFrâ)r&r%r"zMapping[str, str]rFr%)rGrHrIÚ__doc__rrrÚDEFAULT_USER_AGENTrPr<r}r†r‰rŒr¶r˜ržrxr„r¢r£r¼r¯rKr1r/rr:s„ñð Ø/3Ø(ÙÙ0°a¸RÔ@È!ô
ð à!%Ø!%Ø/3à*.Ø)-Ø-1Ø04Ø,ð%?%àð?%ð-ð?%ðð    ?%ð
ð ?%ðð?%ðð?%ðð?%ð-ð?%ð(ð?%ð'ð?%ð +ð!?%ð".ð#?%ð$ð%?%ð&
ó'?%ðN Ø/3Ø#'Ø ð
àð
ð
ð
ð -ð 
ð!ð
ðð
ð
"ó
ð2 Ø/3Ø#'Ø ð
àð
ð
ð
ð -ð 
ð!ð
ðð
ð
"ó
ð.$(Ø,0ð Ø/3Ø#'Ø ð
àð
ð!ð
ð*ð    
ð
 
ð 
ð-ð
ð!ð
ðð
ð
"ó
ð2$(Ø,0ð Ø/3Ø#'Ø ð
àð
ð!ð
ð*ð    
ð
 
ð 
ð-ð
ð!ð
ðð
ð
"ó
ð2$(Ø,0ð Ø/3Ø#'Ø ð
àð
ð!ð
ð*ð    
ð
 
ð 
ð-ð
ð!ð
ðð
ð
"ó
ð: Ø/3Ø,0Ø#'ð=àð=ðð=ð
ð    =ð-ð=ð*ð=ð!ð=ð
ó=ðD-1Ø#'ð    àðð*ðð!ó    ó"ð Ø/3Ø#'Ø,0Ø ðàðððð
ð    ð-ðð!ðð*ðððð
"óð6TXðØ&ðØ5Pðà    $óð ð àðð
ðð
ó ð"Ø2ðØ:Uðà    óó@,ôr1r)'Ú
__future__rrÒrÛr3rdrÞÚ dataclassesrÚtypingrrrrr    r
Ú urllib.errorr r Ú urllib.parser rÚurllib.requestrrÚ__all__Ú redis.backoffrÚ redis.retryrÚ redis.utilsrrêrrÙrr®rrrKr1r/ú<module>rõsyðÝ"ã Û Û Û
Û Ý!ß=×=ß,ß+ß+â
H€å6ÝÝ"à@ÐØ€Ú.Ðð ÷ðó ðô0'    ô'÷oòor1