Ë
    D^(h""  ã                   óÞ   — 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y)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| j                  «       › �–— t        | «      }t        t	        |t        dt        |«      dz   «      «      «      }|D �]6  }| j                  j                  |i «      j                  «       }|j                  dd«      }|j                  dd«      }	 t        |j                  d||   «      «      }|||<   |j                  dd«      }
dj                  t        t         |||||
f«      «      }|j#                  «       D ]t  \  }}t%        |t&        «      r1|j)                  «       dk7  r|dt!        |«      › dt!        |«      › �z  }ŒGt+        j,                  d|› dt%        |t&        «      rdnd› d�«       Œv |–— �Œ9 | j/                  «       rd–— nd–— | j1                  d¬«      D ]Û  \  }}}|j                  «       }|j                  dd«      }dj                  t        t         ||   ||   |f«      «      }|j#                  «       D ]t  \  }}t%        |t&        «      r1|j)                  «       dk7  r|dt!        |«      › dt!        |«      › �z  }ŒGt+        j,                  d|› dt%        |t&        «      rdnd› d�«       Œv |–— ŒÝ y
# t        $ r}	|	xj                  d	z  c_        ‚ d
}	~	ww xY w­w)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/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/readwrite/pajek.pyr   r      sË  è ø€ ð 	‡v�v�‚|Ø‰à�v‰vˆð �q—w‘w“y�kÐ
"Ò"Ü�‹G€Eä”c˜%¤ q¬#¨e«*°q©.Ó!9Ó:Ó;€JØó ˆð �W‰W�[‰[˜˜BÓ×$Ñ$Ó&ˆØ�F‰F�3˜ÓˆØ�F‰F�3˜Óˆð		Ü�R—V‘V˜D *¨Q¡-Ó0Ó1ˆBð ˆ
�1‰Ø—‘�w 	Ó*ˆØ�H‰H”Sœ R¨¨A¨q°%Ð$8Ó9Ó:ˆà—H‘H“Jò 	‰DˆAˆqÜ˜!œSÔ! a§g¡g£i°2¢oØ�qœ 1›˜ a¬	°!« ~Ð6Ñ6‘ä—‘Ø% a SÐ(;ÔR\Ð]^Ô`cÔRdÑ=Nð  kAð  <Cð  CDð  Eõð		ð Œð7ð< 	‡}�}„Ø‹àŠØŸ'™' t˜'Ó,ò ‰ˆˆ1ˆhØ�M‰M‹OˆØ—‘�h Ó$ˆØ�H‰H”Sœ Z°¡]°J¸q±MÀ5Ð$IÓJÓKˆØ—G‘G“Iò 	‰DˆAˆqÜ˜!œSÔ! a§g¡g£i°2¢oØ�qœ 1›˜ a¬	°!« ~Ð6Ñ6‘ä—‘Ø% a SÐ(;ÔR\Ð]^Ô`cÔRdÑ=Nð  kAð  <Cð  CDð  Eõð		ð ‹ñøô5 ò 	Ø�HŠHð ñ �Hð ûð	üs+   ‚B>KÃJ2ÃGKÊ2	KÊ;KËKËKr   Úwb)Úmodec                 ón   — t        | «      D ]'  }|dz  }|j                  |j                  |«      «       Œ) y)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.net")

    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   s6   € ô8 ˜qÓ!ò *ˆØ�‰ˆØ�
