Ë
    ú}ài±2  ã                   óÔ   — d dl Z d dlZd dlZddlmZmZ ddlmZ dZde› d�Z	dZ
 ej                  e«      Zd	„ Zd
„ Zd„ Zd„ Zd„ Z G d„ de«      Zdd„Zd„ Zd„ Zd„ Zdd„Zdd„Zd„ Zy)é    Né   )ÚcredentialsÚerrors)Úconfigz	docker.iozhttps://index.z/v1/z<token>c                 óÄ   — d| v rt        j                  d| › d�«      ‚t        | «      \  }}|d   dk(  s|d   dk(  rt        j                  d|› d�«      ‚t        |«      |fS )	Nz://z)Repository name cannot contain a scheme (ú)r   ú-éÿÿÿÿzInvalid index name (z%). Cannot begin or end with a hyphen.)r   ÚInvalidRepositoryÚsplit_repo_nameÚresolve_index_name)Ú	repo_nameÚ
index_nameÚremote_names      úR/home/factor_ks/STREAMA2026/tests/venv/lib/python3.12/site-packages/docker/auth.pyÚresolve_repository_namer      s‡   € Ø�	ÑÜ×&Ñ&Ø7¸	°{À!ÐDó
ð 	
ô .¨iÓ8Ñ€J�Ø�!�}˜Ò˜z¨"™~°Ò4Ü×&Ñ&Ø" : ,ð /1ð 1ó
ð 	
ô ˜jÓ)¨;Ð6Ð6ó    c                 ó@   — t        | «      } | dt        › �k(  rt        } | S )Nzindex.)Úconvert_to_hostnameÚ
INDEX_NAME)r   s    r   r   r      s&   € Ü$ ZÓ0€JØ�vœj˜\Ð*Ò*Üˆ
ØÐr   c                 ó„  — t         j                  d«       | j                  r| j                  j                  r0t         j                  d«       t	        | j
                  ¬«      | _        t        | j                  || j
                  ¬«      }|r t         j                  d«       t        |«      S t         j                  d«       y )NzLooking for auth configz2No auth config in memory - loading from filesystem)Úcredstore_envzFound auth configzNo auth config found)ÚlogÚdebugÚ_auth_configsÚis_emptyÚload_configr   Úresolve_authconfigÚencode_header)ÚclientÚregistryÚauthcfgs      r   Úget_config_headerr#   %   s–   € Ü‡I�IÐ'Ô(Ø×Ò 6×#7Ñ#7×#@Ò#@Ü�	‰	Ø@ô	
ô  +¸×9MÑ9MÔNˆÔÜ Ø×Ñ˜h°f×6JÑ6Jô€Gñ Ü�	‰	Ð%Ô&ô ˜WÓ%Ð%Ü‡I�IÐ$Ô%Ør   c                 ó”   — | j                  dd«      }t        |«      dk(  sd|d   vrd|d   vr|d   dk7  rt        | fS t        |«      S )Nú/r   ú.r   ú:Ú	localhost)ÚsplitÚlenr   Útuple)r   Úpartss     r   r   r   ;   sV   € Ø�O‰O˜C Ó#€EÜ
ˆ5ƒz�Q‚Ø�5˜‘8Ñ ¨5°©8Ñ 3¸¸a¹ÀKÒ8Oô ˜9Ð$Ð$Ü�‹<Ðr   c                 óZ   — t        | t        «      st        | «      } | j                  |«      S ©N)Ú
isinstanceÚ
AuthConfigÚget_credential_store)Ú
authconfigr!   s     r   r1   r1   E   s'   € Ü�j¤*Ô-Ü 
Ó+ˆ
Ø×*Ñ*¨8Ó4Ð4r   c                   óž   — e Zd Zdd„Zedd„«       Zedd„«       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zdd	„Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)r0   Nc                 óT   — d|vri |d<   | j                  |«       || _        i | _        y ©NÚauths)ÚupdateÚ_credstore_envÚ_stores)ÚselfÚdctr   s      r   Ú__init__zAuthConfig.__init__L   s.   € Ø˜#ÑØˆC�‰LØ�‰�CÔØ+ˆÔØˆ�r   c                 óè  — i }|j                  «       D ]Ü  \  }}t        |t        «      s7t        j	                  d|› d�«       |rt        j                  d|› �«      ‚i c S d|v r#t        j	                  d|› �«       d|d   i||<   Œtd|vrt        j	                  d|› d	�«       i ||<   Œ—t        |d   «      \  }}t        j	                  d
|›d|›d�«       |||j                  d«      |dœ||<   ŒÞ |S )a   
        Parses authentication entries

        Args:
          entries:        Dict of authentication entries.
          raise_on_error: If set to true, an invalid format will raise
                          InvalidConfigFile

        Returns:
          Authentication registry.
        zConfig entry for key z is not auth configz#Invalid configuration for registry Úidentitytokenz*Found an IdentityToken entry for registry ÚIdentityTokenÚauthzAuth data for z> is absent. Client might be using a credentials store instead.zFound entry (registry=z, username=r   Úemail©ÚusernameÚpasswordrA   Úserveraddress)	Úitemsr/   Údictr   r   r   ÚInvalidConfigFileÚdecode_authÚget)ÚclsÚentriesÚraise_on_errorÚconfr!   ÚentryrC   rD   s           r   Ú
