
    g
                        d dl mZ d dlmZmZ d dlmZmZmZ erd dl	m
Z
mZmZ d dlmZ d dlmZ  G d d      Z G d	 d
eee      Zy)    )annotations)TYPE_CHECKINGAny)DelMembersMixinGetMembersMixinSetMembersMixin)	ItemsViewKeysView
ValuesView)Path)Modulec                  P    e Zd ZdZddZddZddZddZddZddZ	ddZ
dd	Zy
)LinesCollectionz=A simple dictionary containing the modules source code lines.c                    i | _         yzInitialize the collection.N_dataselfs    H/var/www/openai/venv/lib/python3.12/site-packages/_griffe/collections.py__init__zLinesCollection.__init__   s	    ,.
    c                     | j                   |   S )zGet the lines of a file path.r   )r   keys     r   __getitem__zLinesCollection.__getitem__   s    zz#r   c                "    || j                   |<   y)zSet the lines of a file path.Nr   )r   r   values      r   __setitem__zLinesCollection.__setitem__   s    

3r   c                    || j                   v S )z*Check if a file path is in the collection.r   r   items     r   __contains__zLinesCollection.__contains__    s    tzz!!r   c                     y)z&A lines collection is always true-ish.T r   s    r   __bool__zLinesCollection.__bool__$       r   c                6    | j                   j                         S )zWReturn the collection keys.

        Returns:
            The collection keys.
        )r   keysr   s    r   r(   zLinesCollection.keys(   s     zz  r   c                6    | j                   j                         S )z[Return the collection values.

        Returns:
            The collection values.
        )r   valuesr   s    r   r*   zLinesCollection.values0   s     zz  ""r   c                6    | j                   j                         S )zYReturn the collection items.

        Returns:
            The collection items.
        )r   itemsr   s    r   r,   zLinesCollection.items8   s     zz!!r   NreturnNone)r   r   r.   	list[str])r   r   r   r0   r.   r/   )r!   r   r.   boolr.   r1   )r.   r
   )r.   r   )r.   r	   )__name__
__module____qualname____doc__r   r   r   r"   r%   r(   r*   r,   r$   r   r   r   r      s-    G/ "!#"r   r   c                  @    e Zd ZdZdZ	 ddZd	dZd
dZedd       Z	y)ModulesCollectionz9A collection of modules, allowing easy access to members.Tc                    i | _         yr   membersr   s    r   r   zModulesCollection.__init__G   s    *,2r   c                     y)z(A modules collection is always true-ish.Tr$   r   s    r   r%   zModulesCollection.__bool__L   r&   r   c                    || j                   v S )z'Check if a module is in the collection.r:   r    s     r   r"   zModulesCollection.__contains__P   s    t||##r   c                    | j                   S )zMembers of the collection.

        This property is overwritten to simply return `self.members`,
        as `all_members` does not make sense for a modules collection.
        r:   r   s    r   all_memberszModulesCollection.all_membersT   s     ||r   Nr-   r2   )r!   r   r.   r1   )r.   zdict[str, Module])
r3   r4   r5   r6   is_collectionr   r%   r"   propertyr?   r$   r   r   r8   r8   A   s0    CM;3
$  r   r8   N)
__future__r   typingr   r   _griffe.mixinsr   r   r   collections.abcr	   r
   r   pathlibr   _griffe.modelsr   r   r8   r$   r   r   <module>rH      s=    # % L L??%-" -"`/ r   