
    vKg$>                     T    S SK r S SKJr  S SKJrJr  S SKJrJrJ	r	J
r
   " S S5      rg)    N)OrderedDict)DEFAULT_TIMEOUTMAX_POOL_CONNECTIONS)InvalidMaxRetryAttemptsErrorInvalidRetryConfigurationErrorInvalidRetryModeErrorInvalidS3AddressingStyleErrorc                       \ rS rSrSr\" SSSSSS\4S	\4S
S\4SSSSSSSSSSSSSSSS/5      rSS0r	S r
S rS rS  rS! rS"rg)#Config   a!  Advanced configuration for Botocore clients.

:type region_name: str
:param region_name: The region to use in instantiating the client

:type signature_version: str
:param signature_version: The signature version when signing requests.

:type user_agent: str
:param user_agent: The value to use in the User-Agent header.

:type user_agent_extra: str
:param user_agent_extra: The value to append to the current User-Agent
    header value.

:type user_agent_appid: str
:param user_agent_appid: A value that gets included in the User-Agent
    string in the format "app/<user_agent_appid>". Allowed characters are
    ASCII alphanumerics and ``!$%&'*+-.^_`|~``. All other characters will
    be replaced by a ``-``.

:type connect_timeout: float or int
:param connect_timeout: The time in seconds till a timeout exception is
    thrown when attempting to make a connection. The default is 60
    seconds.

:type read_timeout: float or int
:param read_timeout: The time in seconds till a timeout exception is
    thrown when attempting to read from a connection. The default is
    60 seconds.

:type parameter_validation: bool
:param parameter_validation: Whether parameter validation should occur
    when serializing requests. The default is True.  You can disable
    parameter validation for performance reasons.  Otherwise, it's
    recommended to leave parameter validation enabled.

:type max_pool_connections: int
:param max_pool_connections: The maximum number of connections to
    keep in a connection pool.  If this value is not set, the default
    value of 10 is used.

:type proxies: dict
:param proxies: A dictionary of proxy servers to use by protocol or
    endpoint, e.g.:
    ``{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}``.
    The proxies are used on each request.

:type proxies_config: dict
:param proxies_config: A dictionary of additional proxy configurations.
    Valid keys are:

    * ``proxy_ca_bundle`` -- The path to a custom certificate bundle to use
      when establishing SSL/TLS connections with proxy.

    * ``proxy_client_cert`` -- The path to a certificate for proxy
      TLS client authentication.

      When a string is provided it is treated as a path to a proxy client
      certificate. When a two element tuple is provided, it will be
      interpreted as the path to the client certificate, and the path
      to the certificate key.

    * ``proxy_use_forwarding_for_https`` -- For HTTPS proxies,
      forward your requests to HTTPS destinations with an absolute
      URI. We strongly recommend you only use this option with
      trusted or corporate proxies. Value must be boolean.

:type s3: dict
:param s3: A dictionary of S3 specific configurations.
    Valid keys are:

    * ``use_accelerate_endpoint`` -- Refers to whether to use the S3
      Accelerate endpoint. The value must be a boolean. If True, the
      client will use the S3 Accelerate endpoint. If the S3 Accelerate
      endpoint is being used then the addressing style will always
      be virtual.

    * ``payload_signing_enabled`` -- Refers to whether or not to SHA256
      sign sigv4 payloads. By default, this is disabled for streaming
      uploads (UploadPart and PutObject).

    * ``addressing_style`` -- Refers to the style in which to address
      s3 endpoints. Values must be a string that equals one of:

      * ``auto`` -- Addressing style is chosen for user. Depending
        on the configuration of client, the endpoint may be addressed in
        the virtual or the path style. Note that this is the default
        behavior if no style is specified.

      * ``virtual`` -- Addressing style is always virtual. The name of the
        bucket must be DNS compatible or an exception will be thrown.
        Endpoints will be addressed as such: ``amzn-s3-demo-bucket.s3.amazonaws.com``

      * ``path`` -- Addressing style is always by path. Endpoints will be
        addressed as such: ``s3.amazonaws.com/amzn-s3-demo-bucket``

    * ``us_east_1_regional_endpoint`` -- Refers to what S3 endpoint to use
      when the region is configured to be us-east-1. Values must be a
      string that equals:

      * ``regional`` -- Use the us-east-1.amazonaws.com endpoint if the
        client is configured to use the us-east-1 region.

      * ``legacy`` -- Use the s3.amazonaws.com endpoint if the client is
        configured to use the us-east-1 region. This is the default if
        the configuration option is not specified.


