Ë
    ö%9j¼  ã                   óº   — d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZ ddlmZmZmZmZ  ej&                  e«      Z G d„ d	e
j,                  «      Zy)
z8Create / interact with Google Cloud Storage connections.é    N)Ú
exceptions)ÚNotFound)Ú_http)Ú__version__Ú_helpers)ÚHAS_OPENTELEMETRYÚ_is_bucket_metadata_disabledÚcreate_trace_spanÚenable_otel_tracesc                   ót   ‡ — e Zd ZdZ ej
                  «       ZdZdˆ fd„	Zej                  Z
	 dZ	 ˆ fd„Zˆ xZS )Ú
Connectiona  A connection to Google Cloud Storage via the JSON REST API.

    Mutual TLS will be enabled if the "GOOGLE_API_USE_CLIENT_CERTIFICATE"
    environment variable is set to the exact string "true" (case-sensitive).

    Mutual TLS is not compatible with any API endpoint or universe domain
    override at this time. If such settings are enabled along with
    "GOOGLE_API_USE_CLIENT_CERTIFICATE", a ValueError will be raised.

    :type client: :class:`~google.cloud.storage.client.Client`
    :param client: The client that owns the current connection.

    :type client_info: :class:`~google.api_core.client_info.ClientInfo`
    :param client_info: (Optional) instance used to generate user agent.

    :type api_endpoint: str
    :param api_endpoint: (Optional) api endpoint to use.
    z#https://storage.mtls.googleapis.comc                 óŽ  •— t         t        | �  ||«       |xs | j                  | _        | j
                  | _        |d u | _        t        | j                  _
        | j                  j                  €d| j                  _        dt        › �}|| j                  j                  vr$| j                  xj                  d|› d�z  c_        y y )NÚ zgcloud-python/ú )Úsuperr   Ú__init__ÚDEFAULT_API_ENDPOINTÚAPI_BASE_URLÚDEFAULT_API_MTLS_ENDPOINTÚAPI_BASE_MTLS_URLÚALLOW_AUTO_SWITCH_TO_MTLS_URLr   Ú_client_infoÚclient_library_versionÚ
user_agent)ÚselfÚclientÚclient_infoÚapi_endpointÚagent_versionÚ	__class__s        €úV/var/www/html/truck-me/venv/lib/python3.12/site-packages/google/cloud/storage/_http.pyr   zConnection.__init__;   s·   ø€ ÜŒj˜$Ñ(¨°Ô=Ø(ÒE¨D×,EÑ,EˆÔØ!%×!?Ñ!?ˆÔØ-9¸TÐ-AˆÔ*Ü3>ˆ×ÑÔ0ð ×Ñ×'Ñ'Ð/Ø+-ˆD×ÑÔ(Ø(¬¨Ð6ˆØ × 1Ñ 1× <Ñ <Ñ<Ø×Ñ×(Ò(¨a°¨¸aÐ,@Ñ@Ö(ð =ó    z*{api_base_url}/storage/{api_version}{path}c                 óÔ  •— |j                  dd «      }t        j                  «       }||d<   d|i}| j                  }t        r¯t
        r©t        |d«      r�|j                  r‘t        «       s‡|j                  d«      xs d}t        j                  d|«      }|rZ	 |j                  j                  |j                  d«      «      }	|	r-t        |	t        «      rt        |	«      d	k(  r|	\  }
}|
|d
<   ||d<   t'        j(                  t*        t,        | �^  g|¢­i |¤Ž}t1        d||||¬«      5  |r	  |j2                  di |¤Ž}|r ||«      }	  |«       cd d d «       S # t         $ r"}t"        j%                  d|› �«       Y d }~ŒŒd }~ww xY w# t4        $ r Y ŒTw xY w# t6        t8        j6                  f$ r­ t        r¥t
        rŸt        |d«      r“|j                  r‡|j                  d«      xs d}t        j                  d|«      }|rZ	 |j                  j;                  |j                  d«      «       ‚ # t         $ r"}t"        j%                  d|› �«       Y d }~‚ d }~ww xY w‚ w xY w# 1 sw Y   y xY w)NÚretryÚextra_api_infozgccl-invocation-idÚ_bucket_metadata_cacheÚpathr   z/b/([^/?#]+)é   é   zgcp.resource.destination.idz!gcp.resource.destination.locationz0Failed cache.get_or_queue_fetch in api_request: zStorage.Connection.api_request)ÚnameÚ
