
    +j                         S SK r S SKJr  S SKJr  S SKJrJr  S SKJ	r	J
r
JrJr  S\S\4S jrS\S\4S	 jr S\\   4S
 jrS\S\4S jrg)    N)Path)Optional)PydanticBaseSettingsSourceTomlConfigSettingsSource)ComfyConfigProjectConfigPyProjectConfigPyProjectSettingsclassifiersreturnc                   ^ U  Vs/ s H  oR                  S5      (       d  M  UPM     nnU(       d  / $ U Vs/ s H  o[        S5      S  PM     nn1 SknU H!  m[        U4S jU 5       5      (       a  M  / s  $    U$ s  snf s  snf )NzOperating System :: >   MacOSPOSIX	MicrosoftOS Independentc              3   F   >#    U  H  nTR                  U5      v   M     g 7fN)
startswith).0prefixos_values     :/home/wildlama/comfy/ComfyUI/comfy_config/config_parser.py	<genexpr>6validate_and_extract_os_classifiers.<locals>.<genexpr>   s!     O=N68&&v..=Ns   !)r   lenany)r   cos_classifiers	os_valuesvalid_os_prefixesr   s        @r   #validate_and_extract_os_classifiersr!      s    !,UA=S0TaNU	;IJ>a3-.01>IJIO=NOOOI   V Ks   A>A>Bc                     U  Vs/ s H  oR                  S5      (       d  M  UPM     nnU(       d  / $ U Vs/ s H  o[        S5      S  PM     nn1 SknU H  nXT;  d  M
  / s  $    U$ s  snf s  snf )NzEnvironment ::zEnvironment :: >   GPU :: AMD ROCmGPU :: Intel ArcGPU :: Apple MetalGPU :: NVIDIA CUDANPU :: Huawei Ascend)r   r   )r   r   accelerator_classifiersaccelerator_valuesvalid_acceleratorsaccelerator_values         r   ,validate_and_extract_accelerator_classifiersr,      s    *5X+QFV9Wq+X"	?VW?V!C 1245?VW 06I 0 % Y Xs   A(A(A-c                    [         R                  R                  U 5      (       aR  [        U 5      nUR                  R                  5       S:w  a  g UR                  n[        US9n[        5       n[        X4S9$ [         R                  R                  U 5      n[        U 5      S-  nUR                  5       (       d  [        US9n[        5       n[        X4S9$ [        U5      nUR                  nUR                  n	U	(       a  U	R                  S0 5      O0 n
UR                  S/ 5      nSnU HC  n[!        U["        5      (       d  M  UR%                  S5      (       d  M2  UR'                  S5      n  O   U
R                  S	S5      nUR                  S
/ 5      n[)        U5      n[+        U5      nUUS'   UUS'   XS'   XS'   [        XS9$ )Nz.py)name)project
tool_comfyzpyproject.tomlcomfydependencies zcomfyui-frontend-packagezrequires-comfyuir   supported_ossupported_accelerators"supported_comfyui_frontend_versionsupported_comfyui_version)ospathisfiler   suffixlowerstemr   r   r	   basenameexistsload_pyproject_settingsr/   toolget
isinstancestrr   removeprefixr!   r,   )r9   	file_pathproject_namer/   r1   folder_name	toml_pathraw_settingsproject_data	tool_data
comfy_datar2   r6   depr7   r   r4   r5   s                     r   extract_node_configurationrO   [   s   	ww~~dJ	!!#u, ~~\2wAA''""4(KT
--I[1wAA*95L''L!!I/8w+bJ##NB7L)+&c3CNN3M$N$N141A1AB\1]. 
 !+/A2 F""="5K6{CLI+V#/L -CL)*9[560I,-<GG    rI   c                 6   ^   " U 4S jS[         5      nU" 5       $ )Nc            	       @   > \ rS rSr\S\S\S\S\4U 4S jj5       rSrg)	0load_pyproject_settings.<locals>.PyProjectLoader   init_settingsenv_settingsdotenv_settingsfile_secret_settingsc                    > [        UT5      4$ r   )r   )clssettings_clsrU   rV   rW   rX   rI   s         r   settings_customise_sourcesKload_pyproject_settings.<locals>.PyProjectLoader.settings_customise_sources   s     -\9EGGrP    N)__name__
__module____qualname____firstlineno__classmethodr   r\   __static_attributes__)rI   s   r   PyProjectLoaderrS      sC    		H 6	H 5		H
 8	H #=	H 
	HrP   re   )r
   )rI   re   s   ` r   r@   r@      s    
H+ 
H rP   )r8   pathlibr   typingr   pydantic_settingsr   r   comfy_config.typesr   r   r	   r
   listr!   r,   rO   r@   r^   rP   r   <module>rk      so    	   R T d d t ,'P-H(A -H`t 0A rP   