:type retries: dict
:param retries: A dictionary for configuration related to retry behavior.
    Valid keys are:

    * ``total_max_attempts`` -- An integer representing the maximum number of
      total attempts that will be made on a single request.  This includes
      the initial request, so a value of 1 indicates that no requests
      will be retried.  If ``total_max_attempts`` and ``max_attempts``
      are both provided, ``total_max_attempts`` takes precedence.
      ``total_max_attempts`` is preferred over ``max_attempts`` because
      it maps to the ``AWS_MAX_ATTEMPTS`` environment variable and
      the ``max_attempts`` config file value.
    * ``max_attempts`` -- An integer representing the maximum number of
      retry attempts that will be made on a single request. For
      example, setting this value to 2 will result in the request
      being retried at most two times after the initial request. Setting
      this value to 0 will result in no retries ever being attempted after
      the initial request. If not provided, the number of retries will
      default to the value specified in the service model, which is
      typically four retries.
    * ``mode`` -- A string representing the type of retry mode botocore
      should use.  Valid values are:

      * ``legacy`` - The pre-existing retry behavior.

      * ``standard`` - The standardized set of retry rules. This will also
        default to 3 max attempts unless overridden.

      * ``adaptive`` - Retries with additional client side throttling.

:type client_cert: str, (str, str)
:param client_cert: The path to a certificate for TLS client authentication.

    When a string is provided it is treated as a path to a client
    certificate to be used when creating a TLS connection.

    If a client key is to be provided alongside the client certificate the
    client_cert should be set to a tuple of length two where the first
    element is the path to the client certificate and the second element is
    the path to the certificate key.

:type inject_host_prefix: bool
:param inject_host_prefix: Whether host prefix injection should occur.

    Defaults to True.

    Setting this to False disables the injection of operation parameters
    into the prefix of the hostname. This is useful for clients providing
    custom endpoints that should not have their host prefix modified.

:type use_dualstack_endpoint: bool
:param use_dualstack_endpoint: Setting to True enables dualstack
    endpoint resolution.

    Defaults to None.

:type use_fips_endpoint: bool
:param use_fips_endpoint: Setting to True enables fips
    endpoint resolution.

    Defaults to None.

:type ignore_configured_endpoint_urls: bool
:param ignore_configured_endpoint_urls: Setting to True disables use
    of endpoint URLs provided via environment variables and
    the shared configuration file.

    Defaults to None.

:type tcp_keepalive: bool
:param tcp_keepalive: Enables the TCP Keep-Alive socket option used when
    creating new connections if set to True.

    Defaults to False.

:type request_min_compression_size_bytes: int
:param request_min_compression_size_bytes: The minimum size in bytes that a
    request body should be to trigger compression. All requests with
    streaming input that don't contain the ``requiresLength`` trait will be
    compressed regardless of this setting.

    Defaults to None.

:type disable_request_compression: bool
:param disable_request_compression: Disables request body compression if
    set to True.

    Defaults to None.

:type sigv4a_signing_region_set: string
:param sigv4a_signing_region_set: A set of AWS regions to apply the signature for
    when using SigV4a for signing. Set to ``*`` to represent all regions.

    Defaults to None.

