
    O&i\                         d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZmZ  ej        e          Z G d d          ZdS )z.Index entries adapters for sphinx.environment.    N)groupby)AnyDictListOptionalPatternTuplecast)Builder)IndexDomain)BuildEnvironment)NoUri)___)logging
split_intoc                       e Zd ZdeddfdZd ej        d          fdeded	e	de
eee
eeef                  f                  fd
ZdS )IndexEntriesenvreturnNc                     || _         d S N)r   )selfr   s     u/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/environment/adapters/indexentries.py__init__zIndexEntries.__init__   s        Tz(.*) ([(][^()]*[)])buildergroup_entries_fixrec                 	   ! i }d|dfdt           dt           dt          t                    dt          dt          t           t          f         dt          t                    d	df!fd
t          t          | j                            d                    }|j	        
                                D ]\  }|D ]\  }}!}	}
	 |dk    rL	 t          dd|          \  }}n%# t          $ r t          dd|          \  }d}Y nw xY w |||	|
           n4|dk    r3t          dd|          \  }} |||	|
            |||	|
           n|dk    rUt          dd|          \  }}} ||dz   |z   |	|
            ||dz   |z   |	|
            ||dz   |z   |	|
           n|dk    r5t          dd|          \  }} |t          d          |z  dd|
           ne|dk    r5t          dd|          \  }} |t          d          |z  dd|
           n*t                              t!          d          |           # t          $ r4}t                              t          |                     Y d}~d}~ww xY wdt"          t           t           f         d	t"          t          t           f         fd}|                                D ]W}|d                              |           |d                                         D ]}|d                              |           Xdt"          t           t          f         d	t"          t"          t(          t           f         t           f         fd!}t+          |
                                |          }|rd}d}d }|t-          |          k     r||         \  }\  }}}|s|                    |          }|rx||                    d          k    rI|                    |                    d          g i |g          d                              |           ||= |                    d          }n|}|}|dz  }|t-          |          k     dt"          t           t          f         d	t           fd" d#t"          t           t          f         d	t           f fd$}d% t7          ||          D             S )&z7Create the real index from the collected index entries.TNwordsubwordmainlinkdickeyr   c                 <   t          |           } |                    |           }|s
g i |gx|| <   }|r |d|||d         |           d S |rM	 	                    d
          dz   z   }|d                             ||f           d S # t          $ r Y d S w xY wd S )N    )r$   r%   r&   genindex#r   )strgetget_relative_uriappendr   )r!   r"   r#   r$   r%   r&   entryuri	add_entryr   fntids           r   r2   z,IndexEntries.create_index.<locals>.add_entry   s    
 t99DGGDMME 2%'SM1D	E 1	'2t$E!H#NNNNNN 11!22:rBBSH3NC !HOOT3K00000    DD1 1s   B 
