+
    ڀi2/                      a  0 t $ ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RIH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIH t  ^ RI!H"t" ^RI#H$t$ ^RI%H&t&H't' ^RI(H(t( ^RI)H)t) ^RI*H*t* ]	'       d   ^ RI+H,t, ^ RIH-t-H.t.H/t/ ^ RI0H1t1 ^ RI2H3t3 Rt4R]5R&   RBt6R]5R&   Rt7R]5R&   ]7R3t8R]5R &   R!t9R]5R"&   R#R$/t:R]5R%&   R&t;R]5R'&    ! R( R)]4      t< ! R* R+]4      t= ! R, R-]4      t> ! R. R/]4      t? ! R0 R1]4      t@ ! R2 R3]4      tA ! R4 R5]4      tBR6 R7 ltCR8 R9 ltDR: R; ltE]P                  3R< R= lltGR> R? ltH ! R@ RA]4      tIR# )C    )annotationsN)datetimetimezone)Path)TYPE_CHECKING	AnnotatedLiteral)context)yaml_safe_dump)CondaValueError)Channel)EnvironmentEnvironmentConfig)	MatchSpec)EnvironmentSpecBase)	BaseModelFieldValidationError)	YAMLError)ParserError)__version__)CondaLockfilesParserErrorCondaLockfilesValidationError)	load_yaml)records_from_conda_urls)validate_urls)Iterable)AnyClassVarFinal)PathType)PackageRecordzconda-lock-v1r    FORMATALIASESzconda-lock.ymlCONDA_LOCK_FILEzconda-lock.yamlDEFAULT_FILENAMESz%Y-%m-%dT%H:%M:%SZ	TIMESTAMPpippypiPACKAGE_TYPE_MAPPINGa  This lockfile does not include the pip-installed packages in your environment.
To fully reproduce this environment:
  1. Identify the pip packages in your environment: conda list (look for 'pypi' channel)
  2. Install the pip packages manually after applying the lockfilePIP_EXPORT_WARNINGc                  8    ] tR t^Ct$ RtRtR]R&   RtR]R&   RtR# )CondaLockV1HashzHash information for a package.Nz
str | Nonemd5sha256 )	__name__
__module____qualname____firstlineno____doc__r.   __annotations__r/   __static_attributes__r0       =lib/python3.14/site-packages/conda_lockfiles/conda_lock/v1.pyr-   r-   C   s    )CFJr8   r-   c                  ~    ] tR t^Jt$ RtR]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   RtR]R&   RtR]R&   RtR# )CondaLockV1Packagez.A package entry in the conda-lock v1 lockfile.strnameversionzLiteral['conda', 'pypi']managerplatform6Annotated[dict[str, str], Field(default_factory=dict)]dependenciesurlzBAnnotated[CondaLockV1Hash, Field(default_factory=CondaLockV1Hash)]hashmaincategoryFbooloptionalr0   N)	r1   r2   r3   r4   r5   r6   rF   rH   r7   r0   r8   r9   r;   r;   J   s?    8
IL%%MHH	H
LLHcHdr8   r;   c                  0    ] tR t^Xt$ RtR]R&   R]R&   RtR# )CondaLockV1Channelz(A channel specification in the metadata.r<   rC   1Annotated[list[str], Field(default_factory=list)]used_env_varsr0   Nr1   r2   r3   r4   r5   r6   r7   r0   r8   r9   rJ   rJ   X   s    2	HDDr8   rJ   c                  &    ] tR t^_t$ RtR]R&   RtR# )CondaLockV1TimeMetadatazTime metadata for the lockfile.r<   
created_atr0   NrM   r0   r8   r9   rO   rO   _   s
    )Or8   rO   c                  &    ] tR t^et$ RtR]R&   RtR# )CondaLockV1CustomMetadataz!Custom metadata for the lockfile.r<   
