U
fZ @ s d Z ddlZddlZddlmZ ddlmZmZm Z m
Z
mZ ddlm
Z
ddlmZ ddlmZ dd lmZmZ dd
lmZ ddlmZmZmZmZmZmZmZ ddlmZ dd
lm!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl(mZ/ ddl(m0Z0 ddl(mZ1 ddl(m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZC e6jDe6jEe6jFe6jGe6jHfZIdZJdZKdZLG dd dZMG dd dZNG dd d eNZOG d!d" d"eMeNZPG d#d$ d$ZQdS )%z`
requests.models
~~~~~~~~~~~~~~~
This module contains the primary objects that power Requests.
N)UnsupportedOperation)DecodeErrorLocationParseError
ProtocolErrorReadTimeoutErrorSSLError)RequestField)encode_multipart_formdata) parse_url )to_native_stringunicode_is_ascii)
HTTPBasicAuth)CallableJSONDecodeErrorMapping
basestringbuiltin_strchardet cookielib)json) urlencodeurlsplit
urlunparse)_copy_cookie_jarcookiejar_from_dictget_cookie_header)ChunkedEncodingErrorConnectionErrorContentDecodingError HTTPErrorInvalidJSONError
InvalidURL)r )
MissingSchema)r )StreamConsumedError)
default_hooks)codes)CaseInsensitiveDict)
check_header_validityget_auth_from_urlguess_filenameguess_json_utfiter_slicesparse_header_linksrequote_uristream_decode_response_unicode super_lento_key_val_list i ( i c @ s0 e Zd Zedd Zedd Zedd ZdS )RequestEncodingMixinc C sN g }t | j}|j}|sd}|| |j}|rD|d || d|S )zBuild the path URL to use./? )r urlpathappendqueryjoin)selfr7 pr8 r: r> @/opt/alt/python38/lib/python3.8/site-packages/requests/models.pypath_urlU s
zRequestEncodingMixin.path_urlc C s t | ttfr| S t| dr | S t| drg }t| D ]j\}}t |tsRt|dsX|g}|D ]B}|dk r\|t |tr|dn|t |tr|dn|f q\q6t|ddS | S dS )zEncode parameters in a piece of data.
Will successfully encode parameters when passed as a dict or a list of
2-tuples. Order is retained if data is a list of 2-tuples but arbitrary
if parameters are supplied as a dict.
read__iter__Nutf-8T)doseq)
isinstancestrbyteshasattrr1 r r9 encoder )dataresultkvsvr> r> r? _encode_paramsj s$
z#RequestEncodingMixin._encode_paramsc C s | st dnt|tr t dg }t|p,i }t| p8i } |D ]|\}}t|ts\t|dsb|g}|D ]T}|dk rft|tst|}|t|tr|dn|t|tr| dn|f qfq@| D ]\}}d}d} t|t
tfr t|dkr|\}
}n&t|dkr|\}
}}n|\}
}}} nt
|p,|}
|}t|tttfrJ|}n(t|dr`| }n|dkrnqn|}t|||
| d }
|
j|d
||
qt|\}}||fS )a Build the body for a multipart/form-data request.
Will successfully encode files when passed as a dict or a list of
tuples. Order is retained if data is a list of tuples but arbitrary
if parameters are supplied as a dict.
The tuples may be 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype)
or 4-tuples (filename, fileobj, contentype, custom_headers).
zFiles must be provided.zData must not be a string.rB NrC rA )namerJ filenameheaders)content_type)
ValueErrorrE r r1 rH rG rF r9 decoderI tuplelistlenr* bytearrayrA r make_multipartr )filesrJ
new_fieldsfieldsfieldvalrN rL ftfhfnfpfdatarfbodyrU r> r> r?
_encode_files sX
z"RequestEncodingMixin._encode_filesN)__name__
__module____qualname__propertyr@ staticmethodrO ri r> r> r> r? r3 T s
r3 c @ s e Zd Zdd Zdd ZdS )RequestHooksMixinc C s^ || j krtd| dt|tr6| j | | n$t|drZ| j | dd |D dS )zProperly register a hook.z.Unsupported event specified, with event name ""rB c s s | ]}t |tr|V qd S N)rE r ).0hr> r> r?