BBindexsingle   r)   r(   r&   pairtriple    z, seezsee %sF)r$   r&   seealsozsee also %szunknown index entry type %r)locationr0   c                     | \  }}| |fS r    )r0   r#   r1   s      r   keyfunc0z+IndexEntries.create_index.<locals>.keyfunc0R   s    ID#Hc?"r   r   c                 0   | \  }\  }}}|r|}t          j        d|                                          }|                    d          r
|dd          }|dd                                         s|                    d          rd|f}nd|f}|| d         fS )NNFD   ‏r)   r   r   )unicodedata	normalizelower
startswithisalpha)r0   r&   voidcategory_keylckeysortkeys         r   keyfuncz*IndexEntries.create_index.<locals>.keyfunc\   s    .3+C+$l #")%==E 899 "abb	QqSz!!## %u'7'7'<'< %e* e* U1X&&r   c                 $   t          j        d| d                                                   }|                    d          r
|dd          }|dd                                         s|                    d          rt          d          |z   }|S )NrD   r   rE   r)   r      )rF   rG   rH   rI   rJ   chr)r0   r&   s     r   keyfunc2z+IndexEntries.create_index.<locals>.keyfunc2   s    'uQx~~/?/?@@C~~677 !""g1Q3x!! %S^^C%8%8 %#hhnJr   itemc                    | \  }}t          d |d                                         D                       |d<   |d         }|                    d          r
|dd          }t          j        d|d                   d                                         }|                                s|dk    r|S t          d	          S |d         S )
Nc              3   ,   K   | ]\  }\  }}}||fV  d S r   rA   ).0siserK   s       r   	<genexpr>z>IndexEntries.create_index.<locals>.keyfunc3.<locals>.<genexpr>   s2      OO(>-=b$B8OOOOOOr   r)   r8   r7   rE   rD   r   r   Symbols)sorteditemsrI   rF   rG   upperrJ   r   )rT   kvletterrS   s       r   keyfunc3z+IndexEntries.create_index.<locals>.keyfunc3   s    DAqOO!A$**,,OOO&( ( (AaDt|<< 899 !""A$.uad;;A>DDFF>>## (v}}!M Y<<'tr   c                 6    g | ]\  }}|t          |          fS rA   )list)rW   key_groups      r   
<listcomp>z-IndexEntries.create_index.<locals>.<listcomp>   s=     A A A!T5 tE{{# A A Ar   )r,   r   boolr   r   r
   r   r   
get_domainentriesr]   r   
ValueErrorr   loggerwarningr   r	   valuessortintr\   lenmatchrf   
setdefaultextendr   )"r   r   r   r   newdomainrj   typevaluer#   	index_keyr0   subentryfirstsecondthirderrrB   
indexentryrO   newlistoldkeyoldsubitemsir&   targetssubitems_keymrb   r2   r3   rS   r4   s"    `                            @@@@r   create_indexzIndexEntries.create_index   s     "QU-0t	1 	1C 	1# 	1Xc] 	1$ 	1T	?	17?}	1PT	1 	1 	1 	1 	1 	1 	1 	1 	1& k48#6#6w#?#?@@!>//11 	: 	:KB5< : :1eS$	:x''*.8He.L.LOE88) * * *%/8U%C%CFE')HHH* "	%4YGGGGG(21fe(D(Dv!	%9EEEE!	&%9EEEEE))/9!Xu/M/M,vu!	%#)=tSSSS!	&%$,*>)TTTT!	%v)=tSSSSS(21eU(C(Cv!	%8v)=t',)= = = = =**(21eU(C(Cv!	%=)9)9F)BD',)= = = = = r*G'H'H$Y[\\\! : : :NN3s88bN99999999:9:@	#E#s(O 	#dCi0@ 	# 	# 	# 	# **,, 	/ 	/JqM8,,,&qM0022 / /  X ..../	'5d+ 	'eCHos6J0K 	' 	' 	' 	'$ '222 	 F59KAc'll""18..gx %S))A 
%!QWWQZZ// (221771::B~NNqQ &w '
$!"!$&Q# c'll""(	E#t), 	 	 	 	 		5d+ 	 	 	 	 	 	 	"A A%,Wh%?%?A A A 	As=   I	CI	C?<I	>C??EI		
J)JJ)__name__
__module____qualname__r   r   recompiler   rh   r   r   r	   r,   r   r   rA   r   r   r   r      s        ,      DH'1rz2H'I'ITA TAG TAD TA$TAuS$uS#X*?%?@ATA TA TA TA TA TAr   r   )__doc__r   rF   	itertoolsr   typingr   r   r   r   r   r	   r
   sphinx.buildersr   sphinx.domains.indexr   sphinx.environmentr   sphinx.errorsr   sphinx.localer   r   sphinx.utilr   r   	getLoggerr   rl   r   rA   r   r   <module>r      s8   4 4 				           B B B B B B B B B B B B B B B B B B # # # # # # , , , , , , / / / / / /               + + + + + + + +		8	$	$XA XA XA XA XA XA XA XA XA XAr   