
    \Zi                        % S r SSKJr  SSKJrJr  SSKJrJr  SSK	J
r
  SSKJr  SS	KJr  \(       a  SS
KJrJr  SSKJr  SrS\S'    SrS\S'    \S   r SS jrSS jrSS jr\" SS9S 5       rg)zEBuilt-in conda standard environment exporter plugins (YAML and JSON).    )annotations)TYPE_CHECKINGLiteral   )jsonyaml)CondaValueError   )hookimpl)CondaEnvironmentExporter)AnyFinal)Environmentenvironment-jsonr   ENVIRONMENT_JSON_FORMATenvironment-yamlENVIRONMENT_YAML_FORMAT)r   r   c                   SU R                   0nU R                  (       a=  U R                  R                  (       a"  [        U R                  R                  5      US'   / nU R                  (       a  U R                   HJ  n[        U[        5      (       a  UR                  U5        M+  UR                  UR                  5       5        ML     U R                  (       a  UR                  U R                  5        O6U R                  (       a%  U R                   Vs/ s H  oDR                  PM     nnX!S'   U R                  (       a  U R                  US'   U R                  (       a  U R                  US'   U$ s  snf )a  
Convert Environment to standard dictionary format used by YAML and JSON exporters.

This represents the common dictionary structure that both YAML and JSON
environment formats use.

:param env: Environment model to convert
:return: Dictionary with standard environment fields
namechannelsdependencies	variablesprefix)r   configr   listrequested_packages
isinstancedictappendconda_env_formexternal_packagesexplicit_packagesspecr   r   )envenv_dictr   itemexplicit_packages        Slib/python3.13/site-packages/conda/plugins/environment_exporters/environment_yml.pyto_dictr)      s)    !H zzcjj))#CJJ$7$78 L
**D$%%##D) ##D$7$7$9: +    5 56			 ;>:O:O
:O&6!!:O 	 
  ,^ }} # zz ZZO
s   E3c                    [        U 5      n [        R                  " U5      $ ! [        R                   a  n[	        SU 35      eSnAff = f)z"Export Environment to YAML format.z&Failed to export environment to YAML: N)r)   r   dumps	YAMLErrorr	   r$   r%   es      r(   export_yamlr/   P   sI    s|HLzz(##>> L FqcJKKLs   # A
AA
c                    [        U 5      n [        R                  " USSS9$ ! [        [        [
        4 a  n[        SU 35      eSnAff = f)z"Export Environment to JSON format.r
   F)indentensure_asciiz&Failed to export environment to JSON: N)r)   r   r+   	TypeError
ValueErrorRecursionErrorr	   r-   s      r(   export_jsonr6   Y   sP    s|HLzz(15AAz>2 L FqcJKKLs   # AAAT)tryfirstc               #  h   #    [        [        SS[        SS9v   [        [        SS[        SS9v   g7f)	z:Register the built-in YAML and JSON environment exporters.)r   ymlzenv.yml)zenvironment.yamlzenvironment.ymlz*YAML format with channels and dependencies)r   aliasesdefault_filenamesexportdescription)r   )zenvironment.jsonz*JSON format with channels and dependenciesN)r   r   r/   r   r6        r(   conda_environment_exportersr@   b   sA      #$*A@  #$/@ s   02N)r$   r   returnzdict[str, Any])r$   r   rA   str)__doc__
__future__r   typingr   r   common.serializer   r   
exceptionsr	   hookspecr   typesr   r   r   models.environmentr   r   __annotations__r   EnvironmentFormatTyper)   r/   r6   r@   r>   r?   r(   <module>rM      s|    L " ) * )  ,!1!3  3 .!3  3 . FG  '0fLL 
4 r?   