§
    bŠtj*"  ã                   óü   — d Z ddlZddlZddlmZ g d¢Zd„ Z edd¬¦  «        dd
„¦   «         Z edd¬¦  «         ej	        dd¬¦  «        dd„¦   «         ¦   «         Z
 ej	        dd¬¦  «        d„ ¦   «         Zd„ ZdS )a
  
*****
Pajek
*****
Read graphs in Pajek format.

This implementation handles directed and undirected graphs including
those with self loops and parallel edges.

Format
------
See http://vlado.fmf.uni-lj.si/pub/networks/pajek/doc/draweps.htm
for format information.

é    N)Ú	open_file)Ú
read_pajekÚparse_pajekÚgenerate_pajekÚwrite_pajekc              #   ó¬  K  — | j         dk    rd}n| j         }d|                      ¦   «         › �V — t          | ¦  «        }t          t	          |t          dt          |¦  «        dz   ¦  «        ¦  «        ¦  «        }|D �]•}| j                             |i ¦  «         	                    ¦   «         }| 
                    dd¦  «        }| 
                    dd¦  «        }	 t          | 
                    d||         ¦  «        ¦  «        }n## t          $ r}	|	xj        d	z  c_        ‚ d
}	~	ww xY w|||<   | 
                    dd¦  «        }
d                     t          t           |||||
f¦  «        ¦  «        }|                     ¦   «         D ]Š\  }}t%          |t&          ¦  «        r>|                     ¦   «         dk    r&|dt!          |¦  «        › dt!          |¦  «        › �z  }ŒXt+          j        d|› dt%          |t&          ¦  «        rdnd› d�¦  «         Œ‹|V — �Œ—|                      ¦   «         rdV — ndV — |                      d¬¦  «        D �]\  }}}| 	                    ¦   «         }| 
                    dd¦  «        }d                     t          t           ||         ||         |f¦  «        ¦  «        }|                     ¦   «         D ]Š\  }}t%          |t&          ¦  «        r>|                     ¦   «         dk    r&|dt!          |¦  «        › dt!          |¦  «        › �z  }ŒXt+          j        d|› dt%          |t&          ¦  «        rdnd› d�¦  «         Œ‹|V — �Œd
S )zðGenerate lines in Pajek graph format.

    Parameters
    ----------
    G : graph
       A Networkx graph

    References
    ----------
    See http://vlado.fmf.uni-lj.si/pub/networks/pajek/doc/draweps.htm
    for format information.
    Ú ÚNetworkXz
