o
    i                     @  s   U d dl mZ d dlZd dlmZmZ ddd	Zd ddZejeej	eiZ
ded< d!ddZd"ddZd#ddZejeejeiZded< d$ddZd$ddZdS )%    )annotationsN)AnyCallablenodeast.Attributereturnstrc                 C  s   t | j d| j S )N.)get_namevalueattrr    r   o/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/griffe/_internal/agents/nodes/assignments.py_get_attribute_name	   s   r   ast.Namec                 C  s   | j S N)idr   r   r   r   _get_name_name   s   r   z dict[type, Callable[[Any], str]]_node_name_mapast.ASTc                 C     t t|  | S )zExtract name from an assignment node.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    )r   typer   r   r   r   r
         	r
   
ast.Assign	list[str]c                 C  s   dd | j D }dd |D S )Nc                 s  s    | ]}t |V  qd S r   )r
   ).0targetr   r   r   	<genexpr>$   s    z$_get_assign_names.<locals>.<genexpr>c                 S  s   g | ]}|r|qS r   r   r   namer   r   r   
<listcomp>%   s    z%_get_assign_names.<locals>.<listcomp>)targets)r   namesr   r   r   _get_assign_names#   s   r$   ast.AnnAssignc                 C  s   t | j}|r
|gS g S r   )r
   r   )r   r    r   r   r   _get_annassign_names(   s   
r&   z&dict[type, Callable[[Any], list[str]]]_node_names_mapc                 C  r   )zExtract names from an assignment node.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    )r'   r   r   r   r   r   	get_names3   r   r(   c                 C  s   dd t | D S )zExtract names from an assignment node, only for instance attributes.

    Parameters:
        node: The node to extract names from.

    Returns:
        A list of names.
    c                 S  s&   g | ]}| d r|ddd qS )zself.r	      )
startswithsplitr   r   r   r   r!   H   s   & z&get_instance_names.<locals>.<listcomp>)r(   r   r   r   r   get_instance_names?   s   	r,   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r%   r   r   )r   r   r   r   )
__future__r   asttypingr   r   r   r   Name	Attributer   __annotations__r
   r$   r&   Assign	AnnAssignr'   r(   r,   r   r   r   r   <module>   s    