parse_authzAuthConfig.parse_authS   s7  € ð ˆØ&Ÿ}™}›ò *	‰OˆH�eÜ˜e¤TÔ*Ü—	‘	Ø+¨H¨:Ð5HÐIôñ "Ü ×2Ñ2Ø=¸h¸ZÐHóð ð ’	Ø %Ñ'Ü—	‘	ÐFÀxÀjÐQÔRà# U¨?Ñ%;ð"��X‘ð à˜UÑ"ô —	‘	Ø$ X Jð /Ið Jôð "$��X‘Øä!,¨U°6©]Ó!;ÑˆH�hÜ�I‰IØ(¨¨°KÀ¸|È1ÐMôð
 %Ø$ØŸ™ 7Ó+Ø!)ñ	ˆD�ŠNðK*	ðV ˆr   c                 óŽ  — |sJt        j                  |«      }|s	 | i |«      S 	 t        |«      5 }t        j                  |«      }ddd«       i }|j                  d«      rHt        j                  d«       |j                  d| j                  |j                  d«      d¬«      i«       |j                  d«      r7t        j                  d«       |j                  d|j                  d«      i«       |j                  d«      r7t        j                  d	«       |j                  d|j                  d«      i«       |r	 | ||«      S t        j                  d
«        | d| j                  |«      i|«      S # 1 sw Y   �Œ/xY w# t
        t        t        f$ r1}t        j                  |«        | t        |«      |«      cY d}~S d}~ww xY w)a8  
        Loads authentication data from a Docker configuration file in the given
        root directory or if config_path is passed use given path.
        Lookup priority:
            explicit config_path parameter > DOCKER_CONFIG environment
            variable > ~/.docker/config.json > ~/.dockercfg
        Nr6   zFound 'auths' sectionT)rM   Ú
credsStorezFound 'credsStore' sectionÚcredHelperszFound 'credHelpers' sectionzNCouldn't find auth-related section ; attempting to interpret as auth-only file)r   Úfind_config_fileÚopenÚjsonÚloadÚOSErrorÚKeyErrorÚ
ValueErrorr   r   Ú_load_legacy_configrJ   r7   rP   Úpop)rK   Úconfig_pathÚconfig_dictr   Úconfig_fileÚfÚeÚress           r   r   zAuthConfig.load_config�   s‰  € ñ Ü ×1Ñ1°+Ó>ˆKáÙ˜2˜}Ó-Ð-ðLÜ˜+Ó&ð /¨!Ü"&§)¡)¨A£,�K÷/ð ˆØ�?‰?˜7Ô#Ü�I‰IÐ-Ô.Ø�J‰JØ˜Ÿ™Ø—O‘O GÓ,¸Tð (ó ðô ð
 �?‰?˜<Ô(Ü�I‰IÐ2Ô3Ø�J‰J˜ k§o¡o°lÓ&CÐDÔEØ�?‰?˜=Ô)Ü�I‰IÐ3Ô4Ø�J‰J˜ {§¡°}Ó'EÐFÔGÙÙ�s˜MÓ*Ð*ä�	‰	ð ô	
