
    i                         S r S rS rS rg))connect_socketsfind_base_socket_typefind_node_inputc                    U R                   S:X  a  U R                  $ U R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  g	U R                   S
:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gU R                   S:X  a  gg)a/  
Find the base class of the socket.

Sockets can have a subtype such as NodeSocketFloatFactor,
but only the base type is allowed, e.g. NodeSocketFloat

:param socket: The socket to find the base type for.
:type socket: :class:`bpy.types.NodeSocket`
:return: The base socket type identifier.
:rtype: str
CUSTOMVALUENodeSocketFloatINTNodeSocketIntBOOLEANNodeSocketBoolVECTORNodeSocketVectorROTATIONNodeSocketRotationSTRINGNodeSocketStringRGBANodeSocketColorSHADERNodeSocketShaderOBJECTNodeSocketObjectIMAGENodeSocketImageGEOMETRYNodeSocketGeometry
COLLECTIONNodeSocketCollectionTEXTURENodeSocketTextureMATERIALNodeSocketMaterialN)type	bl_idname)sockets    ]/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/modules/bpy_extras/node_utils.pyr   r      s     {{h{{g {{e{{i{{h!{{j #{{h!{{f {{h!{{h!{{g {{j #{{l"%{{i"{{j # !    c                    SSK nU R                  (       a  UR                  (       d  XpUR                  nU R                  nUR                  UR                  La  [	        S5        g[        U 5      [        U5      s=:X  a  UR                  R                  :X  a  O  O[	        S5        gUR                  R                  R                  XSS9$ )a  
Connect sockets in a node tree.

This is useful because the links created through the normal Python API are
invalid when one of the sockets is a virtual socket (grayed out sockets in
Group Input and Group Output nodes).

It replaces node_tree.links.new(input, output)

:param input: The input socket.
:type input: :class:`bpy.types.NodeSocket`
:param output: The output socket.
:type output: :class:`bpy.types.NodeSocket`
    Nz+Sockets do not belong to the same node treez+Cannot connect two virtual sockets togetherT)handle_dynamic_sockets)
bpy	is_outputnodeid_dataprintr#   typesNodeSocketVirtuallinksnew)inputoutputr+   
input_nodeoutput_nodes        r&   r   r   9   s      v//vJ**K!4!44;<E{d6lAcii&A&AA;<##''d'SSr'   c                 R    U R                    H  nUR                  U:X  d  M  Us  $    g)a;  
Find a node input socket by name.

Note that names are not unique, returns the first match.

:param node: The node to search.
:type node: :class:`bpy.types.Node`
:param name: The name of the input socket.
:type name: str
:return: The input socket or None if not found.
:rtype: :class:`bpy.types.NodeSocket` | None
N)inputsname)r-   r:   r4   s      r&   r   r   \   s(     ::L  r'   N)__all__r   r   r    r'   r&   <module>r=      s   
*$Z TFr'   