
    6hy                        S SK Jr  S SKrS SKJrJrJr  SSKJr  SSKJ	r	  SSK
JrJr  \R                  (       a  SSK
Jr  \\\4   r    S           SS	 jjr       S                 SS
 jjrS rg)    )annotationsN)AnyDictOptional   )_)nullrev)mdiffpycompat)uic                "    [        U UUUSSSUS9$ )z6return diffopts with all features supported and parsedT)opts	untrustedsectiongit
whitespaceformatchangingconfigprefix)difffeatureopts)r   r   r   r   r   s        4/usr/lib/python3/dist-packages/mercurial/diffutil.pydiffalloptsr   #   s)     
!	 	    c                  ^ ^^^^ ST R                   S4       S*UUUU U4S jjjnU" S5      U" SS5      U" ST R                  S9S.n	T R                  S	S
5      U	S
'   U(       aq  U" S5      U	S'   T R                  S	S5      U	S'   T R                  S	S5      n
U
b<  Sn [        U
5      nUS:  d  US:  a  [        S5      nT R	                  X-  5        XS'   U(       a0  U" SS5      U	S'   U" SS5      U	S'   U" SS5      U	S'   U" SS 5      U	S '   U(       aX  Tc  SOTR                  S!5      U	S!'   Tc  SOTR                  S"5      nUb  U(       + OU" S#S$S%9U	S#'   U" S&S$S%9U	S&'   U" S'S(S$S%9U	S)'   [        R                  " S+0 [        R                  " U	5      D6$ ! [
         aB    U
S:X  d  U
S:X  a  Sn NU
S:X  a  Sn NU
S:w  a  [        S5      nT R	                  X-  5         GNf = f! XS'   f = f),zreturn diffopts with only opted-in features parsed

Features:
- git: git-style diffs
- whitespace: whitespace options like ignoreblanklines and ignorews
- formatchanging: options that will likely break or cause correctness issues
  with most diff parsers
Nc                   > T(       a/  TR                  U 5      nU(       d  [        U[        5      (       a  U$ Ub  TR                  5       (       a  U$ U" TTU=(       d    U -   T	S9$ )N)r   )get
isinstanceboolplain)
keynamegetter
forceplainvr   r   r   r   r   s
        r   r   difffeatureopts.<locals>.getJ   s^     A Jq$''!bhhjj\T[S1Y
 	
r      nodatess   show_function   showfuncs   unified)r!   )r%   r&   s   contexts   experimentals   xdiffs   gits   extendedheader.similaritys   showsimilaritys   extendedheader.indexr   (   s.   invalid length for extendedheader.index: '%d'
s   shortr      s   fulls   nones-   invalid value for extendedheader.index: '%s'
s   indexs   ignore_all_spaces   ignorewss   ignore_space_changes   ignorewsamounts   ignore_blank_liness   ignoreblankliness   ignore_space_at_eols   ignorewseols   texts   binarys   nobinaryF)r"   s   noprefixs	   word_diffs	   word-diffs   worddiff)r   bytesr    zOptional[bytes]r"   zOptional[bool]returnr    )
configboolconfigintr   warn
ValueErrorr   r
   diffoptsr   	strkwargs)r   r   r   r   r   r   r   r   r   	buildoptshconfhlenmsgbinarys   ````   `      r   r   r   7   s\   * !%}}%)	


 #	

 

 
2 
O);7
2995I
 --BIh
K	& (*}}9(
	#$ 		/+BCD+ 5z!8tbyNOCGGCJ' '+(#!$%8+!F	+'*"$5(
	#$ *-!#6*
	%& %((>$O	.!%)\Ttxx7H	'488I+> ! J[U3 	+
 "%[U!C	+!$,5"
	+ >>:H..y9::E  )H$Dg%Dg%MNCGGCK() '+(#s<   5F G#/G& 1G#9G& ;$G#G& "G##G& &G,c                Z   U R                  5       nUR                  R                  SS5      (       a  U R                  5       R	                  5       [
        :w  a  SSKJnJn  UR                  U5      nUR                  U R                  5       5        UR                  R                  SS0S5         UR                  R                  5          UR                  U R                  5       US9  S	S	S	5        S	S	S	5        U$ U R                  5       $ ! , (       d  f       N(= f! , (       d  f       U$ = f)
zget the context object to use as parent when diffing


If diff.merge is enabled, an overlayworkingctx of the auto-merged parents will be returned.
   diffs   merger   )contextmerge)s   uis
   forcemerges#   internal:merge3-lie-about-conflictss
   merge-diff)wcN)repor   r,   p2revr	    r:   r;   overlayworkingctxsetbasep1configoverridesilent)ctxr=   r:   r;   wctxs        r   diff_parentrH      s     88:Dww'8,,71J	

 ((.SVVXWW## :	 
 !CFFH. "
 vvx	 "!
 
 s$   .D	D
(D

D	D
D*)NFr9   r   )r   uimod.uir   Optional[_Opts]r   r   r   r)   r   r)   r*   mdiff.diffopts)NFr9   FFFr   )r   rI   r   rJ   r   r   r   r)   r   r   r   r   r   r   r   r)   r*   rK   )
__future__r   typingr   r   r   i18nr   noder	   r@   r
   r   TYPE_CHECKINGr   uimodr)   _Optsr   r   rH   r+   r   r   <module>rS      s   #    
 
 	UCZ
 !
  	
  , ! i;i;
i; i; 	i;
 
i; i; i; i; i;Xr   