ó
    †~iœ  ã                   óP   • S r SSKJr  SSKrS/r\R                  " SSS9S 5       rg)z 
Generators for interval graph.
é    )ÚSequenceNÚinterval_graphT)ÚgraphsÚreturns_graphc                 óì  • [        U 5      n U  HL  n[        U[        5      (       a  [        U5      S:X  d  [	        S5      eUS   US   :”  d  M@  [        SU 35      e   [        R                  " 5       nU  Vs/ s H  n[        U5      PM     nnUR                  U5        U(       aI  UR                  5       =u  pEnU H&  nUu  p‰XX:¼  d  M  X”:¼  d  M  UR                  Xg5        M(     U(       a  MI  U$ s  snf )aÿ  Generates an interval graph for a list of intervals given.

In graph theory, an interval graph is an undirected graph formed from a set
of closed intervals on the real line, with a vertex for each interval
and an edge between vertices whose intervals intersect.
It is the intersection graph of the intervals.

More information can be found at:
https://en.wikipedia.org/wiki/Interval_graph

Parameters
----------
intervals : a sequence of intervals, say (l, r) where l is the left end,
and r is the right end of the closed interval.

Returns
-------
G : networkx graph

Examples
--------
>>> intervals = [(-2, 3), [1, 4], (2, 3), (4, 6)]
>>> G = nx.interval_graph(intervals)
>>> sorted(G.edges)
[((-2, 3), (1, 4)), ((-2, 3), (2, 3)), ((1, 4), (2, 3)), ((1, 4), (4, 6))]

Raises
------
:exc:`TypeError`
    if `intervals` contains None or an element which is not
    collections.abc.Sequence or not a length of 2.
:exc:`ValueError`
    if `intervals` contains an interval such that min1 > max1
    where min1,max1 = interval
é   zZEach interval must have length 2, and be a collections.abc.Sequence such as tuple or list.r   é   z*Interval must have lower value first. Got )ÚlistÚ
isinstancer   ÚlenÚ	TypeErrorÚ
ValueErrorÚnxÚGraphÚtupleÚadd_nodes_fromÚpopÚadd_edge)
Ú	intervalsÚintervalÚgraphÚtupled_intervalsÚmin1Úmax1Ú	interval1Ú	interval2Úmin2Úmax2s
             Ú_/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/generators/interval_graph.pyr   r      sð   € ôJ �Y“€IÛˆÜ˜8¤X×.Ñ.´3°x³=ÀAÓ3EÜðBóð ð �A‰;˜ !™Õ$ÜÐIÈ(ÈÐTÓUÐUñ ô �HŠH‹J€Eá8AÓBº	¨Hœ˜hž¹	ÐÐBØ	×ÑÐ)Ô*æ
Ø!1×!5Ñ!5Ó!7Ð7‰
ˆ�YÛ)ˆIØ"‰JˆDØ�| ¥Ø—‘˜yÖ4ñ *÷ Ð
ð €Lùò Cs   Á7C1)Ú__doc__Úcollections.abcr   Únetworkxr   Ú__all__Ú_dispatchabler   © ó    r   Ú<module>r'      s;   ðñõ %ã àÐ
€ð ×Ò˜¨TÑ2ñ9ó 3ñ9r&   