ñ �G˜SŸ^™^¨KÓ8Ð9¸=ÓIÐI÷=/ñ /ûäœX¤zÐ2ò Lô —	‘	˜!”ÙÔ.¨{Ó;¸]ÓKÕKûðLús4   ¤E? ¯E2ÁE? Å2E<Å7E? Å?GÆ&F?Æ9GÆ?Gc                 ó&   — | j                  di «      S r5   ©rJ   ©r:   s    r   r6   zAuthConfig.auths¿   s   € à�x‰x˜ Ó$Ð$r   c                 ó&   — | j                  dd «      S )NrR   rd   re   s    r   Úcreds_storezAuthConfig.creds_storeÃ   s   € à�x‰x˜ dÓ+Ð+r   c                 ó&   — | j                  di «      S )NrS   rd   re   s    r   Úcred_helperszAuthConfig.cred_helpersÇ   s   € à�x‰x˜ rÓ*Ð*r   c                 óX   — | j                    xr | j                   xr | j                   S r.   )r6   rg   ri   re   s    r   r   zAuthConfig.is_emptyË   s.   € ð —
‘
ˆNÒM 4×#3Ñ#3Ð3ÒM¸D×<MÑ<MÐ8Mð	
r   c                 óš  — | j                   s| j                  rW| j                  |«      }|�Dt        j	                  d|› d�«       | j                  ||«      }|�|S t        j	                  d«       |rt        |«      nt        }t        j	                  dt        |«      › �«       || j                  v r0t        j	                  dt        |«      › �«       | j                  |   S | j                  j                  «       D ]8  \  }}t        |«      |k(  sŒt        j	                  dt        |«      › �«       |c S  t        j	                  d«       y)a+  
        Returns the authentication data from the given auth configuration for a
        specific registry. As with the Docker client, legacy entries in the
        config with full URLs are stripped down to hostnames before checking
        for a match. Returns None if no match was found.
        NzUsing credentials store "ú"z/No entry in credstore - fetching from auth dictúLooking for auth entry for zFound úNo entry found)rg   ri   r1   r   r   Ú_resolve_authconfig_credstorer   r   Úreprr6   rF   )r:   r!   Ú
store_nameÚcfgÚkeyrN   s         r   r   zAuthConfig.resolve_authconfigÑ   s&  € ð ×Ò˜t×0Ò0Ø×2Ñ2°8Ó<ˆJØÐ%Ü—	‘	Ø/°
¨|¸1Ð=ôð ×8Ñ8¸À:ÓN�Ø�?Ø�JÜ—	‘	ÐKÔLñ 4<Ô% hÔ/ÄˆÜ�	‰	Ð/´°X³Ð/?Ð@ÔAà�t—z‘zÑ!Ü�I‰I˜œt H›~Ð.Ð/Ô0Ø—:‘:˜hÑ'Ð'àŸ™×)Ñ)Ó+ò 	‰IˆC�Ü! #Ó&¨(Ó2Ü—	‘	˜F¤4¨£9 +Ð.Ô/Ø’ð	ô
 	�	‰	Ð"Ô#Ør   c                 óä  — |r	|t         k(  rt        }t        j                  dt	        |«      › �«       | j                  |«      }	 |j                  |«      }d|i}|d   t        k(  r
