§
    •¦òcï  ã                   óf   — d Z ddlmZmZ ddlZddlmZ ddlmZ ddl	m
Z
 dZ G d„ d	e¦  «        ZdS )
zFile download requirements.é    )Úabsolute_importÚprint_functionN)ÚEnvVarRequirement)Úurlparse)Ú	is_string)Úmd5Úsha1Úsha224Úsha256Úsha384Úsha512c                   ó|   ‡ — e Zd ZdZed„ ¦   «         Z	 	 	 	 d
ˆ fd„	Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
dd	„Zˆ xZS )ÚDownloadRequirementz<A requirement for ``env_var`` to point to a downloaded file.c           	      óÔ  — d}d}d}d}d}d}	t          |¦  «        r|}nšt          |t          ¦  «        r„|                     dd¦  «        }|€*|                     d                     |¦  «        ¦  «         dS |                     dd¦  «        }	|	9t          |	¦  «        s*|                     d                     |¦  «        ¦  «         dS t          D ]{}
|
|vrŒ|-|                     d                     |||
¦  «        ¦  «          dS ||
         }t          |¦  «        r|
}ŒP|                     d                     ||¦  «        ¦  «          dS |                     dd¦  «        }|                     d	d¦  «        }|@t          |t          ¦  «        s+|                     d
                     ||¦  «        ¦  «         dS |t          |¦  «        s*|                     d                     |¦  «        ¦  «         dS |dk    r*|                     d                     |¦  «        ¦  «         dS t          j	         
                    t          j        |¦  «        j	        ¦  «        }|                     ¦   «                              d¦  «        }|€|dk    r|}|r|€d}|r
