݁[c@sTddlZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z ddl m Z ddl mZddl mZddlmZmZdefd YZd efd YZd Zdd ZdefdYZdZddddZdZddddZdZdS(iN(tsixt OrderedDict(tcreate_request_objecttprepare_request_dict(tUnknownSignatureVersionError(tUnknownClientMethodError(t UnsupportedSignatureVersionError(t fix_s3_hosttdatetime2timestampt RequestSignercBseZdZdZedZedZedZd d dZ d dd d dZ dZ d d Z e Z d d d d ZRS( s0 An object to sign requests before they go out over the wire using one of the authentication mechanisms defined in ``auth.py``. This class fires two events scoped to a service and operation name: * choose-signer: Allows overriding the auth signer name. * before-sign: Allows mutating the request before signing. Together these events allow for customization of the request signing pipeline, including overrides, request path manipulation, and disabling signing per operation. :type service_id: botocore.model.ServiceId :param service_id: The service id for the service, e.g. ``S3`` :type region_name: string :param region_name: Name of the service region, e.g. ``us-east-1`` :type signing_name: string :param signing_name: Service signing name. This is usually the same as the service name, but can differ. E.g. ``emr`` vs. ``elasticmapreduce``. :type signature_version: string :param signature_version: Signature name like ``v4``. :type credentials: :py:class:`~botocore.credentials.Credentials` :param credentials: User credentials with which to sign requests. :type event_emitter: :py:class:`~botocore.hooks.BaseEventHooks` :param event_emitter: Extension mechanism to fire events. cCsC||_||_||_||_||_tj||_dS(N(t _region_namet _signing_namet_signature_versiont _credentialst _service_idtweakreftproxyt_event_emitter(tselft service_idt region_namet signing_nametsignature_versiont credentialst event_emitter((sh/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/signers.pyt__init__>s      cCs|jS(N(R (R((sh/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/signers.pyRIscCs|jS(N(R (R((sh/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/signers.pyRMscCs|jS(N(R (R((sh/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/signers.pyRQscKs|j||S(N(tsign(Rtoperation_nametrequesttkwargs((sh/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/signers.pythandlerUststandardc Cs8|d kr|j}n|d kr0|j}n|j|||j}|jjdj|jj |d|d|d|jd|d|d||t j kr4i|d6|d6|d6}|d k r||d s.      ~  3L  >  r