fhg8 tddlZddlZddlmZmZddlZddlZddlZddlm Z m Z m Z m Z m Z ddlZedZe de ZGddZed d ed ed efdZed d ed ed efdZed d ed ed efdZGddZGddZGddZGddeZded efdZGddZ d-de ee efded efdZ d e d e!fd!Z" d.dd#d$d%e ed&ed'ed(ed ef d)Z#d*ed+ed efd,Z$dS)/N) lru_cachewraps)CallableUnionIterableTypeVarcast\C)boundceZdZUdZgZeeed<gZeeed<dZ e dZ e dZ e dZ dS) __config_flagsz=Internal class for defining compatibility and debugging flags _all_names _fixed_names configurationc6||jvr[tj|jd|d|jdt t ||dddS||jvrt|||dStd|jd|)N. z is z and cannot be overridden) stacklevelzno such ) rwarningswarn__name__ _type_descstrgetattrupperrsetattr ValueError)clsdnamevalues ^/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/pyparsing/util.py_setz__config_flags._sets C$ $ $ M<--%--#.--c'#uBUBU>V>V>\>\>^>^---     F CN " " C & & & & &BBBBBCC Cc.||dS)NTr$r names r#z__config_flags.$s388D$+?+?r%c.||dS)NFr'r(s r#r*z__config_flags.%sCHHT5,A,Ar%N)r __module__ __qualname____doc__rlistr__annotations__rr classmethodr$enabledisabler%r#rrsGGJS  L$s)    J D D[ D[?? @ @FkAABBGGGr%r)maxsizelocstrgreturnc|}d|cxkrt|krnn||dz dkrdn||dd|z S)a Returns current column within a string, counting newlines as line separators. The first column is number 1. Note: the default parsing behavior is to expand tabs in the input string before starting the parsing process. See :class:`ParserElement.parse_string` for more information on parsing strings containing ```` s, and suggested methods to maintain a consistent view of the parsed string, the parse location, and line and column positions within the parsed string. r )lenrfind)r7r8ss r#colr@(sc AC    #a&&     QsQwZ4%7%711S1774QRTWCXCX=XXr%c6|dd|dzS)aReturns current line number within a string, counting newlines as line separators. The first line is number 1. Note - the default parsing behavior is to expand tabs in the input string before starting the parsing process. See :class:`ParserElement.parse_string` for more information on parsing strings containing ```` s, and suggested methods to maintain a consistent view of the parsed string, the parse location, and line and column positions within the parsed string. r<rr;)count)r7r8s r#linenorC9s ::dAs # #a ''r%c|dd|}|d|}|dkr ||dz|n ||dzdS)zh Returns the line of text containing loc within a string, counting newlines as line separators. r<rr;N)r>find)r7r8last_crnext_crs r#linerHGsZ jjq#&&Giic""G*1Q,,4! g% & &D1.getW9S,// /r%c||<dSrMr4)rOrPr"caches r#set_z&_UnboundedCache.__init__..set_ZsE#JJJr%c0dSrMclearrOrVs r#rZz'_UnboundedCache.__init__..clear] KKMMMMMr%)rSobjectrRsizetypes MethodTypesetrZ)selfrSrWrZrVrQrRs @@@r#__init__z_UnboundedCache.__init__RsI +1883L 0 0 0 0 0 0           #C..#D$//%eT22 r%Nrr,r-rcr4r%r#rJrJQs#33333r%rJceZdZdZdS) _FifoCachec(i|_tx|_jjfd}fd}fd}t j|||_t j|||_t j|||_dS)Nc|SrMr4rNs r#rSz _FifoCache.__init__..getnrTr%c||<tkr:tttk8dSdSrM)r=nextiter)rOrPr"rV cache_popr^s r#rWz!_FifoCache.__init__..set_qsZE#Je**t## $tE{{++,,,e**t######r%c0dSrMrYr[s r#rZz"_FifoCache.__init__..clearwr\r%) r^r]rRrSpopr_r`rarZ) rbr^rSrWrZrVrQrlrRs ` @@@@r#rcz_FifoCache.__init__gs +1883LI I  0 0 0 0 0 0 - - - - - - -      #C..#D$//%eT22 r%Nrdr4r%r#rfrffs#33333r%rfc0eZdZdZdZdZdZdZdZdS)LRUMemoz A memoizing mapping that retains `capacity` deleted items The memo tracks retained items by their access order; once `capacity` items are retained, the least recently used item is discarded. c0||_i|_i|_dSrM) _capacity_active_memory)rbcapacitys r#rczLRUMemo.__init__s!  r%c |j|S#t$r2|j||j|<|j|cYSwxYwrM)rsKeyErrorrtrnrbrPs r# __getitem__zLRUMemo.__getitem__s^ %<$ $ % % % $ 0 0 5 5DL <$ $ $ $ %s 9A  A cP|j|d||j|<dSrM)rtrnrs)rbrPr"s r# __setitem__zLRUMemo.__setitem__s, d###! Sr%c |j|}t|jd|jdz }|D]}|j|||j|<dS#t $rYdSwxYwNr;)rsrnr/rtrrrw)rbrPr" oldest_keys key_to_deletes r# __delitem__zLRUMemo.__delitem__s &L$$S))Et|,,-D!1C/D-DEK!, 0 0    //// %DL        DD sA,, A:9A:cj|j|jdSrM)rsrZrtrbs r#rZz LRUMemo.clears0  r%N) rr,r-r.rcryr{rrZr4r%r#rprpsi %%%""" & & &r%rpceZdZdZdZdS) UnboundedMemoz< A memoizing mapping that retains all deleted items cdSrMr4rxs r#rzUnboundedMemo.__delitem__s r%N)rr,r-r.rr4r%r#rrs-     r%rr?cdD] }||t|z}!|dd}|dd}t|S)Nz\^-[]r<z\n z\t)replace_bslashr)r?cs r#_escape_regex_range_charsrs[ && IIa1 % % $A $A q66Mr%c*eZdZdZddZdedefdZdS)_GroupConsecutiveaQ Used as a callable `key` for itertools.groupby to group characters that are consecutive: itertools.groupby("abcdejkmpqrs", key=IsConsecutive()) yields: (0, iter(['a', 'b', 'c', 'd', 'e'])) (1, iter(['j', 'k'])) (2, iter(['m'])) (3, iter(['p', 'q', 'r', 's'])) r9NcRd|_tj|_d|_dS)Nr)prev itertoolsrBcounterr"rs r#rcz_GroupConsecutive.__init__s#  ((  r%charct|}||jc|_}||z dkrt|j|_|jSr})ordrrjrr")rbrc_intrs r#__call__z_GroupConsecutive.__call__sDD  4 4 'a' -> '[a]' 'bc' -> 'bc' -> '[bc]' 'defgh' -> 'd-h' -> '[d-h]' 'fdgeh' -> 'd-h' -> '[d-h]' 'jklnpqrtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]' Duplicates get collapsed out: 'aaa' -> 'a' -> '[a]' 'bcbccb' -> 'bc' -> '[bc]' 'defghhgf' -> 'd-h' -> '[d-h]' 'jklnpqrjjjtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]' Spaces are preserved: 'ab c' -> ' a-c' -> '[ a-c]' Characters that are significant when defining regex ranges get escaped: 'acde[]-' -> r'\-\[\]ac-e' -> r'[\-\[\]ac-e]' rr9c|dvrd|zn|S)Nz\^-][\r4rs r#escape_re_range_charz8_collapse_string_to_ranges..escape_re_range_chars==taxxa/r%c|SrMr4rs r#no_escape_re_range_charz;_collapse_string_to_ranges..no_escape_re_range_charsr%rPNr;-c&g|] }|Sr4r4).0rrs r# z._collapse_string_to_ranges..!s%8881##A&&888r%)rsortedrar=rgroupbyrrj contextlibsuppressrappendchrrjoin) r?rrrets_charsrOcharsfirstlastrs @r#_collapse_string_to_rangesrs'@00000033 76 C AG 7||a")'7H7J7JKKK  HAu ;; &ED$Z00 ! ! D ! ! ! ! ! ! ! ! ! ! ! ! ! ! !}} //667777SZZ!^,,,, 22599W;O;OPT;U;UWWXXXX  ++E22QQ5I5I$5O5OQQ) <9888888 773<<s-B??C C llcg}g|}|r^|d}t|trt|ts||dd<n|||^|S)Nr)rn isinstancerrr)rrto_visitis r#_flattenr&sy CuH  LLOO a " " :a+=+= HRaRLL JJqMMM  Jr%rr;non_capturing_groups_level word_list max_levelrrc dttfd}|dkr%|stdd|vrtdn|sdSti|}|dkrpt d|Dr4d t d |Dtd Sd dd|DdSg}d}|rdnd}|t |D]2\}} ||d }tj |}d} d| vrd} | dt| dkrLtd| Dr;||d dd| Dd| ||krCtt | |||dz} ||d|| d| td| Dr<||d dd| Dd| T| td ||d|d d| Dd| | rmtj | d} t| dkr#| r!||d|| d| ||| | ||4d|S)z Create a regular expression string from a list of words, collapsing by common prefixes and optional suffixes. Calls itself recursively to build nested sublists for each group of suffixes that have a shared prefix. namelistc3Kt|dkrDtj|dD]*\}}|td|DtdfV+dS|dd|dddgfVdS)Nr;c|ddSr}r4)r?s r#r*zOmake_compressed_re..get_suffixes_from_common_prefixes..CsaPRQRPRer%rc"g|] }|dd Sr;Nr4rr?s r#rzQmake_compressed_re..get_suffixes_from_common_prefixes..Ds %>%>%>ae%>%>%>r%TrPreverser)r=rrr)rprefixsuffixess r#!get_suffixes_from_common_prefixesz=make_compressed_re..get_suffixes_from_common_prefixesAs x==1  $-$5hOO$T$T$T W W f%>%>X%>%>%>CQUVVVVVVVV W W1+a.8A;qrr?"33 3 3 3 3 3r%r;z&no words given to make_compressed_re()rz%word list cannot contain empty stringrc3<K|]}t|dkVdSrr=rwds r# z%make_compressed_re..Ws,//rs2ww{//////r%|c6g|]}tj|Sr4reescapers r#rz&make_compressed_re..Ys :::" " :::r%Tr[c34K|]}t|VdSrMrrs r#rz%make_compressed_re..\s+QQ8<<QQQQQQr%]z?:?c3<K|]}t|dkVdSrrrs r#rz%make_compressed_re..ns,1113q66Q;111111r%c34K|]}t|VdSrMrrs r#rz%make_compressed_re..ps+(X(X!)B1)E)E(X(X(X(X(X(Xr%r()c3<K|]}t|dkVdSrrrs r#rz%make_compressed_re..|s,9913q66Q;999999r%c34K|]}t|VdSrMrrs r#rz%make_compressed_re..~s,0`0`RS1J11M1M0`0`0`0`0`0`r%c3>K|]}tj|VdSrMrrs r#rz%make_compressed_re..s*:Z:ZA29Q<<:Z:Z:Z:Z:Z:Zr%)r/rrfromkeysanyrrr=rrrremoveallmake_compressed_resort) rrrrrrsepncgroupinitialrtrailing suffix_resuffixs r#rr2s4DI4444{{ GEFF F ??DEE E  2R[[++,,IA~~ //Y/// / / U88:: :::TRRR UrwwQQyQQQQQTTT T C C*2ddG>>vi?P?PQQ+$+$ 3)G$$ >>H OOB    x==1  1111111  ee(X(Xx(X(X(X!X!Xee[ceeI%% 2x((!-A%z !!!I JJ'KKGKYKKKKLLLL9999999 &mm0`0`W_0`0`0`)`)`mmckmm! #t <<< &ggg#((:Z:ZQY:Z:Z:Z2Z2Zgg]egg $8A;//v;;??x?JJ'HHGHVHHhHHIIIIJJ'=6=8==>>>> 7#### 773<<r% compat_namefncHtddgttjjddkrt fd}nt fd}djd|_||_j|_ttj r j |_ n>ttr"tdrjj |_ nd|_ j|_t#t$|S) N__func__rbr;c|g|Ri|SrMr4)rbargskwargsrs r#_innerz replaced_by_pep8.._inners% 2d,T,,,V,, ,r%c|i|SrMr4)rrrs r#rz replaced_by_pep8.._inners 2t&v&& &r%zDeprecated - use :class:``rc)rr/inspect signature parametersrrr.r0rr_ FunctionType__kwdefaults__typehasattrrcr-r r )rrrs ` r#replaced_by_pep8rs< Z $ $B x4)"--899"1"=== r - - - -  - - r ' ' ' '  ' D2;CCCFN!FO/F"e())% " 1 B  %'"j"9"9% " : $/F 6??r%)T)r)%rr functoolsrrrrr_typingrrrrr rrrr rrrr@rCrHrJrfrpdictrrrboolrr/rrrr4r%r#rs &&&&&&&& ;;;;;;;;;;;;;; #b'' GCx   CCCCCCCC2 3 YS Y Y Y Y Y Y  3 ( (3 (3 ( ( ( ( 3PcPPPPPP33333333*333333332%%%%%%%%P     D   459QQ S(3-  Q-1QQQQQh  d    \"& \\\}\\ \  \  \\\\~%#%1%%%%%%%r%