
    g                        U d dl mZ d dlZd dlmZmZ ddZddZej                  eej                  eiZ
ded<   ddZdd	Zdd
Zej                  eej                   eiZded<   ddZddZy)    )annotationsN)AnyCallablec                J    t        | j                         d| j                   S )N.)get_namevalueattrnodes    U/var/www/openai/venv/lib/python3.12/site-packages/_griffe/agents/nodes/assignments.py_get_attribute_namer   	   s!    tzz"#1TYYK00    c                    | j                   S N)idr   s    r   _get_name_namer      s    77Nr   z dict[type, Callable[[Any], str]]_node_name_mapc                0    t        t        |          |       S )zExtract name from an assignment node.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    )r   typer   s    r   r   r      s     $t*%d++r   c                X    d | j                   D        }|D cg c]  }|s|	 c}S c c}w )Nc              3  2   K   | ]  }t        |        y wr   )r   ).0targets     r   	<genexpr>z$_get_assign_names.<locals>.<genexpr>$   s     9L&XfLs   )targets)r   namesnames      r   _get_assign_namesr   #   s*    9DLL9E"+UTdDU+++s   ''c                :    t        | j                        }|r|gS g S r   )r   r   r   r   s     r   _get_annassign_namesr"   (   s    DKK DD6!r!r   z&dict[type, Callable[[Any], list[str]]]_node_names_mapc                0    t        t        |          |       S )zExtract names from an assignment node.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    )r#   r   r   s    r   	get_namesr%   3   s     4:&t,,r   c                    t        |       D cg c])  }|j                  d      s|j                  dd      d   + c}S c c}w )zExtract names from an assignment node, only for instance attributes.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    zself.r      )r%   
startswithsplitr!   s     r   get_instance_namesr*   ?   s<     /8oZodQXAYDJJsAq!oZZZs   ??)r   zast.Attributereturnstr)r   zast.Namer+   r,   )r   ast.ASTr+   r,   )r   z
ast.Assignr+   	list[str])r   zast.AnnAssignr+   r.   )r   r-   r+   r.   )
__future__r   asttypingr   r   r   r   Name	Attributer   __annotations__r   r   r"   Assign	AnnAssignr#   r%   r*    r   r   <module>r8      s}    # 
  1
 HHnMM&40 	,,
" JJ!MM';7 	-	[r   