|d   |d<   |S |j                  |d   |d   dœ«       |S # t        j                  $ r t        j                  d«       Y y t        j                  $ r'}t        j                  dt	        |«      › �«      |‚d }~ww xY w)	Nrm   ÚServerAddressÚUsernameÚSecretr?   )rv   ÚPasswordrn   zCredentials store error: )r   Ú	INDEX_URLr   r   rp   Ú_get_store_instancerJ   ÚTOKEN_USERNAMEr7   r   ÚCredentialsNotFoundÚ
StoreErrorr   ÚDockerException)r:   r!   Úcredstore_nameÚstoreÚdatarb   ra   s          r   ro   z(AuthConfig._resolve_authconfig_credstoreô   s   € Ù˜8¤zÒ1ô !ˆHÜ�	‰	Ð/´°X³Ð/?Ð@ÔAØ×(Ñ(¨Ó8ˆð	Ø—9‘9˜XÓ&ˆDà ðˆCð �JÑ¤>Ò1Ø'+¨H¡~��OÑ$ð ˆJð	 —
‘
Ø $ ZÑ 0Ø $ X¡ñô ð ˆJøÜ×.Ñ.ò 	Ü�I‰IÐ&Ô'ÙÜ×%Ñ%ò 	Ü×(Ñ(Ø+¬D°«G¨9Ð5óàðûð	ús$   Á*B Á0B Â(C/Â6C/Ã"C*Ã*C/c                 ó˜   — || j                   vr.t        j                  || j                  ¬«      | j                   |<   | j                   |   S )N)Úenvironment)r9   r   ÚStorer8   )r:   Únames     r   rz   zAuthConfig._get_store_instance  sC   € Ø�t—|‘|Ñ#Ü!,×!2Ñ!2Ø $×"5Ñ"5ô"ˆD�L‰L˜Ñð �|‰|˜DÑ!Ð!r   c                 óv   — |r	|t         k(  rt        }| j                  j                  |«      xs | j                  S r.   )r   ry   ri   rJ   rg   )r:   r!   s     r   r1   zAuthConfig.get_credential_store  s3   € Ù˜8¤zÒ1Ü ˆHà× Ñ ×$Ñ$ XÓ.ÒB°$×2BÑ2BÐBr   c                 ó¾  — | j                   j                  «       }| j                  rn| j                  | j                  «      }|j	                  «       j                  «       D ]2  }| j                  || j                  «      ||<   ||   |t        |«      <   Œ4 | j                  j                  «       D ]+  \  }}| j                  ||«      ||<   ||   |t        |«      <   Œ- |S r.   )
r6   Úcopyrg   rz   ÚlistÚkeysro   r   ri   rF   )r:   Ú	auth_datar€   ÚkÚregrq   s         r   Úget_all_credentialszAuthConfig.get_all_credentials  sã   € Ø—J‘J—O‘OÓ%ˆ	Ø×Òà×,Ñ,¨T×-=Ñ-=Ó>ˆEØ—Z‘Z“\×&Ñ&Ó(ò A�Ø#×AÑAØ�t×'Ñ'ó �	˜!‘ð 5>¸a±L�	Ô-¨aÓ0Ò1ð	Að  $×0Ñ0×6Ñ6Ó8ò 	A‰OˆC�Ø!×?Ñ?Ø�ZóˆI�c‰Nð 3<¸C±.ˆIÔ)¨#Ó.Ò/ð		Að Ðr   c                 ó   — || d   |<   y r5   © )r:   r�   r�   s      r   Úadd_authzAuthConfig.add_auth1  s   € Ø!ˆˆW‰�cÒr   r.   ©F)Ú__name__Ú
__module__Ú__qualname__r<   ÚclassmethodrP   r   Úpropertyr6   rg   ri   r   r   ro   rz   r1   rŽ   r‘   r�   r   r   r0   r0   K   s£   „ óð ò9ó ð9ðv ò-Jó ð-Jð^ ñ%ó ð%ð ñ,ó ð,ð ñ+ó ð+ð ñ
ó ð
ó
!òFò8"òCòó("r   r0   c                 ó\   — t        | t        «      st        | |«      } | j                  |«      S r.   )r/   r0   r   )r2   r!   r   s      r   r   r   5  s)   € Ü�j¤*Ô-Ü 
¨MÓ:ˆ
Ø×(Ñ(¨Ó2Ð2r   c                 ól   — | j                  dd«      j                  dd«      j                  dd«      d   S )Nzhttp://Ú zhttps://r%   r   r   )Úreplacer)   )Úurls    r   r   r   ;  s2   € Ø�;‰;�y "Ó%×-Ñ-¨j¸"Ó=×CÑCÀCÈÓKÈAÑNÐNr   c                 óÜ   — t        | t        «      r| j                  d«      } t        j                  | «      }|j                  dd«      \  }}|j                  d«      |j                  d«      fS )NÚasciió   :r   Úutf8)r/   ÚstrÚencodeÚbase64Ú	b64decoder)   Údecode)r@   ÚsÚloginÚpwds       r   rI   rI   ?  s[   € Ü�$œÔØ�{‰{˜7Ó#ˆÜ×Ñ˜Ó€AØ—‘˜˜qÓ!�J€Eˆ3Ø�<‰<˜Ó §¡¨FÓ!3Ð3Ð3r   c                 ót   — t        j                  | «      j                  d«      }t        j                  |«      S )Nrž   )rV   Údumpsr¢   r£   Úurlsafe_b64encode)r@   Ú	auth_jsons     r   r   r   G  s,   € Ü—
‘
˜4Ó ×'Ñ'¨Ó0€IÜ×#Ñ# IÓ.Ð.r   c                 ó.   — t         j                  | |«      S )a   
    Parses authentication entries

    Args:
      entries:        Dict of authentication entries.
      raise_on_error: If set to true, an invalid format will raise
                      InvalidConfigFile

    Returns:
      Authentication registry.
    )r0   rP   )rL   rM   s     r   rP   rP   L  s   € ô × Ñ  ¨.Ó9Ð9r   c                 ó0   — t         j                  | ||«      S r.   )r0   r   )r]   r^   r   s      r   r   r   \  s   € Ü×!Ñ! +¨{¸MÓJÐJr   c                 ó  — t         j                  d«       	 g }t        | «      5 }|j                  «       D ]3  }|j	                  |j                  «       j                  d«      d   «       Œ5 t        |«      dk  rt        j                  d«      ‚	 d d d «       t        |d   «      \  }}dt        |||d   t        dœiiS # 1 sw Y   Œ0xY w# t        $ r}t         j                  |«       Y d }~nd }~ww xY wt         j                  d	«       i S )