*vertices é   Úxg        ÚyÚid)zSPajek format requires 'id' to be an int(). Refer to the 'Relabeling nodes' section.NÚshapeÚellipseú zNode attribute z is not processed. zEmpty attributezNon-string attributeú.ú*arcsú*edgesT)ÚdataÚweightg      ð?zEdge attribute )ÚnameÚorderÚlistÚdictÚzipÚrangeÚlenÚnodesÚgetÚcopyÚpopÚintÚ
ValueErrorÚargsÚjoinÚmapÚ	make_qstrÚitemsÚ
isinstanceÚstrÚstripÚwarningsÚwarnÚis_directedÚedges)ÚGr   r   Ú
nodenumberÚnÚnar   r   r   Úerrr   ÚsÚkÚvÚuÚedgedataÚdÚvalues                     úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/networkx/readwrite/pajek.pyr   r      sµ  è è € ð 	„v�‚|€|ØˆˆàŒvˆð #�q—w’w‘y”yÐ
"Ð
"Ð"Ð"Ð"Ý�‰GŒG€Eå•c˜%¥ q­#¨e©*¬*°q©.Ñ!9Ô!9Ñ:Ô:Ñ;Ô;€JØð ñ ˆð ŒW�[Š[˜˜BÑÔ×$Ò$Ñ&Ô&ˆØ�FŠF�3˜ÑÔˆØ�FŠF�3˜ÑÔˆð		Ý�R—V’V˜D *¨Q¤-Ñ0Ô0Ñ1Ô1ˆBˆBøÝð 	ð 	ð 	ØˆHŒHð ñ ˆHŒHð øøøøð	øøøð ˆ
�1‰Ø—’�w 	Ñ*Ô*ˆØ�HŠH•S� R¨¨A¨q°%Ð$8Ñ9Ô9Ñ:Ô:ˆà—H’H‘J”Jð 	ð 	‰DˆAˆqÝ˜!�SÑ!Ô!ð  a§g¢g¡i¤i°2¢o oØÐ6� 1™œÐ6Ð6­	°!©¬Ð6Ð6Ñ6��å”ð E að  Eð  EÕR\Ð]^Õ`cÑRdÔRdð  >AÐ=NÐ=Nð  kAð  Eð  Eð  Eñô ð ð ð ˆˆˆ‰ð 	‡}‚}�„ð ØˆˆˆˆàˆˆˆØŸ'š' t˜'Ñ,Ô,ð ñ ‰ˆˆ1ˆhØ�MŠM‰OŒOˆØ—’�h Ñ$Ô$ˆØ�HŠH•S� Z°¤]°J¸q´MÀ5Ð$IÑJÔJÑKÔKˆØ—G’G‘I”Ið 	ð 	‰DˆAˆqÝ˜!�SÑ!Ô!ð  a§g¢g¡i¤i°2¢o oØÐ6� 1™œÐ6Ð6­	°!©¬Ð6Ð6Ñ6��å”ð E að  Eð  EÕR\Ð]^Õ`cÑRdÔRdð  >AÐ=NÐ=Nð  kAð  Eð  Eð  Eñô ð ð ð ˆˆˆ‰ðð s   Ã)DÄ
D$ÄDÄD$r   Úwb)ÚmodeúUTF-8c                 ó„   — t          | ¦  «        D ]/}|dz  }|                     |                     |¦  «        ¦  «         Œ0dS )a´  Write graph in Pajek format to path.

    Parameters
    ----------
    G : graph
       A Networkx graph
    path : file or string
       File or filename to write.
       Filenames ending in .gz or .bz2 will be compressed.

    Examples
    --------
    >>> G = nx.path_graph(4)
    >>> nx.write_pajek(G, "test.netP4")

    Warnings
    --------
    Optional node attributes and edge attributes must be non-empty strings.
    Otherwise it will not be written into the file. You will need to
    convert those attributes to strings if you want to keep them.

    References
    ----------
    See http://vlado.fmf.uni-lj.si/pub/networks/pajek/doc/draweps.htm
    for format information.
    ú