‰
�4—;‘;˜xÓ(Õ)ñ*ó    ÚrbT)ÚgraphsÚreturns_graphc                 ó0   ‡— ˆfd„| D «       }t        |«      S )aZ  Read graph in Pajek format from path.

    Parameters
    ----------
    path : file or string
       File or filename to write.
       Filenames ending in .gz or .bz2 will be uncompressed.

    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   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­w)N)Údecode)Ú.0rE   rD   s     €r<   ú	<genexpr>zread_pajek.<locals>.<genexpr>¢   s   øè ø€ Ò4 tˆT�[‰[˜×"Ñ4ùs   ƒ)r   )rC   rD   Úliness    ` r<   r   r   „   s   ø€ ó< 5¨tÔ4€EÜ�uÓÐrF   c                 ó&	  ‡— ddl }t        | t        «      rt        | j	                  d«      «      } t        | D �cg c]  }|j                  d«      ‘Œ c}«      } t        j                  «       }g Š| �r–	 t        | «      }|j                  «       j                  d«      r'	 |j	                  dd«      \  }}||j                  d<   �n@|j                  «       j                  d«      �r8i }|j	                  «       \  }}t        t        |«      «      D �]	  }	t        | «      }	 |j	                  t        |«      j                  d«      «      D �
cg c]  }
|
j!                  d«      ‘Œ }}
|dd	 \  }}‰j%                  |«       |j'                  |«       |||<   ||j(                  |   d
<   	 |d	d \  }
}}|j(                  |   j+                  t-        |
«      t-        |«      |dœ«       t/        |ddd	…   |ddd	…   «      }|j(                  |   j+                  |«       �Œ �nè|j                  «       j                  d«      s |j                  «       j                  d«      �rP|j                  «       j                  d«      rt        j0                  |«      }|j                  «       j                  d«      r|j3                  «       }| D ]ç  }	 |j	                  t        |«      j                  d«      «      D �
cg c]  }
|
j!                  d«      ‘Œ }}
t5        |«      d	k  rŒX|dd	 \  }}j7                  ||«      }|j7                  ||«      }i }	 |d	d }|j+                  dt-        |d   «      i«       t/        |ddd	…   |ddd	…   «      }|j+                  |«        |j8                  ||fi |¤Ž Œé nY|j                  «       j                  d«      r:t        j:                  |«      }ˆfd„t=        | «      D «       }|j?                  |«       | r�Œ–|S c c}w #  Y |S xY w# t        $ r Y Œw xY wc c}
w # t"        $ r |j	                  t        |«      «      }Y �Œïw xY w#  Y �ŒyxY wc c}
w # t"        $ r |j	                  t        |«      «      }Y �Œw xY w#  Y �Œ&xY w)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   Nr@   z*networkr   r   z	*verticeszutf-8é   r   é   )r   r   r   é   r   r   z*edgeé   r   é   z*matrixc              3   ó®   •K  — | ]L  \  }}t        |j                  «       «      D ]+  \  }}t        |«      d k7  r‰|   ‰|   dt        |«      if–— Œ- ŒN y­w)r   r   N)Ú	enumerateÚsplitr"   )rM   ÚrowrE   Úcolr   Úlabelss        €r<   rN   zparse_pajek.<locals>.<genexpr>  sd   øè ø€ ò á�S˜$Ü#,¨T¯Z©Z«\Ó#:òñ  �S˜$Ü�t“9 ’>ð ˜‘˜f S™k¨H´c¸$³iÐ+@ÔAðØAñùs   ƒAA) Úshlexr)   r*   ÚiterrX   ÚrstripÚnxÚMultiDiGraphÚnextÚlowerÚ
startswithÚgraphr#   r   r"   rB   rL   ÚAttributeErrorÚappendÚadd_noder   ÚupdateÚfloatr   Ú
MultiGraphÚto_directedr   r   Úadd_edgeÚDiGraphrW   Úadd_edges_from)rO   r\   rE   r0   ÚlÚlabelr   Ú
nodelabelsÚnnodesÚir   Ú	splitliner   r   r   Ú
extra_attrÚuiÚvir8   r7   Ú	edge_dataÚwÚadj_listr[   s                          @r<   r   r   ¦   s5  ø€ ó$ ô �%œÔÜ�U—[‘[ Ó&Ó'ˆÜ°Ö6¨�$—+‘+˜dÕ#Ò6Ó7€EÜ
�‰Ó€AØ€FÚ
ð	Ü�U“ˆAð �7‰7‹9×Ñ 
Ô+ð'ØŸg™g d¨AÓ.‘��tð
 #'�—‘˜“Ø�W‰W‹Y×!Ñ! +Õ.ØˆJØŸ™›	‰IˆAˆvÜœ3˜v›;Ó'ó 2�Ü˜“K�ð4à38·;±;¼sÀ1»v¿}¹}ÈWÓ?UÓ3Vö!Ø./˜Ÿ™ Õ)ð!�Ið !ð
 & a¨˜N‘	��EØ—‘˜eÔ$Ø—
‘
˜5Ô!Ø!&�
˜2‘Ø')�—‘˜‘˜tÑ$ðØ"+¨A¨a .‘K�A�q˜%Ø—G‘G˜E‘N×)Ñ)Ü# A›h¬U°1«XÀÑFôô
 ! ¨1¨4¨a¨4¡°)¸A¸D¸q¸D±/ÓB�
Ø—‘˜‘×%Ñ% jÖ1ò+2ð, �W‰W‹Y×!Ñ! (Ô+¨q¯w©w«y×/CÑ/CÀGÕ/LØ�w‰w‹y×#Ñ# GÔ,ä—M‘M !Ó$�Ø�w‰w‹y×#Ñ# GÔ,à—M‘M“O�Øò .�ð4à38·;±;¼sÀ1»v¿}¹}ÈWÓ?UÓ3Vö!Ø./˜Ÿ™ Õ)ð!�Ið !ô �y“> AÒ%ØØ" 1 Q˜‘��BØ—N‘N 2 rÓ*�Ø—N‘N 2 rÓ*�à�	ðà! ! A˜�AØ×$Ñ$ h´°a¸±d³Ð%<Ô=ô
 ! ¨1¨4¨a¨4¡°)¸A¸D¸q¸D±/ÓB�
Ø× Ñ  Ô,ð �—
‘
˜1˜aÑ- 9Ó-ñ7.ð8 �W‰W‹Y×!Ñ! )Ô,Ü—
‘
˜1“ˆAóä#,¨UÓ#3ôˆHð ×Ñ˜XÔ&óc ðf €Hùòm 7øð	Øð^ €HûôW ò áðüò!øô &ò 4Ø %§¡¬C°«FÓ 3“Ið4ûðÚüò!øô &ò 4Ø %§¡¬C°«FÓ 3“Ið4ûðÚúsƒ   ¹P	Á2P ÂP Ä+P*ÅP%ÅP*Æ#=QË+Q!Ë.QÌQ!Í$RÐPÐ	P"Ð!P"Ð%P*Ð*#QÑQÑQÑQ!Ñ!#RÒRÒRc                 óP   — 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'     s0   € ô �aœÔÜ�‹FˆØ
ˆa�xØ�ˆs�!ˆHˆØ€HrF   )zUTF-8)Ú__doc__r,   Únetworkxr_   Únetworkx.utilsr   Ú__all__r   r   Ú_dispatchabler   r   r'   © rF   r<   ú<module>r„      s›   ðñó  ã Ý $â
H€òGñT ˆ1�4Ôò*ó ð*ñ@ ˆ1�4ÔØ€×Ñ˜¨TÔ2òó 3ó ðð@ €×Ñ˜¨TÔ2ñló 3ðló^rF   