ó
    Ú°›j=+  ã                   óü   • S SK r S SKrS SKrS SKJr  S SKJrJrJr  S SK	J
r
  S SKJr  \ R                  " \5      r " S S\5      r " S S	\5      r " S
 S\5      rS r " S S5      r " S S5      r " S S5      rg)é    N)Ú
xform_name)ÚBotoCoreErrorÚConnectionErrorÚHTTPClientError)ÚOperationNotFoundError)ÚCachedPropertyc                   ó   • \ rS rSrSrg)ÚEndpointDiscoveryExceptioné   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/botocore/discovery.pyr
   r
      s   † Úr   r
   c                   ó   • \ rS rSrSrSrSrg)ÚEndpointDiscoveryRequiredé   zBEndpoint Discovery is disabled but is required for this operation.zAEndpoint Discovery is not enabled but this operation requires it.r   N©r   r   r   r   Ú__doc__Úfmtr   r   r   r   r   r      s
   † ÙLà
MƒCr   r   c                   ó   • \ rS rSrSrSrSrg)ÚEndpointDiscoveryRefreshFailedé#   z=Endpoint Discovery failed to the refresh the known endpoints.z<Endpoint Discovery failed to refresh the required endpoints.r   Nr   r   r   r   r   r   #   s
   † ÙGà
HƒCr   r   c                 ól   • U R                   nU(       a!  UR                  S5      (       a
  [        5       eg g )NÚrequired)Úendpoint_discoveryÚgetr   )ÚmodelÚkwargsr   s      r   Ú,block_endpoint_discovery_required_operationsr#   )   s4   € Ø×1Ñ1ÐÞÐ0×4Ñ4°Z×@Ñ@Ü'Ó)Ð)ð AÐr   c                   óV   • \ rS rSrS r\S 5       r\S 5       rS rS r	S r