N)r   ÚwriteÚencode)r0   ÚpathÚencodingÚlines       r<   r   r   c   sO   € õ8 ˜qÑ!Ô!ð *ð *ˆØ�‰ˆØ�
Š
�4—;’;˜xÑ(Ô(Ñ)Ô)Ð)Ð)ð*ð *ó    ÚrbT)ÚgraphsÚreturns_graphc                 ó>   ‡— ˆfd„| D ¦   «         }t          |¦  «        S )a`  Read graph in Pajek format from path.

    Parameters
    ----------
    path : file or string
       Filename or file handle to read.
       Filenames ending in .gz or .bz2 will be decompressed.

    Returns
    -------
    G : NetworkX MultiGraph or MultiDiGraph.

    Examples
    --------
    >>> G = nx.path_graph(4)
    >>> nx.write_pajek(G, "test.net")
    >>> G = nx.read_pajek("test.net")

    To create a Graph instead of a MultiGraph use

    >>> G1 = nx.Graph(G)

    References
    ----------
    See http://vlado.fmf.uni-lj.si/pub/networks/pajek/doc/draweps.htm
    for format information.
    c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S )N©Údecode)Ú.0rF   rE   s     €r<   ú	<genexpr>zread_pajek.<locals>.<genexpr>¢   s/   øè è € Ð4Ð4 tˆT�[Š[˜Ñ"Ô"Ð4Ð4Ð4Ð4Ð4Ð4rG   )r   )rD   rE   Úliness    ` r<   r   r   „   s,   ø€ ð< 5Ð4Ð4Ð4¨tÐ4Ñ4Ô4€EÝ�uÑÔÐrG   c                 ó`
  ‡— ddl }t          | t          ¦  «        r"t          |                      d¦  «        ¦  «        } t          d„ | D ¦   «         ¦  «        } t          j        ¦   «         }g Š| �rÀ	 t          | ¦  «        }n#  Y �nªxY w|                     ¦   «          	                    d¦  «        r7	 |                     dd¦  «        \  }}||j
        d<   �nW# t          $ r Y �nJw xY w|                     ¦   «          	                    d¦  «        �r¡i }|                     ¦   «         \  }}t          t          |¦  «        ¦  «        D �]h}t          | ¦  «        }	 d	„ |                     t          |¦  «                             d
¦  «        ¦  «        D ¦   «         }	n2# t          $ r% |                     t          |¦  «        ¦  «        }	Y nw xY w|	dd…         \  }
}‰                     |¦  «         |                     |¦  «         |||
<   |
|j        |         d<   	 |	dd…         \  }}}|j        |                              t)          |¦  «        t)          |¦  «        |dœ¦  «         n#  Y nxY wt+          |	ddd…         |	ddd…         ¦  «        }|j        |                              |¦  «         �Œj�n}|                     ¦   «          	                    d¦  «        s(|                     ¦   «          	                    d¦  «        �rÃ|                     ¦   «          	                    d¦  «        rt          j        |¦  «        }|                     ¦   «          	                    d¦  «        r|                     ¦   «         }| D �]H}	 d„ |                     t          |¦  «                             d
¦  «        ¦  «        D ¦   «         }	n2# t          $ r% |                     t          |¦  «        ¦  «        }	Y nw xY wt1          |	¦  «        dk     rŒŠ|	dd…         \  }}|                     ||¦  «        }|                     ||¦  «        }i }	 |	dd…         }|                     dt)          |d         ¦  «        i¦  «         n#  Y nxY wt+          |	ddd…         |	ddd…         ¦  «        }|                     |¦  «          |j        ||fi |¤Ž �ŒJnk|                     ¦   «          	                    d¦  «        rDt          j        |¦  «        }ˆfd„t9          | ¦  «        D ¦   «         }|                     |¦  «         | �°À|S )zìParse Pajek format graph from string or iterable.

    Parameters
    ----------
    lines : string or iterable
       Data in Pajek format.

    Returns
    -------
    G : NetworkX graph

    See Also
    --------
    read_pajek

    r   NrA   c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )rA   )Úrstrip)rO   rF   s     r<   ú
<listcomp>zparse_pajek.<locals>.<listcomp>½   s$   € Ð6Ð6Ð6¨�$—+’+˜dÑ#Ô#Ð6Ð6Ð6rG   z*networkr   r   z	*verticesc                 ó8   — g | ]}|                      d ¦  «        ‘ŒS ©úutf-8rM   ©rO   r   s     r<   rU   zparse_pajek.<locals>.<listcomp>Ó   ó1   € ð !ð !ð !Ø./˜Ÿš Ñ)Ô)ð!ð !ð !rG   rX   é   r   é   )r   r   r   é   r   r   z*edgec                 ó8   — g | ]}|                      d ¦  «        ‘ŒS rW   rM   rY   s     r<   rU   zparse_pajek.<locals>.<listcomp>ï   rZ   rG   é   r   é   z*matrixc              3   óÒ   •K  — | ]a\  }}t          |                     ¦   «         ¦  «        D ]:\  }}t          |¦  «        d k    ¯‰|         ‰|         dt          |¦  «        ifV — Œ;ŒbdS )r   r   N)Ú	enumerateÚsplitr"   )rO   ÚrowrF   Úcolr   Úlabelss        €r<   rP   zparse_pajek.<locals>.<genexpr>  sƒ   øè è € ð ð á�S˜$Ý#,¨T¯ZªZ©\¬\Ñ#:Ô#:ðð ñ  �S˜$Ý�t‘9”9 ’>�>ð ˜”˜f Sœk¨Hµc¸$±i´iÐ+@ÐAð "�>�>�>�>ð	ð rG   )Úshlexr)   r*   Úiterrc   ÚnxÚMultiDiGraphÚnextÚlowerÚ
startswithÚgraphr#   r   r"   rC   ÚAttributeErrorÚappendÚadd_noder   ÚupdateÚfloatr   Ú
MultiGraphÚto_directedr   r   Úadd_edgeÚDiGraphrb   Úadd_edges_from)rQ   rg   r0   ÚlÚlabelr   Ú
nodelabelsÚnnodesÚiÚ	splitliner   r   r   r   Ú
extra_attrÚuiÚvir8   r7   Ú	edge_dataÚwÚadj_listrf   s                         @r<   r   r   ¦   sj  ø€ ð$ €L€L€Lõ �%�ÑÔð (Ý�U—[’[ Ñ&Ô&Ñ'Ô'ˆÝÐ6Ð6°Ð6Ñ6Ô6Ñ7Ô7€EÝ
ŒÑÔ€AØ€FØ
ñ Q'ð	Ý�U‘”ˆAˆAøð	Ø‰EøøøØ�7Š7‰9Œ9×Ò 
Ñ+Ô+ð L	'ð'ØŸgšg d¨AÑ.Ô.‘��tð
 #'�”˜‘‘øõ	 ð ð ð à‘ðøøøð
 �WŠW‰YŒY×!Ò! +Ñ.Ô.ñ D	'ØˆJØŸš™	œ	‰IˆAˆvÝ�3˜v™;œ;Ñ'Ô'ð 2ñ 2�Ý˜‘K”K�ð4ð!ð !Ø38·;²;½sÀ1¹v¼v¿}º}ÈWÑ?UÔ?UÑ3VÔ3Vð!ñ !ô !�I�Iøõ &ð 4ð 4ð 4Ø %§¢­C°©F¬FÑ 3Ô 3�I�I�Ið4øøøà% a¨ cœN‘	��EØ—’˜eÑ$Ô$Ð$Ø—
’
˜5Ñ!Ô!Ð!Ø!&�
˜2‘Ø')�”˜”˜tÑ$ðØ"+¨A¨a¨C¤.‘K�A�q˜%Ø”G˜E”N×)Ò)Ý# A™hœh­U°1©X¬XÀÐFÐFñô ð ð øðØ�DøøøÝ  ¨1¨4¨a¨4¤°)¸A¸D¸q¸D´/ÑBÔB�
Ø”˜”×%Ò% jÑ1Ô1Ð1Ñ1ñ+2ð, �WŠW‰YŒY×!Ò! (Ñ+Ô+ð +	'¨q¯wªw©y¬y×/CÒ/CÀGÑ/LÔ/Lñ +	'Ø�wŠw‰yŒy×#Ò# GÑ,Ô,ð %å”M !Ñ$Ô$�Ø�wŠw‰yŒy×#Ò# GÑ,Ô,ð $à—M’M‘O”O�Øð .ñ .�ð4ð!ð !Ø38·;²;½sÀ1¹v¼v¿}º}ÈWÑ?UÔ?UÑ3VÔ3Vð!ñ !ô !�I�Iøõ &ð 4ð 4ð 4Ø %§¢­C°©F¬FÑ 3Ô 3�I�I�Ið4øøøõ �y‘>”> AÒ%Ð%ØØ" 1 Q 3œ‘��BØ—N’N 2 rÑ*Ô*�Ø—N’N 2 rÑ*Ô*�à�	ðà! ! A #œ�AØ×$Ò$ hµ°a¸´d±´Ð%<Ñ=Ô=Ð=Ð=øðØ�Døøøõ ! ¨1¨4¨a¨4¤°)¸A¸D¸q¸D´/ÑBÔB�
Ø× Ò  Ñ,Ô,Ð,ð �”
˜1˜aÐ-Ð- 9Ð-Ð-Ð-Ñ-ð7.ð8 �WŠW‰YŒY×!Ò! )Ñ,Ô,ð 	'Ý”
˜1‘”ˆAðð ð ð å#,¨UÑ#3Ô#3ðñ ô ˆHð ×Ò˜XÑ&Ô&Ð&ðc ñ Q'ðf €Hs[   Á/A? Á?BÂ/C Ã
C"Ã!C"Å?FÆ,GÇGÈAI!É!I%Í9?N9Î9,O(Ï'O(Ð;4Q0Ñ0Q4c                 ób   — t          | t          ¦  «        st          | ¦  «        } d| v rd| › d�} | S )zcReturns the string representation of t.
    Add outer double-quotes if the string has a space.
    r   ú")r)   r*   )Úts    r<   r'   r'     s<   € õ �a�ÑÔð Ý�‰FŒFˆØ
ˆa€x€xØ�ˆHˆHˆHˆØ€HrG   )r?   )Ú__doc__r,   Únetworkxri   Únetworkx.utilsr   Ú__all__r   r   Ú_dispatchabler   r   r'   © rG   r<   ú<module>rŽ      s   ððð ð  €€€à Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à
HÐ
HÐ
H€ðGð Gð GðT €ˆ1�4ÐÑÔð*ð *ð *ñ Ôð*ð@ €ˆ1�4ÐÑÔØ€Ô˜¨TÐ2Ñ2Ô2ðð ð ñ 3Ô2ñ Ôðð@ €Ô˜¨TÐ2Ñ2Ô2ðlð lñ 3Ô2ðlð^ð ð ð ð rG   