
    \MhO                         d dl Zd dl mZmZmZmZmZ d dlmZ  G d de          Z	 G d de          Z
 G d d	e          Z G d
 de          Z G d de          Zd Z G d d          Z e            ZdS )    N)DiGraphGraphMultiDiGraph
MultiGraphPlanarEmbedding)NodeViewc                       e Zd ZdZdS )LoopbackGraphnx_loopbackN__name__
__module____qualname____networkx_backend__     i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/networkx/classes/tests/dispatch_interface.pyr
   r
              (r   r
   c                       e Zd ZdZdS )LoopbackDiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZdS )LoopbackMultiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZdS )LoopbackMultiDiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZdS )LoopbackPlanarEmbeddingr   Nr   r   r   r   r   r   "   r   r   r   c                    t          | t                    rt          |           S t          | t                    rt	          |           S t          | t
                    rt          |           S t          | t                    rt          |           S t          | t                    rt          |           S t          dt          |                      )NzUnsupported type of graph: )
isinstancer   r   r   r   r   r   r   r   r   r
   	TypeErrortype)graphs    r   convertr"   &   s    %)) .&u---%&& +#E***%$$ )!%(((%!! &u%%%% $U###
?$u++??
@
@@r   c            	       t    e Zd Zd Zeddddddddd            Zeddd            Zed             Zd ZdS )	LoopbackBackendInterfacec                     	 t           j        j        j        |         j        S # t
          $ r t          |          d w xY wN)nxutilsbackends_registered_algorithms	orig_funcKeyErrorAttributeError)selfitems     r   __getattr__z$LoopbackBackendInterface.__getattr__5   sH    	18$;DAKK 	1 	1 	1 &&D0	1s    # >N)
edge_attrs
node_attrspreserve_edge_attrspreserve_node_attrspreserve_graph_attrsname
graph_namec          
          |dv r S t           t                    rGt                      }|                                                                | t                      nt           t                    s%t          d| d| dt                                 j        t          t
          hv rt                      n j        t          t          hv rt                      n j        t          t          hv rt                      n\ j        t          t          hv rt                      n8 j        t          t           hv rt                      n                                 |rj                             j                                                   |r@j                                        D ]%\  }	|	                     j                            &nU|rSj                                        D ]9\  }	|	                     fd|                                D                        :|rfdnrfdnfd                                rfd	nj                                        r j                                        D ]>\  }
                             fd
|
                                D                        ?j        } j                                        D ]-\  }
|                             fd|
D                        .nZ j                                        D ]@\  }
                             fd|
                                D                        AS )N>   topological_sorttopological_generations lexicographical_topological_sortzBad type for graph argument z in z: c              3      K   | ];\  }}||j                  v |j                                      ||          fV  <d S r&   )_nodeget).0attrdefaultr!   ns      r   	<genexpr>z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>t   sd        %g*dek!n.D.D 5;q>--dG<<=.D.D.D.D r   c                 .                         |           S r&   edge_attr_dict_factoryold_ddGs    r   G_new_datadictz@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict}   s    //777r   c                 l                           fd                                D                       S )Nc              3   Z   K   | ]%\  }}||v |                     ||          fV  &d S r&   )r>   )r?   r@   rA   rH   s      r   rC   zSLoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict.<locals>.<genexpr>   sQ       0 0%g*dfnn 6::dG445.<nnn0 0r   )rF   items)rH   rI   r1   s   `r   rJ   z@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict   sN    // 0 0 0 0)3)9)9););0 0 0   r   c                 ,                                     S r&   rE   rG   s    r   rJ   z@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict   s    //111r   c                 n                         fd|                                 D                       }|S )Nc              3   8   K   | ]\  }}| |          fV  d S r&   r   )r?   kddrJ   s      r   rC   zPLoopbackBackendInterface.convert_from_nx.<locals>.G_new_inner.<locals>.<genexpr>   sG       2 2052Qr**+2 2 2 2 2 2r   )adjlist_inner_dict_factoryrM   )keydictkdrI   rJ   s     r   G_new_innerz=LoopbackBackendInterface.convert_from_nx.<locals>.G_new_inner   sM    11 2 2 2 29@2 2 2   	r   c              3   8   K   | ]\  }}| |          fV  d S r&   r   )r?   nbrrR   rV   s      r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s4      SS73kk"oo 6SSSSSSr   c              3   8   K   | ]}||                  fV  d S r&   r   )r?   rX   G_adjrB   s     r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s0       F F##uSz!}!5 F F F F F Fr   c              3   h   K   | ],\  }}||         v r|                  n
 |          fV  -d S r&   r   )r?   rX   rR   rZ   rV   rB   s      r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s`          R 1c
??%*Q--BP           r   )r   r   r   add_nodes_fromrM   r
   r   r    	__class__r   r   r   r   r   r   r   r   r!   updater=   nodesis_multigraph_adjis_directed_pred)r!   r1   r2   r3   r4   r5   r6   r7   	new_graphrR   nbrsG_predrI   rZ   rJ   rV   rB   s   ``          @@@@@r   convert_from_nxz(LoopbackBackendInterface.convert_from_nx;   sO     
 
 
 LeX&& 	"I$$U[[]]333EAAE5)) 	"TzTTtTTtE{{TT   _ 666AA_/ :::!!AA_-? @@@"$$AA_/C DDD$&&AA_2I JJJ!!AA !!A 	(GNN5;''' 	
 		 * *2		%+a.))))* 	  2		     )3)9)9););        	28 8 8 8 8 8 	2      2 2 2 2 2 ?? 	)       )K ==?? 	 :++-- T T4aSSSSdjjllSSSSSSSWF ;,,.. G G4q	   F F F F F F F FFFFFG !:++--  4a            #'::<<         
 r   )r6   c                    | S r&   r   )objr6   s     r   convert_to_nxz&LoopbackBackendInterface.convert_to_nx   s    
r   c                 4    | D ]}t          |d          sJ d S )N
add_markerhasattr)rM   r/   s     r   on_start_testsz'LoopbackBackendInterface.on_start_tests   s6      	/ 	/D4......	/ 	/r   c                 "    t          | |          S r&   rm   )r.   r6   argskwargss       r   can_runz LoopbackBackendInterface.can_run   s     tT"""r   )	r   r   r   r0   staticmethodrg   rj   ro   rs   r   r   r   r$   r$   4   s        1 1 1    !k k k k \kZ #'     \ / / \/
# # # # #r   r$   )networkxr'   r   r   r   r   r   networkx.classes.reportviewsr   r
   r   r   r   r   r"   r$   backend_interfacer   r   r   <module>rx      s{       N N N N N N N N N N N N N N 1 1 1 1 1 1) ) ) ) )E ) ) )) ) ) ) )g ) ) )) ) ) ) ) ) ) )) ) ) ) )< ) ) )) ) ) ) )o ) ) )A A AB# B# B# B# B# B# B# B#J -,..   r   