:type client_context_params: dict
:param client_context_params: A dictionary of parameters specific to
    individual services. If available, valid parameters can be found in
    the ``Client Context Parameters`` section of the service client's
    documentation. Invalid parameters or ones that are not used by the
    specified service will be ignored.

    Defaults to None.
)region_nameN)signature_versionN)
user_agentN)user_agent_extraN)user_agent_appidNconnect_timeoutread_timeout)parameter_validationTmax_pool_connections)proxiesN)proxies_configN)s3N)retriesN)client_certN)inject_host_prefixT)endpoint_discovery_enabledN)use_dualstack_endpointN)use_fips_endpointN)ignore_configured_endpoint_urlsN)defaults_modeN)tcp_keepaliveN)"request_min_compression_size_bytesN)disable_request_compressionN)client_context_paramsN)sigv4a_signing_region_setNNc                    U R                  X5      U l        [        R                  " U R                  5      nU R                  R	                  SS5      nUS:w  a  UR                  U R                  5        UR                  U R                  5        UR                  5        H  u  pV[        XU5        M     U R                  U R                  5        U R                  U R                  5        g )Nr    legacy)_record_user_provided_options_user_provided_optionscopyOPTION_DEFAULTSgetupdateNON_LEGACY_OPTION_DEFAULTSitemssetattr_validate_s3_configurationr   _validate_retry_configurationr   )selfargskwargsconfig_varsr    keyvalues          O/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/botocore/config.py__init__Config.__init__  s    &*&H&H'
#
 ii 4 453377X
 H$t>>?4667 &++-JCDu% . 	''0**4<<8    c                    [        U R                  5      n0 nUR                  5        H'  u  pVXPR                  ;   a  XdU'   M  [        SU S35      e   [	        U5      [	        U5      :  a$  [        S[	        U5       S[	        U5       S35      e[        U5       H$  u  pxX7   U;   a  [        SX7    S35      eXX7   '   M&     U$ )Nz!Got unexpected keyword argument ''zTakes at most z arguments (z given)z*Got multiple values for keyword argument ')listr+   r/   	TypeErrorlen	enumerate)	r3   r4   r5   option_orderuser_provided_optionsr7   r8   iargs	            r9   r(   $Config._record_user_provided_options)  s    D001 " !,,.JC***-2c*  "CC5 JKK ) t9s<(( \!2 3<D	{'R   oFA"77@@QQRS  69,/2 & %$r<   c                 L    Ub!  UR                  S5      nUS;  a	  [        US9eg g )Naddressing_style)virtualautopathN)s3_addressing_style)r,   r	   )r3   r   rI   s      r9   r1   !Config._validate_s3_configurationI  s;    >!vv&89'HH3(8  I r<   c                     SnSnUbl  UR                  5        HW  u  pEXB;  a
  [        UUS9eUS:X  a  US:  a
  [        USS9eUS:X  a  US:  a
  [        USS9eUS	:X  d  MH  XS;  d  MO  [        UUS
9e   g g )N)max_attemptsmodetotal_max_attempts)r'   standardadaptive)retry_config_optionvalid_optionsrP   r   )provided_max_attempts	min_valuerR      rQ   )provided_retry_modevalid_modes)r/   r   r   r   )r3   r   rV   r[   r7   r8   s         r9   r2   $Config._validate_retry_configurationQ  s    F8%mmo
+8,/&3  .(UQY6.3"#  ..5196.3"#  &=U%=/,1$/ # . r<   c                     [         R                   " U R                  5      nUR                  UR                  5        [        S0 UD6$ )a  Merges the config object with another config object

This will merge in all non-default values from the provided config
and return a new config object

:type other_config: botocore.config.Config
:param other config: Another config object to merge with. The values
    in the provided config object will take precedence in the merging

:returns: A config object built from the merged values of both
    config objects.
 )r*   r)   r-   r   )r3   other_configconfig_optionss      r9   mergeConfig.mergek  s>     4#>#>? 	lAAB '''r<   )r)   )__name__
__module____qualname____firstlineno____doc__r   r   r   r+   r.   r:   r(   r1   r2   ra   __static_attributes__r^   r<   r9   r   r      s    Tl "!' &&0_-*#%9:$!(0,'5##81+/3	
O> 	4"9.%@4(r<   r   )r*   botocore.compatr   botocore.endpointr   r   botocore.exceptionsr   r   r   r	   r   r^   r<   r9   <module>rl      s&     ' C f( f(r<   