o
    3Î®c³  ã                   @   sn   d Z g d¢Zdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZG dd„ dƒZdd„ Z	dd„ Z
dd„ Zdd„ ZdS )z|Filter factories to hide or show sets of nodes and edges.

These filters return the function used when creating `SubGraph`.
)Ú	no_filterÚ
hide_nodesÚ
hide_edgesÚhide_multiedgesÚhide_diedgesÚhide_multidiedgesÚ
show_nodesÚ
show_edgesÚshow_multiedgesÚshow_diedgesÚshow_multidiedgesc                  G   s   dS )NT© )Úitemsr   r   ú?/tmp/pip-target-vg8gfxp4/lib/python/networkx/classes/filters.pyr      s   r   c                    s   t ˆ ƒ‰ ‡ fdd„S )Nc                    s   | ˆ vS ©Nr   )Únode©Únodesr   r   Ú<lambda>   s    zhide_nodes.<locals>.<lambda>©Úsetr   r   r   r   r      s   r   c                    ó   dd„ ˆ D ƒ‰ ‡ fdd„S )Nc                 S   ó   h | ]\}}||f’qS r   r   ©Ú.0ÚuÚvr   r   r   Ú	<setcomp>   ó    zhide_diedges.<locals>.<setcomp>c                    ó   | |fˆ vS r   r   ©r   r   ©Úedgesr   r   r      ó    zhide_diedges.<locals>.<lambda>r   r    r   r    r   r      ó   r   c                    ó"   t | ƒdd„ | D ƒB ‰ ‡ fdd„S )Nc                 S   ó   h | ]\}}||f’qS r   r   r   r   r   r   r   #   r   zhide_edges.<locals>.<setcomp>c                    r   r   r   r   ©Úalledgesr   r   r   $   r"   zhide_edges.<locals>.<lambda>r   r    r   r&   r   r   "   ó   r   c                    r   )Nc                 S   ó   h | ]
\}}}|||f’qS r   r   ©r   r   r   Úkr   r   r   r   (   ó    z$hide_multidiedges.<locals>.<setcomp>c                    ó   | ||fˆ vS r   r   ©r   r   r+   r    r   r   r   )   ó    z#hide_multidiedges.<locals>.<lambda>r   r    r   r    r   r   '   r#   r   c                    r$   )Nc                 S   ó   h | ]
\}}}|||f’qS r   r   r*   r   r   r   r   -   r,   z"hide_multiedges.<locals>.<setcomp>c                    r-   r   r   r.   r&   r   r   r   .   r/   z!hide_multiedges.<locals>.<lambda>r   r    r   r&   r   r   ,   r(   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r   c                 C   s   t |ƒ| _d S r   )r   r   )Úselfr   r   r   r   Ú__init__3   s   zshow_nodes.__init__c                 C   s
   || j v S r   r   )r1   r   r   r   r   Ú__call__6   s   
zshow_nodes.__call__N)Ú__name__Ú
__module__Ú__qualname__r2   r3   r   r   r   r   r   2   s    r   c                    r   )Nc                 S   r   r   r   r   r   r   r   r   ;   r   zshow_diedges.<locals>.<setcomp>c                    ó   | |fˆ v S r   r   r   r    r   r   r   <   r"   zshow_diedges.<locals>.<lambda>r   r    r   r    r   r
   :   r#   r
   c                    r$   )Nc                 S   r%   r   r   r   r   r   r   r   @   r   zshow_edges.<locals>.<setcomp>c                    r7   r   r   r   r&   r   r   r   A   r"   zshow_edges.<locals>.<lambda>r   r    r   r&   r   r   ?   r(   r   c                    r   )Nc                 S   r)   r   r   r*   r   r   r   r   E   r,   z$show_multidiedges.<locals>.<setcomp>c                    ó   | ||fˆ v S r   r   r.   r    r   r   r   F   r/   z#show_multidiedges.<locals>.<lambda>r   r    r   r    r   r   D   r#   r   c                    r$   )Nc                 S   r0   r   r   r*   r   r   r   r   J   r,   z"show_multiedges.<locals>.<setcomp>c                    r8   r   r   r.   r&   r   r   r   K   r/   z!show_multiedges.<locals>.<lambda>r   r    r   r&   r   r	   I   r(   r	   N)Ú__doc__Ú__all__r   r   r   r   r   r   r   r
   r   r   r	   r   r   r   r   Ú<module>   s    