Nz+Attempting to parse legacy auth file formatz = r   é   z$Invalid or empty configuration file!r   r6   rB   z4All parsing attempts failed - returning empty config)r   r   rU   Ú	readlinesÚappendÚstripr)   r*   r   rH   rI   r   ry   Ú	Exception)r_   r�   r`   ÚlinerC   rD   ra   s          r   r[   r[   `  s  € Ü‡I�IÐ;Ô<ðØˆÜ�+Óð 	 !ØŸ™›ò :�Ø—‘˜DŸJ™J›L×.Ñ.¨uÓ5°aÑ8Õ9ð:ä�4‹y˜1Š}ä×.Ñ.Ø:óð ð ÷	ô )¨¨a©Ó1Ñˆ�(ØÜØ$Ø$Ø˜a™Ü!*ñ	ð
ð ð 	÷	ð 	ûô$ ò Ü�	‰	�!�‰ûðúô ‡I�IÐDÔEØ€Is/   —C
 ¤A*B>Â.C
 Â>CÃC
 Ã
	C2ÃC-Ã-C2)NNr’   )NNN)r£   rV   Úloggingrš   r   r   Úutilsr   r   ry   r{   Ú	getLoggerr“   r   r   r   r#   r   r1   rG   r0   r   r   rI   r   rP   r   r[   r�   r   r   ú<module>r¹      s‹   ðÛ Û Û ç !Ý à€
Ø˜Z˜L¨Ð-€	Ø€à€g×Ñ˜Ó!€ò7òòò,ò5ôg"�ô g"óT3òOò4ò/ó
:ó Kór   