ó U!¶\c@sTddlZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z ddl m Z ddl mZddl mZddlmZmZdefd „ƒYZd efd „ƒYZd „Zdd „Zdefd„ƒYZd„Zdddd„Zd„Zdddd„Zd„ZdS(iÿÿÿÿN(tsixt OrderedDict(tcreate_request_objecttprepare_request_dict(tUnknownSignatureVersionError(tUnknownClientMethodError(t UnsupportedSignatureVersionError(t fix_s3_hosttdatetime2timestampt RequestSignercBs•eZdZd„Zed„ƒZed„ƒZed„ƒZd d d„Z d dd d d„Z d„Z 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((s4/tmp/pip-install-usGedi/botocore/botocore/signers.pyt__init__>s      cCs|jS(N(R (R((s4/tmp/pip-install-usGedi/botocore/botocore/signers.pyRIscCs|jS(N(R (R((s4/tmp/pip-install-usGedi/botocore/botocore/signers.pyRMscCs|jS(N(R (R((s4/tmp/pip-install-usGedi/botocore/botocore/signers.pyRQscKs|j||ƒS(N(tsign(Rtoperation_nametrequesttkwargs((s4/tmp/pip-install-usGedi/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