attributesr   Úapi_requestr$   z4Failed cache.check_and_evict on 404 in api_request: © )Úpopr   Ú_get_invocation_idÚ_clientr   r   Úhasattrr&   r	   ÚgetÚreÚsearchÚgroupÚ
isinstanceÚtupleÚlenÚ	ExceptionÚloggerÚdebugÚ	functoolsÚpartialr   r   r,   r
   Ú"get_retry_policy_if_conditions_metÚAttributeErrorr   Úapi_exceptionsÚcheck_and_evict)r   ÚargsÚkwargsr$   Úinvocation_idÚspan_attributesr   r'   ÚmatchÚcachedÚdest_idÚlocÚeÚcallr    s                 €r!   r,   zConnection.api_requestO   sk  ø€ Ø—
‘
˜7 DÓ)ˆÜ ×3Ñ3Ó5ˆØ#0ˆÐÑ à  -ð
ˆð —‘ˆåÝ"Ü˜Ð 8Ô9Ø×-Ò-Ü0Ô2à—:‘:˜fÓ%Ò+¨ˆDÜ—I‘I˜o¨tÓ4ˆEÙðYØ#×:Ñ:×>Ñ>¸u¿{¹{È1»~ÓN�FÙ¤*¨V´UÔ";ÄÀFÃÈqÒ@PØ'-™˜ ØIP˜Ð(EÑFØOR˜Ð(KÑLô × Ñ ¤¤z°4Ñ!DÐVÀtÒVÈvÑVˆÜØ1Ø&ØØØô
ñ #	ñ ðØD˜E×DÑDÑNÀvÑN�Eñ Ù  ›;�DðÙ“v÷!#	ñ #	øô	 !ò YÜ—L‘LÐ#SÐTUÐSVÐ!W×XÑXûðYûô &ò Ùðûô œn×5Ñ5Ð6ò å%Ý*Ü Ð(@ÔAØ×5Ò5à!Ÿ:™: fÓ-Ò3°�DÜŸI™I o°tÓ<�EÙðØ"×9Ñ9×IÑIØ %§¡¨A£ôð øô	  )ò Ü"ŸL™LØ"VÐWXÐVYÐ Z÷ð ð ûð	úð ð%ú÷##	ð #	ús†   ÂAE Ä'IÄ+FÄ=
IÅFÅ	FÅ!E>Å>FÆ	FÆIÆFÆIÆA*IÈ *H+È*IÈ+	IÈ4IÉIÉIÉIÉIÉI')NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú_get_default_storage_base_urlr   r   r   Ú_API_VERSIONÚAPI_VERSIONÚAPI_URL_TEMPLATEr,   Ú__classcell__)r    s   @r!   r   r   $   sK   ø„ ñð& B˜8×AÑAÓCÐØ EÐõAð ×'Ñ'€KØFàCÐØ:÷?ð ?r"   r   )rO   r<   Úloggingr3   Úgoogle.api_corer   r@   Úgoogle.cloud.exceptionsr   Úgoogle.cloudr   Úgoogle.cloud.storager   r   Ú+google.cloud.storage._opentelemetry_tracingr   r	   r
   r   Ú	getLoggerrL   r:   ÚJSONConnectionr   r-   r"   r!   ú<module>r]      sQ   ðñ ?ã Û Û 	å 8Ý ,å ß 6÷ó ð 
ˆ×	Ñ	˜8Ó	$€ôj�×%Ñ%õ jr"   