SS	 jrS
rg)ÚEndpointDiscoveryModelé/   c                 ó   • Xl         g ©N©Ú_service_model)ÚselfÚservice_models     r   Ú__init__ÚEndpointDiscoveryModel.__init__0   s   € Ø+Õr   c                 óX   • U R                   R                  n[        UR                  5      $ r(   )r*   Úendpoint_discovery_operationr   Úname)r+   Údiscovery_operations     r   Údiscovery_operation_nameÚ/EndpointDiscoveryModel.discovery_operation_name3   s&   € à"×1Ñ1×NÑNÐÜÐ-×2Ñ2Ó3Ð3r   c                 ó²   • U R                   R                  n/ nUR                  (       a-  [        UR                  R                  R                  5       5      nU$ r(   )r*   r0   Úinput_shapeÚlistÚmembersÚkeys)r+   r2   r9   s      r   Údiscovery_operation_keysÚ/EndpointDiscoveryModel.discovery_operation_keys8   sG   € à"×1Ñ1×NÑNÐØˆØ×*×*ÜÐ+×7Ñ7×?Ñ?×DÑDÓFÓGˆDØˆr   c                 ó’   •  U R                   R                  U5      nUR                  R                  SS5      $ ! [         a     gf = f)Nr   F)r*   Úoperation_modelr   r    r   )r+   Úoperation_namer=   s      r   Údiscovery_required_forÚ-EndpointDiscoveryModel.discovery_required_for@   sM   € ð	Ø"×1Ñ1×AÑAØóˆOð #×5Ñ5×9Ñ9¸*ÀeÓLÐLøÜ%ó 	Ùð	ús   ‚69 ¹
AÁAc                 óò   • U R                   nUR                  S5      (       d$  UR                  SS 5        UR                  SS 5        UR                  5        VVs0 s H  u  p4X2;   d  M  X4_M     snn$ s  snnf )NÚIdentifiersÚ	Operation)r:   r    ÚpopÚitems)r+   r"   Ú
input_keysÚkÚvs        r   Údiscovery_operation_kwargsÚ1EndpointDiscoveryModel.discovery_operation_kwargsI   s`   € Ø×2Ñ2ˆ
à�z‰z˜-×(Ñ(Ø�J‰J�{ DÔ)Ø�J‰J�} dÔ+Ø!'§¡¤ÔC¢™˜°1±?“�’¡ÒCÐCùÓCs   ÁA3Á)A3c                 ó:   • U R                  UR                  U5      $ r(   )Ú_gather_idsr6   ©r+   Ú	operationÚparamss      r   Úgather_identifiersÚ)EndpointDiscoveryModel.gather_identifiersQ   s   € Ø×Ñ 	× 5Ñ 5°vÓ>Ð>r   Nc                 ó  • Uc  0 nUR                   R                  5        H[  u  pEUR                  R                  S5      (       a  X$   X4'   M-  UR                  S:X  d  M?  XB;   d  MF  U R                  XRU   U5        M]     U$ )NÚendpointdiscoveryidÚ	structure)r8   rE   Úmetadatar    Ú	type_namerL   )r+   ÚshaperO   ÚidsÚmember_nameÚmember_shapes         r   rL   Ú"EndpointDiscoveryModel._gather_idsT   sz   € ð ‰;ØˆCØ).¯©×)<Ñ)<Ö)>Ñ%ˆKØ×$Ñ$×(Ñ(Ð)>×?Ñ?Ø#)Ñ#6�Ó à×&Ñ&¨+Õ5¸+Õ:Oà× Ñ  °kÑ/BÀCÖHñ *?ð ˆ
r   r)   r(   )r   r   r   r   r-   r   r3   r:   r?   rI   rP   rL   r   r   r   r   r%   r%   /   sD   † ò,ð ñ4ó ð4ð ñó ðòòDò?÷r   r%   c                   ób   • \ rS rSr SS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rSrg)ÚEndpointDiscoveryManageréc   Nc                 óä   • Uc  0 nX l         0 U l        Uc  [        R                  nX0l        X@l        [
        R                  " U5      U l        [        UR                  R                  5      U l        g r(   )Ú_cacheÚ_failed_attemptsÚtimeÚ_timeÚ_always_discoverÚweakrefÚproxyÚ_clientr%   Úmetar,   Ú_model)r+   ÚclientÚcacheÚcurrent_timeÚalways_discovers        r   r-   Ú!EndpointDiscoveryManager.__init__d   s]   € ð ‰=ØˆEØŒØ "ˆÔØÑÜŸ9™9ˆLØ!Œ
Ø /Ôô —}’} VÓ,ˆŒÜ,¨V¯[©[×-FÑ-FÓGˆ�r   c                 óx   • US   nU R                  5       nU H  nUR                  S5      nX5S-  -   US'   M      U$ )NÚ	EndpointsÚCachePeriodInMinutesé<   Ú
Expiration)rc   r    )r+   ÚresponseÚ	endpointsrl   ÚendpointÚ
cache_times         r   Ú_parse_endpointsÚ)EndpointDiscoveryManager._parse_endpointsu   sI   € Ø˜[Ñ)ˆ	Ø—z‘z“|ˆÛ!ˆHØ!Ÿ™Ð&<Ó=ˆJØ%1À±OÑ%CˆH�\Ó"ñ "ð Ðr   c                 ót   • [        U[        5      (       a"  [        [        UR	                  5       5      5      $ U$ r(   )Ú
isinstanceÚdictÚtupleÚsortedrE   )r+   Úvalues     r   Ú_cache_itemÚ$EndpointDiscoveryManager._cache_item}   s*   € Ü�eœT×"Ñ"Üœ §¡£Ó.Ó/Ð/àˆLr   c                 ó”   ^ • T R                   R                  " S0 UD6n[        U 4S j[        UR	                  5       5       5       5      $ )Nc              3   óJ   >#   • U  H  u  pTR                  U5      v •  M     g 7fr(   )r€   )Ú.0rG   rH   r+   s      €r   Ú	<genexpr>Ú=EndpointDiscoveryManager._create_cache_key.<locals>.<genexpr>…   s#   øé € ÐLÒ5K©T¨Q�T×%Ñ% a×(Ð(Ò5Kùs   ƒ #r   )ri   rI   r}   r~   rE   )r+   r"   s   ` r   Ú_create_cache_keyÚ*EndpointDiscoveryManager._create_cache_keyƒ   s6   ø€ Ø—‘×7Ò7ÑA¸&ÑAˆÜÔL´V¸F¿L¹L»NÔ5KÓLÓLÐLr   c                 ó8   • U R                   R                  X5      $ r(   )ri   rP   rM   s      r   rP   Ú+EndpointDiscoveryManager.gather_identifiers‡   s   € Ø�{‰{×-Ñ-¨iÓ@Ð@r   c                 ób   • U R                   " S0 UD6nX R                  ;   a  U R                  U	 g g )Nr   )r‡   r`   )r+   r"   Ú	cache_keys      r   Údelete_endpointsÚ)EndpointDiscoveryManager.delete_endpointsŠ   s0   € Ø×*Ò*Ñ4¨VÑ4ˆ	ØŸ™Ó#Ø—‘˜IÑ&ð $r   c                 óÎ   • U R                   R                  " S0 UD6nU R                   R                  n[        U R                  U5      n[
        R                  SU5        U" S0 UD6$ )Nz%Discovering endpoints with kwargs: %sr   )ri   rI   r3   Úgetattrrg   ÚloggerÚdebug)r+   r"   r>   r2   s       r   Ú_describe_endpointsÚ,EndpointDiscoveryManager._describe_endpoints�   sX   € ð —‘×7Ò7ÑA¸&ÑAˆØŸ™×=Ñ=ˆÜ% d§l¡l°NÓCÐÜ�‰Ð<¸fÔEÙ"Ñ, VÑ,Ð,r   c                 ó    • XR                   ;  a  g U R                  5       nU R                   U    Vs/ s H  o2US   :  d  M  UPM     sn$ s  snf )Nrs   )r`   rc   )r+   ÚkeyÚnowÚes       r   Ú_get_current_endpointsÚ/EndpointDiscoveryManager._get_current_endpoints˜   sF   € Ø—k‘kÓ!ØØ�j‰j‹lˆØŸ;™; sÒ+ÓEÒ+�a°Q°|±_Ñ/D—Ñ+ÑEÐEùÒEs   ²AÁAc                 ó2  • U R                   " S0 UD6n U R                  " S0 UD6nU R                  U5      nX@R                  U'   U R                  R                  US 5        U$ ! [        [        4 a#    U R                  5       S-   U R                  U'    g f = f)Nrr   r   )	r‡   r“   rx   r`   ra   rD   r   r   rc   )r+   r"   rŒ   rt   ru   s        r   Ú_refresh_current_endpointsÚ3EndpointDiscoveryManager._refresh_current_endpointsž   s—   € Ø×*Ò*Ñ4¨VÑ4ˆ	ð	Ø×/Ò/Ñ9°&Ñ9ˆHØ×-Ñ-¨hÓ7ˆIØ%.�K‰K˜	Ñ"Ø×!Ñ!×%Ñ% i°Ô6ØÐøÜ¤Ð1ó 	Ø/3¯z©z«|¸bÑ/@ˆD×!Ñ! )Ñ,Ùð	ús   ”AA# Á#0BÂBc                 ó‚   • XR                   ;   a0  U R                  5       nX R                   U   :  a  gU R                   U	 g)NTF)ra   rc   )r+   rŒ   r—   s      r   Ú_recently_failedÚ)EndpointDiscoveryManager._recently_failedª   s>   € Ø×-Ñ-Ó-Ø—*‘*“,ˆCØ×*Ñ*¨9Ñ5Ó5ØØ×%Ñ% iÐ0Ør   c                 ó   • US   S   $ )Nr   ÚAddressr   )r+   ru   s     r   Ú_select_endpointÚ)EndpointDiscoveryManager._select_endpoint²   s   € Ø˜‰|˜IÑ&Ð&r   c                 ó´  • US   nU R                   R                  U5      nU R                  (       d  U(       d  [        R	                  SU5        g U R
                  " S0 UD6nU R                  U5      nU(       a  U R                  U5      $ U R                  U5      nU(       d*  U R                  " S0 UD6nU(       a  U R                  U5      $ [        R	                  SU5        U R                  R                  US 5      nU(       a  U R                  U5      $ U(       a;  U(       a*  U R                  " S0 UD6nU(       a  U R                  U5      $ [        5       eg )NrC   zAOptional discovery disabled. Skipping discovery for Operation: %sz%Endpoint Discovery has failed for: %sr   )ri   r?   rd   r‘   r’   r‡   r™   r£   rŸ   rœ   r`   r    r   )r+   r"   rN   Údiscovery_requiredrŒ   ru   Úrecently_failedÚstale_entriess           r   Údescribe_endpointÚ*EndpointDiscoveryManager.describe_endpointµ   s)  € Ø˜;Ñ'ˆ	Ø!Ÿ[™[×?Ñ?À	ÓJÐà×$×$Ö-?ä�L‰LØSØôð ð ×*Ò*Ñ4¨VÑ4ˆ	Ø×/Ñ/°	Ó:ˆ	ÞØ×(Ñ(¨Ó3Ð3à×/Ñ/°	Ó:ˆÞà×7Ò7ÑA¸&ÑAˆIÞØ×,Ñ,¨YÓ7Ð7ä�‰Ð<¸fÔEØŸ™Ÿ™¨	°4Ó8ˆÞà×(Ñ(¨Ó7Ð7Þö à ×;Ò;ÑE¸fÑE�	ÞØ×0Ñ0°Ó;Ð;ä0Ó2Ð2àr   )rd   r`   rg   ra   ri   rc   )NNT)r   r   r   r   r-   rx   r€   r‡   rP   r�   r“   r™   rœ   rŸ   r£   r©   r   r   r   r   r]   r]   c   sE   † àEIôHò"òòMòAò'ò
-òFò
òò'õ)r   r]   c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚEndpointDiscoveryHandleréá   c                 ó   • Xl         g r(   ©Ú_manager)r+   Úmanagers     r   r-   Ú!EndpointDiscoveryHandler.__init__â   s   € Ø�r   c                 ó¾   • UR                  SU 3U R                  5        UR                  SU 3U R                  5        UR                  SU 3U R                  5        g )Nzbefore-parameter-build.zrequest-created.zneeds-retry.)ÚregisterrP   Úregister_firstÚdiscover_endpointÚhandle_retries)r+   ÚeventsÚ
service_ids      r   r´   Ú!EndpointDiscoveryHandler.registerå   s_   € Ø�‰Ø% j \Ð2°D×4KÑ4Kô	
ð 	×ÑØ˜z˜lÐ+¨T×-CÑ-Cô	
ð 	�‰˜, z lÐ3°T×5HÑ5HÕIr   c                 óh   • UR                   nUc  g U R                  R                  X!5      nSU0US'   g )NÚidentifiersÚ	discovery)r   r°   rP   )r+   rO   r!   Úcontextr"   r   rX   s          r   rP   Ú+EndpointDiscoveryHandler.gather_identifiersî   s:   € Ø"×5Ñ5ÐàÑ%ØØ�m‰m×.Ñ.¨uÓ=ˆØ -¨sÐ3ˆ�Òr   c                 ó4  • UR                   R                  S0 5      R                  S5      nUc  g U R                  R                  X$S9nUc  [        R                  S5        g UR                  S5      (       d  SU-   n[        R                  SU5        XQl        g )Nr½   r¼   ©rC   rB   z&Failed to discover and inject endpointÚhttpzhttps://z!Injecting discovered endpoint: %s)r¾   r    r°   r©   r‘   r’   Ú
startswithÚurl)r+   Úrequestr>   r"   rX   rv   s         r   r¶   Ú*EndpointDiscoveryHandler.discover_endpointö   sŽ   € Ø�o‰o×!Ñ! +¨rÓ2×6Ñ6°}ÓEˆØ‰;ØØ—=‘=×2Ñ2Ø$ð 3ð 
ˆð ÑÜ�L‰LÐAÔBØØ×"Ñ" 6×*Ñ*Ø! HÑ,ˆHÜ�‰Ð8¸(ÔCØ�r   c                 óh  • Uc  g Uu  pRUR                  S0 5      R                  S5      nUR                  S0 5      R                  S5      nUS:w  a  US:w  a  g UR                  S0 5      nUR                  S0 5      R                  S	5      n	U	c  g U R                  R                  UR                  U	S
9  g)NÚResponseMetadataÚHTTPStatusCodeÚErrorÚCodei¥  ÚInvalidEndpointExceptionr¾   r½   r¼   rÁ   r   )r    r°   r�   r1   )
r+   Úrequest_dictrt   rN   r"   Ú_ÚstatusÚ
error_coder¾   rX   s
             r   r·   Ú'EndpointDiscoveryHandler.handle_retries  s¸   € ØÑØà‰ˆØ—‘Ð0°"Ó5×9Ñ9Ð:JÓKˆØ—\‘\ '¨2Ó.×2Ñ2°6Ó:ˆ
Ø�S‹=˜ZÐ+EÓEØà×"Ñ" 9¨bÓ1ˆØ�k‰k˜+ rÓ*×.Ñ.¨}Ó=ˆØ‰;Øð
 	�‰×&Ñ&Ø—n‘n°#ð 	'ñ 	
ð r   r¯   N)
r   r   r   r   r-   r´   rP   r¶   r·   r   r   r   r   r¬   r¬   á   s   † ò òJò4òõr   r¬   )Úloggingrb   re   Úbotocorer   Úbotocore.exceptionsr   r   r   Úbotocore.modelr   Úbotocore.utilsr   Ú	getLoggerr   r‘   r
   r   r   r#   r%   r]   r¬   r   r   r   Ú<module>rØ      s€   ðó Û Û å ß OÑ OÝ 1Ý )à	×	Ò	˜8Ó	$€ô	 ô 	ôNÐ :ô NôIÐ%?ô Iò*÷1ñ 1÷h{ñ {÷|9ò 9r   