created_byr0   NrM   r0   r8   r9   rR   rR   e   s
    +Or8   rR   c                  `    ] tR t^kt$ RtR]R&   R]R&   R]R&   R]R	&   R
tR]R&   R
tR]R&   RtR
# )CondaLockV1Metadataz/Metadata section of the conda-lock v1 lockfile.rA   content_hashzlist[CondaLockV1Channel]channelsz)Annotated[list[str], Field(min_length=1)]	platformsrK   sourcesNzCondaLockV1TimeMetadata | Nonetime_metadataz CondaLockV1CustomMetadata | Nonecustom_metadatar0   )	r1   r2   r3   r4   r5   r6   rZ   r[   r7   r0   r8   r9   rU   rU   k   s3    9HH&&88>>48M188<O5<r8   rU   c                  >    ] tR t^vt$ Rt^tR]R&   R]R&   R]R&   RtR	# )
CondaLockV1z+The root structure of a conda-lock v1 file.z!Annotated[int, Field(le=1, ge=1)]r>   rU   metadatazlist[CondaLockV1Package]packager0   N)r1   r2   r3   r4   r5   r>   r6   r7   r0   r8   r9   r]   r]   v   s    512G.2!!%%r8   r]   c               $    V ^8  d   QhRRRRRR/# )   recordr"   r@   r<   returnr;   r0   )formats   "r9   __annotate__re   ~   s&     " """ "r8   c                P   / pV P                    FB  p\        V4      pVP                  e   VP                  P                  MRpWRVP                  &   KD  	  \        V P                  V P                  R7      p\        V P                  V P                  RVVV P                  VRRR7	      # )z
Convert a conda PackageRecord to a CondaLockV1Package Pydantic model.

:param record: Conda package record
:param platform: Platform string for this package
:return: CondaLockV1Package with metadata
 )r.   r/   condarE   F)	r=   r>   r?   r@   rB   rC   rD   rF   rH   )
dependsr   r>   spec_strr=   r-   r.   r/   r;   rC   )rb   r@   rB   depmsr>   	hash_dicts   &&     r9   _record_to_packagern   ~   s     L~~s^)+)?"**%%R 'RWW   JJ}}I
 [[!JJ
 
r8   c                    V ^8  d   QhRRRR/# )ra   pkgr;   rc   dict[str, Any]r0   )rd   s   "r9   re   re      s      &8 ^ r8   c                J   V P                   R8w  d   \        RV P                    24      hRV P                  P                  4        UUu. uF  w  rV RV 2NK  	  uppRV P                  RV P
                  RV P                  RV P                  P                  R	R
7      /# u uppi )z
Convert CondaLockV1Package to record overrides dict.

:param pkg: Package from lockfile
:return: Dict of overrides for records_from_conda_urls
rh   zUnsupported manager: ri    subdirr=   r>   rD   T)exclude_none)	r?   
ValueErrorrB   itemsr@   r=   r>   rD   
model_dump)rp   r=   r>   s   &  r9   _package_to_record_overridesry      s     {{g0>?? 	S=M=M=S=S=UV=UMDtfAgY'=UV#,,3;;###6	 	Vs   Bc                    V ^8  d   QhRRRR/# )ra   envsIterable[Environment]rc   r]   r0   )rd   s   "r9   re   re      s     2G 2G(= 2G+ 2Gr8   c                   \        V 4      pV FN  pVP                  P                  R4      '       d   \        P                  ! \
        4       \        V\        4       KP  	  \        P                  ! \        P                  4      P                  \        4      p\        R V 4       R R7       UUu. uF  w  rE\        WE4      NK  	  pppV^ ,          pVP                   P"                   Uu. uF  p\%        V. R7      NK  	  pp\'        / V\        R V 4       4      R.\)        VR7      \+        R	\,         2R
7      R7      p	\/        ^WR7      # u uppi u upi )z
Create a CondaLockV1 lockfile from conda Environment objects.

:param envs: Iterable of conda Environment objects
    (typically multiple platforms)
:return: CondaLockV1 Pydantic model instance
r(   c              3  `   "   T F$  qP                    F  q"VP                  3x  K  	  K&  	  R # 5iN)explicit_packagesr@   ).0envrp   s   &  r9   	<genexpr>0conda_lock_v1_from_conda_envs.<locals>.<genexpr>   s%     VHS@U@U3<< @U H   ,.c                :    V ^,          V ^ ,          P                   3# )   )rC   )pkg_platforms   &r9   <lambda>/conda_lock_v1_from_conda_envs.<locals>.<lambda>   s    l1o|A7J7J%Kr8   )key)rC   rL   c              3  8   "   T F  qP                   x  K  	  R # 5ir   r@   )r   es   & r9   r   r      s     6XXs   rg   )rP   zconda-lockfiles )rS   )rV   rW   rX   rY   rZ   r[   )r>   r^   r_   )listexternal_packagesgetwarningswarnr+   r   r#   r   nowr   utcstrftimer'   sortedrn   configrW   rJ   rU   rO   rR   r   r]   )
r{   env_listr   	timestamprp   r@   packageschannelrW   r^   s
   &         r9   conda_lock_v1_from_conda_envsr      s9    DzH   $$U++MM,-c6"  X\\*33I>I
 $VHVK
*
MC 	3)
  * 1+C zz***G 	wb9*  
 #6X66-C1)+7
	H q8FF;*s   /E)Ec               $    V ^8  d   QhRRRRRR/# )ra   lockfiler]   r@   r<   rc   r   r0   )rd   s   "r9   re   re      s&     : ::: :r8   c           
        WP                   P                  9  d5   \        RV RRP                  V P                   P                  4       24      h\	        \
        ;QJ d(    . R V P                   P                   4       F  NK  	  5M!! R V P                   P                   4       4      R7      p/ p/ pV P                   F  pVP                  V8w  d   K  VP                  R8w  d   K)  VP                  '       d   K=  VP                  '       g   KQ  VP                  R8X  d   \        V4      W5P                  &   K{   \        VP                  ,          pTP!                  T. 4      P#                  TP                  4       K  	  \%        \&        P(                  VV\+        V\&        P,                  R	7      VR
7      #   \         d    \        RTP                   24      hi ; i)z
Render lockfile as a conda environment.

:param lockfile: CondaLockV1 lockfile model
:param platform: Platform to extract packages for
:return: Conda Environment object
	Platform z- not found in lockfile. Available platforms: , c              3  `   "   T F$  p\        VP                  4      P                  x  K&  	  R # 5ir   )r   rC   canonical_name)r   r   s   & r9   r   -conda_lock_v1_to_conda_env.<locals>.<genexpr>  s&      
5 GKK //5r   )rW   rE   rh   zUnknown package type: )dry_run)prefixr@   r   r   r   )r^   rX   rv   joinr   tuplerW   r_   r@   rF   rH   rC   r?   ry   r*   KeyError
setdefaultappendr   r
   target_prefixr   r   )r   r@   r   r   r   rp   r   s   &&     r9   conda_lock_v1_to_conda_envr      s    ((222z "$$(IIh.?.?.I.I$J#KM
 	

  
#,,55
 
#,,55
 
F 46.0<<8#<<6!<<<www ;;'!)Ec)Jgg&I*3;;7 ((b188A)  , $$1w
 , 	  I #9#++!GHHIs   9F66$Gc                    V ^8  d   QhRRRR/# )ra   r{   r|   rc   r<   r0   )rd   s   "r9   re   re   +  s     	 	4 	 	r8   c                    \        V 4      p \        VP                  RRR7      4      #   \         d   p\	        RT 24      ThRp?ii ; i)z+Export Environment to conda-lock v1 format.Tpython)ru   modez6Failed to export environment to conda-lock v1 format: N)r   r   rx   r   r   )r{   r   r   s   &  r9   multiplatform_exportr   +  sV    ,T2Hh11t(1STT DQCH
	s   ) AAAc                      ] tR tRt$ RtR]R&   R R ltR R ltR	 R
 lt]	R R l4       t
]	R R l4       t]	R R l4       tR R ltRtR# )CondaLockV1Loaderi7  TzClassVar[bool]detection_supportedc                   V ^8  d   QhRR/# )ra   pathr!   r0   )rd   s   "r9   re   CondaLockV1Loader.__annotate__:  s     / /X /r8   c                	P    \        V4      P                  4       V n        R V n        R # r   )r   resolver   _model)selfr   s   &&r9   __init__CondaLockV1Loader.__init__:  s    J&&(	*.r8   c                   V ^8  d   QhRR/# ra   rc   rG   r0   )rd   s   "r9   re   r   >  s     	J 	JD 	Jr8   c                     V P                  4       #   \        \        3 d"   p\        RT P                   RT 24      ThRp?ii ; i)zv
Attempts to validate loaded data as a conda lock v1 specification.

:raises ValueError: Raised when validation fails
zCannot load file z: N)_validate_modelFileNotFoundErrorr   rv   r   r   r   s   & r9   
can_handleCondaLockV1Loader.can_handle>  sM    	J''))!9- 	J02aSABI	Js    A?Ac                   V ^8  d   QhRR/# r   r0   )rd   s   "r9   re   r   I  s     E E Er8   c                     \         P                  V P                  4      V n        R#   \         d   p\        YP                  4      ThRp?ii ; i)zn
Attempt to load model.

:returns: indicates successful load
:raises ValueError: raised when validation fails
TN)r]   model_validate_datar   r   r   r   r   s   & r9   r   !CondaLockV1Loader._validate_modelI  sD    	E%44TZZ@DK 	E/99=1D	Es   $( AA		Ac                   V ^8  d   QhRR/# )ra   rc   rq   r0   )rd   s   "r9   re   r   W  s     : :~ :r8   c                	~     \        V P                  4      #   \         d   p\        YP                  4      hR p?ii ; ir   )r   r   r   r   r   s   & r9   r   CondaLockV1Loader._dataV  s5    	:TYY'' 	:+Ayy99	:s    <7<c                   V ^8  d   QhRR/# )ra   rc   r   r0   )rd   s   "r9   re   r   ^  s     S S[ Sr8   c                	     V P                   f   V P                  4        \        V P                   4      #   \         d   p\	        RT 24      ThR p?ii ; i)Nz 

Unable to create environment: )r   r   r   rv   r   r   s   & r9   r   CondaLockV1Loader.env]  sU    	S{{"$$&-dkk:: 	S!$Fqc"JKQRR	Ss   25 A AAc                   V ^8  d   QhRR/# )ra   rc   ztuple[str, ...]r0   )rd   s   "r9   re   r   g  s     5 5_ 5r8   c                    V P                   f   V P                  4        \        V P                   P                  P                  4      # )z$Platforms declared in this lockfile.)r   r   r   r^   rX   )r   s   &r9   available_platforms%CondaLockV1Loader.available_platformsf  s5     ;;  "T[[))3344r8   c                    V ^8  d   QhRRRR/# )ra   r@   r<   rc   r   r0   )rd   s   "r9   re   r   m  s     J J J Jr8   c                    WP                   9  d,   \        RV: RRP                  V P                   4       24      h\        V P                  VR7      # )z?Return the Environment for a specific platform in the lockfile.r   z' not in lockfile. Available platforms: r   r   )r   rv   r   r   r   )r   r@   s   &&r9   env_forCondaLockV1Loader.env_form  sU    333H< (((,		$2J2J(K'LN  *$++IIr8   )r   r   N)r1   r2   r3   r4   r   r6   r   r   r   propertyr   r   r   r   r7   r0   r8   r9   r   r   7  sh    *../	JE : : S S 5 5J Jr8   r   )z
conda-lock)J__conditional_annotations__
__future__r   r   r   r   pathlibr   typingr   r   r	   conda.base.contextr
   conda.common.serializer   conda.exceptionsr   conda.models.channelr   conda.models.environmentr   r   conda.models.match_specr   conda.plugins.typesr   pydanticr   r   r   ruamel.yamlr   ruamel.yaml.parserr   rg   r   
exceptionsr   r   r   r   r   collections.abcr   r   r   r    conda.common.pathr!   conda.models.recordsr"   r#   r6   r$   r%   r&   r'   r*   r+   r-   r;   rJ   rO   rR   rU   r]   rn   ry   r   rt   r   r   r   )r   s   @r9   <module>r      sS   " "  '  4 4 & 1 , ( C - 3 6 6 ! *  Q ! = )(++*2   
 !   * ) ,->? 5 ? (	5 ' 
6 e I E i  E Ei 	 =) =&) &"J,2Gn NN:z	=J+ =Jr8   