o YZa.@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl Z ddl m Z ddlmZddlmZeeZe jrddlmZGdddejZdd lmZdd lmZdd lmZdd lmZdd lmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddl%m&Z&ddl'm(Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/e)Z0e1Z1eZ2ddZ3ddZ4dFddZ5dGd d!Z6ndd l7mZdd l7mZdd l7mZdd l7mZdd lmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$dd"l8m9Z9ddl:m-Z-e;Z0dd#l.mm&Z&dd%l*m?Z+Gd&dde9ZdHd'd(Z2d)dZ3d*dZ4dGd+dZ5dGd,d!Z6dd-l@mAZAz ddlBmCmDZEWneFyoddlGmCmHZEYnweEjIZJddlKZKd.d/ZLeMd0d1ZNeMd2d3ZOeNe_NeOe_Od4d5ZPd6d7ZQzeRd8ZSWn eTyd9ZSYnwd:d;ZUdIdd?ZWd@dAZXzddBlYmZZZWneFyddBl@mZZZYnwzddl[Z\ej]^dCdDZ_e_`dEk ZaWdSeFyd9ZaYdSw)JN)floor)MD5UnavailableError)tzlocal) exceptions) http_clientc@s eZdZdS) HTTPHeadersN)__name__ __module__ __qualname__r r 1/usr/lib/python3/dist-packages/botocore/compat.pyr$sr)quote) urlencode)unquote) unquote_plus)urlparse)urlsplit) urlunsplit)urljoin) parse_qsl)parse_qs) HTTPResponse)IOBase) encodebytes) formatdate) zip_longestcCs|jjjj|dSzSet the timeout of the socket from an HTTPResponse. :param http_response: An instance of ``httplib.HTTPResponse`` N)_fpfpraw_sock settimeout http_responsetimeoutr r r set_socket_timeout>sr%cCt|dSN)inspectgetfullargspecfuncr r r accepts_kwargsFsr-cCs|SNr sencodingerrorsr r r ensure_unicodeKsr3utf-8strictcC4t|tr |||St|tr|Stdt|)Nz#Expected str or bytes, received %s.) isinstancestrencodebytes ValueErrortyper/r r r ensure_bytesO   r=)Message)izip) izip_longest) encodestringc@seZdZddZdS)rccs|jD]\}}|VqdSr.)_headers)selffieldvaluer r r __iter__mszHTTPHeaders.__iter__N)rr r rGr r r r ris cCs||}t||Sr.)r9rdecode)rFr1 byte_stringr r r unquote_strqs rJcCs|jjj|dSr)rrr r!r"r r r r%{scCr&r')r) getargspecr+r r r r-scCst|tjr|St|||Sr.)r7six text_typeunicoder/r r r r3s  cCr6)Nz%Expected str or unicode, received %s.)r7rNr9r8r;r<r/r r r r=r>) OrderedDictcCstjddtjdddS)Nignorez+A true SSLContext object is not available.*z.*urllib3\.util\.ssl_)messagecategorymodule)warningsfilterwarningsrInsecurePlatformWarningr r r r filter_ssl_warningss  rWcCs$|}|D]\}}|||<q|Sr.)items)clsd new_instancekeyrFr r r from_dicts r]cCs |}|D]\}}|||<q|Sr.r )rYpairsr[r\rFr r r from_pairss  r_cCst|}|S)zI This used to be a compat shim for 2.6 but is now just an alias. )copy)kwargs copy_kwargsr r r rbs rbcCs|S)z Returns the total seconds in a ``datetime.timedelta``. This used to be a compat shim for 2.6 but is now just an alias. :param delta: The timedelta object :type delta: ``datetime.timedelta`` ) total_seconds)deltar r r rcs rcTFcOstr tj|i|St)a Attempts to get an md5 hashing object. :param raise_error_if_unavailable: raise an error if md5 is unavailable on this system. If False, None will be returned if it is unavailable. :type raise_error_if_unavailable: bool :param args: Args to pass to the MD5 constructor :param kwargs: Key word arguments to pass to the MD5 constructor :return: An MD5 hashing object if available. If it is unavailable, None is returned if raise_error_if_unavailable is set to False. ) MD5_AVAILABLEhashlibmd5r)argsrar r r get_md5s ricCs(|durtj}|dkrt|St|S)Nwin32)sysplatform_windows_shell_splitshlexsplit)r0rlr r r compat_shell_splits  rpcCs2|sgSg}g}d}d}|D]k}|dkr|d7}q|dkrG|dkr>|dtt|d|d}d}|dkr>|dq| }|dq|dvrg|sg|dkrZ|d|d}|rf|d|g}q|dkrt|d|d}||q|rtd ||dkr|d||r|d||S) aSplits up a windows command as the built-in command parser would. Windows has potentially bizarre rules depending on where you look. When spawning a process via the Windows C runtime (which is what python does when you call popen) the rules are as follows: https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments To summarize: * Only space and tab are valid delimiters * Double quotes are the only valid quotes * Backslash is interpreted literally unless it is part of a chain that leads up to a double quote. Then the backslashes escape the backslashes, and if there is an odd number the final backslash escapes the quote. :param s: The command string to split up into parts. :return: A list of command components. Fr\"r()  z"No closing quotation in string: %s)appendintrjoinr;)r0 componentsbuff is_quotednum_backslashes character remainderr r r rmsL      rmcCs$tjdkrddlm}t|fStfS)Nrjr tzwinlocal)rkrl dateutil.tzrrrr r r get_tzinfo_optionsRs  r)MutableMappingBOTO_DISABLE_CRTfalsetrue)NN)r4r5)r4r.)br`datetimerkr)rTrfloggingrnosmathrrLbotocore.exceptionsrrrurllib3r getLoggerrloggerPY3 six.movesr HTTPMessager urllib.parser rrrrrrrrr http.clientrior_IOBasebase64r email.utilsr itertoolsr file_typeziprJr%r-r3r=urllib email.messager? email.Utilsfiler@rAhttplibrB collectionsrOxml.etree.cElementTreeetree cElementTreeETree ImportErrorxml.etree.ElementTree ElementTree ParseError XMLParseErrorjsonrW classmethodr]r_rbrcrgrer;rirprmrcollections.abcr awscrt.authawscrtenvirongetdisabledlowerHAS_CRTr r r r s                                                 ^