
    6h                       S SK Jr  S SKrS SKrSSKJr  SSKJrJr   S SK	r	\	R                    S r " S S	5      r " S
 S\5      rS rS rS rS r0 rS r\" 5       rS r\" \5      r\" 5         g! \ a	    SSKJr	   NQf = f)    )annotationsN   )resourceutil)encodingerror)tomlic                6   [        UR                  5       5       H|  u  p4U R                  R                  U[	        5       5      n[        U5      n[        U5      n[        Xg-  5       H  nSn	XX84-  n	U R                  U	SS9  M     UR                  U5        M~     g)z:update config item known to the ui with the extension oness-   extension '%s' overwrites config item '%s.%s's   warn-config)configN)sorteditems_knownconfig
setdefaultitemregisterset	develwarnupdate)
uiextnameconfigtablesectionr   
knownitems	knownkeysnewkeyskeymsgs
             7/usr/lib/python3/dist-packages/mercurial/configitems.pyloadconfigtabler      s     !2!2!45__//H

O	e*)-.CBCW**CLL^L4 /
 	%  6    c                  0    \ rS rSrSr       SS jrSrg)
configitem+   a3  represent a known config item

:section: the official config section where to find this item,
   :name: the official name within the section,
:default: default value for this item,
:alias: optional list of tuples as alternatives,
:generic: this is a generic definition, match name using regular expression.
Nc
                    Xl         X l        X0l        Xl        [	        U5      U l        XPl        X`l        Xpl        S U l	        Xl
        U(       a&  [        R                  " U R                  5      U l	        g g N)r   namedefaultdocumentationlistaliasgenericpriorityexperimental_rein_core_extensionrecompile)
selfr   r$   r%   r(   r)   r*   r+   r&   r-   s
             r   __init__configitem.__init__5   s]     	*%[
 (!2zz$)),DH r   )
r,   r(   r%   r&   r+   r)   r-   r$   r*   r   )N Fr   F N)__name__
__module____qualname____firstlineno____doc__r1   __static_attributes__r3   r   r   r    r    +   s#     -r   r    c                  P   ^  \ rS rSrSrU 4S jrU 4S jrU 4S jrU 4S jrSr	U =r
$ )r   O   z<A specialized dictionary that can handle wild-card selectionc                @   > [         TU ]  5         [        5       U l        g r#   )superr1   r   	_generics)r0   	__class__s    r   r1   itemregister.__init__R   s    r   c                n   > [         TU ]  U5        U R                  R                  UR                  5        g r#   )r>   r   r?   )r0   otherr@   s     r   r   itemregister.updateV   s%    ueoo.r   c                ~   > [         TU ]  X5        UR                  (       a  U R                  R	                  U5        g g r#   )r>   __setitem__r)   r?   add)r0   r   itemr@   s      r   rF   itemregister.__setitem__Z   s.    C&<<NNt$ r   c                   > [         TU ]  U5      nUb  UR                  (       d  U$ [        U R                  S S9nU H'  nUR
                  R                  U5      (       d  M%  Us  $    g )Nc                2    U R                   U R                  4$ r#   )r*   r$   )xs    r   <lambda>"itemregister.get.<locals>.<lambda>e   s    !**aff9Mr   )r   )r>   getr)   r   r?   r,   match)r0   r   baseitemgenericsrH   r@   s        r   rO   itemregister.get_   s`    7;s#(8(8O $../MOD xx~~c""  r   )r?   )r5   r6   r7   r8   r9   r1   r   rF   rO   r:   __classcell__)r@   s   @r   r   r   O   s    F/%
 r   r   c                  ^ SnU R                  US5      nUS:X  a
  [        U S'   OUS:X  a
  [        U S'   OUS:X  aG  [        U S   [        5      (       d   eU S    Vs/ s H  o3R	                  5       PM     snmU4S jU S'   O5US:X  a  S	 U S'   O(Ub%  S
nXBU S   U S   4-  n[
        R                  " U5      eU R                  S5      nU(       a8  U VVs/ s H%  u  pgUR	                  5       UR	                  5       4PM'     snnU S'   [        U R                  S5      [        5      (       a  U S   R	                  5       U S'   U S   R	                  5       U S'   U S   R	                  5       U S'   gs  snf s  snnf )zBApply the transformations that are encoded on top of the pure datazdefault-typeNdynamicr%   	list_typelambdac                    > T $ r#   r3   )r%   s   r   rM   sanitize_item.<locals>.<lambda>   s    'r   lazy_modulec                 "    [         R                   $ r#   )r   r3   r   r   rM   rZ      s
    ("3"3r   z*invalid default config type %r for '%s.%s'r   r$   r(   )	popdynamicdefaultr'   
isinstanceencoder   ProgrammingErrorrO   str)	rH   default_type_keydefault_typeer   r(   kvr%   s	           @r   sanitize_itemrh   x   sg    &88,d3Ly (Y		$Y		!$y/40000'+I7!88:7)Y		&3Y#>C$y/4<@@C((-- HHWE@EFfq!((*ahhj1FW$((9%s++y/002Y9o,,.DO<&&(DL# 8 Gs   E/,E4c                     [         R                  " SS5       n [        R                  " U 5      sSSS5        $ ! , (       d  f       g= f)zAReturns the deserialized TOML structure from the configitems files	   mercurials   configitems.tomlN)r   open_resourcetomllibload)fps    r   read_configitems_filern      s.    		#	#L2E	F"||B 
G	F	Fs	   8
Ac                h   U S    H  n[        U5        [        S0 UD6  M     U S   nU S    H  nX#S      nU Hr  nUR                  5       nUR                  SS5      nUS   US'   U(       a  U SUS	    3US
'   OUS	   US
'   [        U5        UR	                  S	S5        [        S0 UD6  Mt     M     g)z:Register the configitems from the *deserialized* toml filer   	templatesztemplate-applicationstemplateprefixr4   r   .suffixr$   Nr3   )rh   coreconfigitemcopyrO   r]   )r   rH   rp   applicationtemplate_itemstemplate_itemrr   s          r   configitems_from_tomlrz      s    gd  k"I45"z#:;+M %%'D __Xr2F))4DO"(4>*:;V#H~V$HHXt$"T" , 6r   c                 .    [        5       n [        U 5        g r#   )rn   rz   )as_tomls    r   import_configitems_from_filer}      s    #%G'"r   c                    [        U0 UD6nU R                  UR                  [        5       5      nUR                  U;   a0  Sn[
        R                  " XSR                  UR                  4-  5      eX4UR                  '   g )Ns/   duplicated config item registration for '%s.%s')r    r   r   r   r$   r   ra   )r   argskwargsrH   r   r   s         r   	_registerr      sg    t&v&D$$T\\<>BGyyG@$$SLL$))+D%DEEDIIr   c                R    [         R                  " [        U 5      n[        Ul        U$ r#   )	functoolspartialr   r^   )r   fs     r   getitemregisterr      s!    )[1A%AHr   )
__future__r   r   r.   utilsr   r4   r   r   rk   rl   ModuleNotFoundError
thirdpartyr   r   r    dictr   rh   rn   rz   r}   	coreitemsr   objectr^   r   ru   r3   r   r   <module>r      s    #  	 
-LL!!- !-H&4 &R)@ #2#
 	 
 !+    -,-s   A1 1B ?B 