
    ^(j                         d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZ dedefdZdedefd	Z	 dee   fd
ZdedefdZy)    N)Path)Optional)PydanticBaseSettingsSourceTomlConfigSettingsSource)ComfyConfigProjectConfigPyProjectConfigPyProjectSettingsclassifiersreturnc                     | D cg c]  }|j                  d      s| }}|sg S |D cg c]  }|t        d      d   }}h d}|D ]  t        fd|D              rg c S  |S c c}w c c}w )NzOperating System :: >   OS IndependentMacOSPOSIX	Microsoftc              3   @   K   | ]  }j                  |        y wN)
startswith).0prefixos_values     D/Users/danicosta/Desktop/Flux2/ComfyUI/comfy_config/config_parser.py	<genexpr>z6validate_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>a3-.01>IJIO=NOOI   V Ks   A'A'A,c                     | D cg c]  }|j                  d      s| }}|sg S |D cg c]  }|t        d      d   }}h d}|D ]
  }||vsg c S  |S c c}w c c}w )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6I 0 % Y Xs   AAAc                 x   t         j                  j                  |       rXt        |       }|j                  j                         dk7  ry |j                  }t        |      }t               }t        ||      S t         j                  j                  |       }t        |       dz  }|j                         s#t        |      }t               }t        ||      S t        |      }|j                  }|j                  }	|	r|	j                  di       ni }
|j                  dg       }d}|D ]7  }t!        |t"              s|j%                  d      s&|j'                  d      } n |
j                  d	d      }|j                  d
g       }t)        |      }t+        |      }||d<   ||d<   ||d<   ||d<   t        ||
      S )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+   )r8   	file_pathproject_namer.   r0   folder_name	toml_pathraw_settingsproject_data	tool_data
comfy_datar1   r5   depr6   r   r3   r4   s                     r   extract_node_configurationrN   [   s   	ww~~dJ	!!#u, ~~\2w5AA''""4(KT
--I[1w5AA*95L''L!!I/8w+bJ##NB7L)+&c3CNN3M$N141A1AB\1]. 
 !+/A2 F""="5K6{CLI+V#/L -CL)*9[L560IL,-<JGG    rH   c                 4      G  fddt               } |       S )Nc            	       4    e Zd Zededededef fd       Zy)0load_pyproject_settings.<locals>.PyProjectLoaderinit_settingsenv_settingsdotenv_settingsfile_secret_settingsc                     t        |      fS r   )r   )clssettings_clsrS   rT   rU   rV   rH   s         r   settings_customise_sourceszKload_pyproject_settings.<locals>.PyProjectLoader.settings_customise_sources   s     -\9EGGrO   N)__name__
__module____qualname__classmethodr   rZ   )rH   s   r   PyProjectLoaderrR      sC    		H 6	H 5		H
 8	H #=	H 
	HrO   r_   )r
   )rH   r_   s   ` r   r?   r?      s    
H+ 
H rO   )r7   pathlibr   typingr   pydantic_settingsr   r   comfy_config.typesr   r   r	   r
   listr    r+   rN   r?    rO   r   <module>rf      so    	   R T d d t ,'P-H(A -H`t 0A rO   