|dd…         }n-|r+|€)|                     ¦   «                              d¦  «        sd}|€|}|€d}t          |||||||	¬¦  «        S )z*Parse an item from the downloads: section.NÚurlz/Download item {} doesn't contain a 'url' field.Údescriptionz8'description' field for download item {} is not a stringz.Multiple checksums for download {}: {} and {}.z0Checksum value for {} should be a string not {}.ÚfilenameÚunzipzBValue of 'unzip' for download item {} should be a boolean, not {}.z\Download name {} should be followed by a URL string or a dictionary describing the download.Ú z*Download item {} has an empty 'url' field.z.zipTéüÿÿÿF)Úenv_varr   r   Úhash_algorithmÚ
hash_valuer   r   )r   Ú
isinstanceÚdictÚgetÚappendÚformatÚ_hash_algorithmsÚboolÚosÚpathÚbasenamer   ÚurlsplitÚlowerÚendswith)ÚclsÚvarnameÚitemÚproblemsr   r   r   r   r   r   ÚmethodÚurl_pathÚurl_path_is_zips                ú\lib/python3.11/site-packages/anaconda_project/requirements_registry/requirements/download.pyÚ_parsezDownloadRequirement._parse   sq  € ð ˆØˆØˆØˆ
ØˆØˆÝT‰?Œ?ð "	ØˆC‰CÝ˜dÑ#Ô#ñ  	Ø—(’(˜5 $Ñ'Ô'ˆCØð Ø—’Ð Q× XÒ XÐY`Ñ aÔ aÑbÔbÐbØtàŸ(š( =°$Ñ7Ô7ˆKØð ­y¸Ñ/EÔ/Eð Ø—’Ð Z× aÒ aÐbiÑ jÔ jÑkÔkÐkØtå*ð $ð $Ø Ð%ð Øà!ð 
$Ø—O’OÐ$T×$[Ò$[Ø °ñ%9ô %9ñ :ô :ð :à˜4˜4à!% f¤JÝ  Ñ,Ô,ð $Ø)/˜˜à ŸšÐ(Z×(aÒ(aÐbiÐkuÑ(vÔ(vÑwÔwÐwØ#˜t˜tà—x’x 
¨DÑ1Ô1ˆHØ—H’H˜W dÑ+Ô+ˆEØð ­°E½4Ñ)@Ô)@ð Ø—’Ð d× kÒ kØ˜Uñ!$ô !$ñ %ô %ð %àtàð 	i¨™nœnð 	ØOŠOð 8ß9?ºÀ¹¼ñJô Jð Jà4à"Š9ð 	ØOŠOÐH×OÒOÐPWÑXÔXÑYÔYÐYØ4õ
 ”7×#Ò#¥HÔ$5°cÑ$:Ô$:Ô$?Ñ@Ô@ˆØ"Ÿ.š.Ñ*Ô*×3Ò3°FÑ;Ô;ˆàð 	Ø˜2Š~ð 	1Ø#Ø"ð 1Øð %à $˜Øð 1ð $,¨C¨R¨C¤=˜øØð 	 ð 	°x·~²~Ñ7GÔ7G×7PÒ7PÐQWÑ7XÔ7Xð 	ð ˆEàð 	ØˆHàð 	ØˆEå˜GØØ%Ø#1Ø)ØØ +ð-ñ -ô -ð 	-ó    NFc	                 óJ  •— d}	|t          |¬¦  «        }	t          t          | ¦  «                             |||	¬¦  «         |€J ‚|€J ‚t	          |¦  «        dk    sJ ‚t	          |¦  «        dk    sJ ‚|| _        || _        ||t          v sJ ‚|| _        || _	        || _
        dS )z.Extend init to accept url and hash parameters.N)r   )Úregistryr   Úoptionsr   )r   Úsuperr   Ú__init__Úlenr   r   r   r   r   r   )Úselfr2   r   r   r   r   r   r   r   r3   Ú	__class__s             €r.   r5   zDownloadRequirement.__init__r   sÍ   ø€ ð ˆØð 	4Ý {Ð3Ñ3Ô3ˆGÝÕ! 4Ñ(Ô(×1Ò1¸8ÈWÐ^eÐ1ÑfÔfÐfØÐÐÐØÐ#Ð#Ð#Ý3‰xŒx˜!Š|ÐÐÐÝ8‰}Œ}˜qÒ Ð Ð Ð ØˆŒØ ˆŒØÐK¨Õ;KÐ)KÐKÐKÐKØ,ˆÔØ$ˆŒØˆŒ
ˆ
ˆ
r0   c                 ó\   — |                       d                     | j        ¦  «        ¦  «        S )z.Override superclass to supply our description.z,A downloaded file which is referenced by {}.)Ú_descriptionr   r   ©r7   s    r.   r   zDownloadRequirement.description‹   s+   € ð × Ò Ð!O×!VÒ!VÐW[ÔWcÑ!dÔ!dÑeÔeÐer0   c                 óJ   — t          d| j        z   d| j        z   dz   g¦  «        S )z-Override superclass with our ignore patterns.ú/z.part)Úsetr   r;   s    r.   Úignore_patternsz#DownloadRequirement.ignore_patterns   s*   € õ C˜$œ-Ñ'¨¨t¬}Ñ)<¸wÑ)FÐGÑHÔHÐHr0   c                 óÂ   — | j         |vr|                      ¦   «         S || j                  }t          j                             |¦  «        sd                     |¦  «        S d S )NzFile not found: {})r   Ú_unset_messager!   r"   Úexistsr   )r7   Úenvironr   s      r.   Ú_why_not_providedz%DownloadRequirement._why_not_provided•   sc   € ØŒ<˜wÐ&ð 	)Ø×&Ò&Ñ(Ô(Ð(Ø˜4œ<Ô(ˆÝŒw~Š~˜hÑ'Ô'ð 	9Ø'×.Ò.¨xÑ8Ô8Ð8ð	9ð 	9r0   c           
      óÈ   — |                       |¦  «        }|du }|r)d                     |                      |¦  «        ¦  «        }n|}|                      ||||||d|¬¦  «        S )z&Override superclass to get our status.NzFile downloaded to {}ÚDownloadProvider)Ú	overridesÚhas_been_providedÚstatus_descriptionÚprovider_class_nameÚlatest_provide_result)rD   r   Ú_get_value_of_env_varÚ_create_status)	r7   rC   Úlocal_state_fileÚdefault_env_spec_namerG   rK   Úwhy_not_providedrH   rI   s	            r.   Úcheck_statusz DownloadRequirement.check_statusœ   sŒ   € à×1Ò1°'Ñ:Ô:Ðà,°Ð4ÐØð 	2Ø"9×"@Ò"@À×A[ÒA[Ð\cÑAdÔAdÑ"eÔ"eÐÐà!1ÐØ×"Ò" 7Ø#3Ø#8Ø-6Ø5FØ6HØ7IØ9Nð #ñ Pô Pð 	Pr0   )NNFN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr/   r5   Úpropertyr   r?   rD   rQ   Ú__classcell__)r8   s   @r.   r   r      sÕ   ø€ € € € € ØFÐFØðW-ð W-ñ „[ðW-ð| !%Ø ØØ!ðð ð ð ð ð ð2 ðfð fñ „Xðfð ðIð Iñ „XðIð9ð 9ð 9ðPð Pð Pð Pð Pð Pð Pð Pr0   r   )rU   Ú
__future__r   r   r!   Ú2anaconda_project.requirements_registry.requirementr   Ú3anaconda_project.requirements_registry.network_utilr   Ú$anaconda_project.internal.py2_compatr   r   r   © r0   r.   ú<module>r^      s³   ðð "Ð !à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à 	€	€	€	à PÐ PÐ PÐ PÐ PÐ PØ HÐ HÐ HÐ HÐ HÐ Hà :Ð :Ð :Ð :Ð :Ð :àJÐ ðVPð VPð VPð VPð VPÐ+ñ VPô VPð VPð VPð VPr0   