
    +j!                     z    S r SSKrSSKJr  SSKJrJr   " S S\R                  5      r " S S\5      r	S	\	4S
 jr
g)zNumber Convert node for unified numeric type conversion.

Provides a single node that converts INT, FLOAT, STRING, and BOOL
inputs into FLOAT and INT outputs.
    N)override)ComfyExtensionioc                   p    \ rS rSrSr\S\R                  4S j5       r\S\R                  4S j5       r
Srg)NumberConvertNode   z8Converts various types to numeric FLOAT and INT outputs.returnc                 \   [         R                  " SSS/ SQ[         R                  R                  S[         R                  [         R
                  [         R                  [         R                  /SS9/[         R
                  R                  SS9[         R                  R                  SS9/S	9$ )
NComfyNumberConvertzConvert Number	utilities)	zint to floatzfloat to intznumber convert	int2float	float2intcastzparse numberzstring to numberzbool to intvalue)display_nameFLOATINT)node_idr   categorysearch_aliasesinputsoutputs)	r   Schema	MultiTypeInputIntFloatStringBooleanOutput)clss    A/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_number_convert.pydefine_schemaNumberConvertNode.define_schema   s    yy()  ""VVRXXryy"**=!( #  W551!
 	
    c                 
   [        U[        5      (       a  U(       a  SOSnU(       a  SOSnO[        U[        5      (       a  [        U5      nUnO[        U[        5      (       a  Un[        U5      nO[        U[        5      (       ad  UR                  5       nU(       d  [        S5      e [        U5      n[        R                  " U5      (       d  [        SU 35      e [        U5      nO![        S[        U5      R                   35      e[        R                  " U5      (       d  [        SU 35      e[        R                  " X#5      $ ! [         a    [        SU< 35      S ef = f! [         a    [        U5      n Ntf = f)	Ng      ?g           r   z&Cannot convert empty string to number.z!Cannot convert string to number: z+Cannot convert non-finite value to number: zUnsupported input type: )
isinstanceboolintfloatstrstrip
ValueErrormathisfinite	TypeErrortype__name__r   
NodeOutput)r!   r   	float_valint_valtexts        r"   executeNumberConvertNode.execute*   sc   eT""$#I aaGs##eIGu%%I%jGs##;;=D !IJJ!$K	
 ==++ A)M )d) *4;+?+?*@A  }}Y''=i[I  }}Y00-   7yA  )i.)s   +E  E* E'*FF N)r3   
__module____qualname____firstlineno____doc__classmethodr   r   r#   r4   r8   __static_attributes__r:   r%   r"   r   r      sA    B
bii 
 
. &1r}} &1 &1r%   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)NumberConvertExtensionT   r	   c                    #    [         /$ 7fN)r   )selfs    r"   get_node_list$NumberConvertExtension.get_node_listU   s     !""s   
r:   N)r3   r;   r<   r=   r   listr2   r   	ComfyNoderG   r@   r:   r%   r"   rB   rB   T   s)    #T$r||*<%= # #r%   rB   r	   c                     #    [        5       $ 7frE   )rB   r:   r%   r"   comfy_entrypointrL   Z   s     !##s   )r>   r/   typing_extensionsr   comfy_api.latestr   r   rJ   r   rB   rL   r:   r%   r"   <module>rO      sA     & /B1 B1J#^ #$ 6 $r%   