
    ިsgO                         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y)    N)DiGraphGraphMultiDiGraph
MultiGraphPlanarEmbedding)NodeViewc                       e Zd ZdZy)LoopbackGraphnx_loopbackN__name__
__module____qualname____networkx_backend__     \/var/www/html/venv/lib/python3.12/site-packages/networkx/classes/tests/dispatch_interface.pyr
   r
          (r   r
   c                       e Zd ZdZy)LoopbackDiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZy)LoopbackMultiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZy)LoopbackMultiDiGraphr   Nr   r   r   r   r   r      r   r   r   c                       e Zd ZdZy)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##
1$u+?
@@r   c            	       `    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y)	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   sD    	188$$;;DAKKK 	1 &D0	1s	   03 A	N)
edge_attrs
node_attrspreserve_edge_attrspreserve_node_attrspreserve_graph_attrsname
graph_namec          
      ~    |dv r S t         t              r6t               }|j                   j	                                | t               nt         t              st        d| d| dt                       j                  t        t
        hv rt               n j                  t        t        hv rt               ny j                  t        t        hv rt               nV j                  t        t        hv rt               n3 j                  t        t         hv rt               n j                         |r%j"                  j%                   j"                         j                          |rAj&                  j	                         D ]#  \  }	|	j%                   j(                            % nM|rKj&                  j	                         D ].  \  }	|	j%                   fd|j	                         D               0 |rfdnrfdnfdj+                         rfd	nj,                  j/                         r j,                  j	                         D ]0  \  }
   j%                  fd
|
j	                         D               2 j0                  } j0                  j	                         D ]#  \  }
|   j%                  fd|
D               % S  j,                  j	                         D ]2  \  }
   j%                  fd|
j	                         D               4 S )N>   topological_sorttopological_generations lexicographical_topological_sortzBad type for graph argument z in z: c              3      K   | ];  \  }}||j                      v r#|j                      j                  ||      f = y wr&   )_nodeget).0attrdefaultr!   ns      r   	<genexpr>z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>t   sL      %g*dekk!n.D 5;;q>--dG<=s   AAc                 &    j                  |       S r&   edge_attr_dict_factoryold_ddGs    r   G_new_datadictz@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict}   s    //77r   c                 V     j                   fdj                         D              S )Nc              3   X   K   | ]!  \  }}||v r|j                  ||      f # y wr&   )r>   )r?   r@   rA   rH   s      r   rC   zSLoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict.<locals>.<genexpr>   s9      0%g*dfn 6::dG450s   '*)rF   items)rH   rI   r1   s   `r   rJ   z@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict   s,    // 0)3)9)9);0  r   c                 $    j                         S r&   rE   rG   s    r   rJ   z@LoopbackBackendInterface.convert_from_nx.<locals>.G_new_datadict   s    //11r   c                 X    j                  fd| j                         D              }|S )Nc              3   8   K   | ]  \  }}| |      f  y wr&   r   )r?   kddrJ   s      r   rC   zPLoopbackBackendInterface.convert_from_nx.<locals>.G_new_inner.<locals>.<genexpr>   s$      2052Qr*+2   )adjlist_inner_dict_factoryrM   )keydictkdrI   rJ   s     r   G_new_innerz=LoopbackBackendInterface.convert_from_nx.<locals>.G_new_inner   s-    11 29@2  	r   c              3   8   K   | ]  \  }}| |      f  y wr&   r   )r?   nbrrR   rW   s      r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s     S73k"o 6SrS   c              3   2   K   | ]  }||      f  y wr&   r   )r?   rY   G_adjrB   s     r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s      F##uSz!}!5 Fs   c              3   V   K   | ]   \  }}||   v r|      n |      f " y wr&   r   )r?   rY   rR   r[   rW   rB   s      r   rC   z;LoopbackBackendInterface.convert_from_nx.<locals>.<genexpr>   s:       R 1c
?%*Q-BP s   &))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   r[   rJ   rW   rB   s   ``          @@@@@r   convert_from_nxz(LoopbackBackendInterface.convert_from_nx;   s     
 
 LeX&I$$U[[]3EAE5).zl$tfBtE{mT  __ 66A__/ ::!A__-? @@"$A__/C DD$&A__2I JJ!A !AGGNN5;;' 	
 *2		%++a.)* 2		 )3)9)9);  82 ?? )K ==? ::++- T4aSdjjlSST WWF ;;,,. G4q	   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                 .    | D ]  }t        |d      rJ  y )N
add_markerhasattr)rM   r/   s     r   on_start_testsz'LoopbackBackendInterface.on_start_tests   s#      	/D4...	/r   c                     t        | |      S r&   rn   )r.   r6   argskwargss       r   can_runz LoopbackBackendInterface.can_run   s     tT""r   )	r   r   r   r0   staticmethodrh   rk   rp   rt   r   r   r   r$   r$   4   se    1    !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>ry      sm     N N 1)E ))g )) ))< ))o )AB# B#J -. r   