Files
intellecton/venv/lib/python3.12/site-packages/pyparsing/__pycache__/util.cpython-312.pyc
T

182 lines
23 KiB
Plaintext
Raw Normal View History

Ë
vRj}>ã ó°ddlZddlZddlmZmZddlZddlZddlZddlm Z m
Z
m Z m Z m
Z
mZddlZddlmZmZed«Ze de ¬«ZGd „d
«Zed ¬ «d
ededefd«Zed ¬ «d
ededefd«Zed ¬ «d
ededefd«ZGdd«ZGdd«ZGdd«ZGdde«ZdedefdZ Gdd«Z!ee"fe#fdZ$d edefd!„Z% d9de
ee efd#e&defd$„Z'd%e de(fd&„Z)dedefd'„Z* d:d"dd(œd)e ed*ed+e&d,edef
d-„Z+d.ed/edefd0„Z,ejZd1«fdedefd2„Z. d;d3d4œd5eeefd6ed7edefd8„Z/y)<éN)Ú lru_cacheÚwraps)ÚCallableÚUnionÚIterableÚTypeVarÚcastÚAnyé)ÚPyparsingDeprecationWarningÚPyparsingDiagnosticWarningé\ÚC)ÚboundcóreZdZUdZgZeeed<gZeeed<dZ e
d«Z e
d«Z e
d«Z
y) Ú__config_flagsz=Internal class for defining compatibility and debugging flagsÚ
_all_namesÚ _fixed_namesÚ
configurationcóH||jvr^tj|jd|d|jdt t
||««j«dtd¬«y||jvrt|||«ytd|jd|«) z is z and cannot be overriddené©Ú
stacklevelzno such ) rÚwarningsÚwarnÚ__name__Ú
_type_descÚstrÚgetattrÚupperr
rÚsetattrÚ
ValueError)ÚclsÚdnameÚvalues úQ/home/antigravity/intellecton/venv/lib/python3.12/site-packages/pyparsing/util.pyÚ_setz__config_flags._setà C× M‰MØ—<<.  % ¨¨#¯.©.Ð)9¸¼cÄ'È#ÈuÓBUÓ>V×>\Ñ>\Ó>^Ð=_Øõ 
ð
Ø C—N C˜ Õ ˜¯©Ð'7°q¸¸ Ð có&|j|d«S)NT©r)©r%Únames r(ú<lambda>z__config_flags.<lambda>'s¨3¯8©8°D¸$Ó+?€r*có&|j|d«S)NFr,r-s r(r/z__config_flags.<lambda>(s¨C¯H©H°T¸5Ó,A€r*N)rÚ
__module__Ú __qualname__Ú__doc__rÚlistr Ú__annotations__rrÚ classmethodr)ÚenableÚdisable©r*r(rrsRÙ€JS‘ ÓØ €L$s‘)Ó Ø €Jàñ Dóð DñÑ
@€FÙÑBGr*ré€)ÚmaxsizeÚlocÚstrgÚreturncóz|}d|cxkrt|«krnn
||dz
dk(rdS||jdd|«z
S)
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
:meth:`ParserElement.parse_string` for more
information on parsing strings containing ``<TAB>`` 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.
rr ú
)ÚlenÚrfind)r<r=Úss r(ÚcolrD+sGð
€AØ œ#˜a  Q s¨Q¡w¡Z°4Ò%7ˆX¸SÀ1Ç7Á7È4ÐQRÐTWÓCXÑ=XÐXr*có.|jdd|«dzS)Returns 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 :meth:`ParserElement.parse_string`
for more information on parsing strings containing ``<TAB>`` 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)r<r=s r(ÚlinenorG<sð :‰:d˜A˜ #  'r*cóv|jdd|«}|jd|«}|dk\r||dz|S||dzdS)zh
Returns the line of text containing loc within a string, counting newlines as line separators.
r@rr N)rBÚfind)r<r=Úlast_crÚnext_crs r(ÚlinerLJsMð
j‰j˜˜q &€GØi‰i˜˜"€GØ*1°Qª,ˆ4˜! ˜ O¸È1ÁÀÐ<OÐOr*cóeZdZdZy)Ú_UnboundedCachecóiŠjŠt«x|_Šˆˆfd}ˆfd}ˆfd}d|_t j
||«|_t j
||«|_t j
||«|_y)Ncó|«S©Nr9©ÚkeyÚ cache_getÚ not_in_caches €€r(Úgetz%_UnboundedCache.__init__.<locals>.getZóø€Ù˜S  /r*có||<yrQr9)rSrTr'Úcaches €r(Úset_z&_UnboundedCache.__init__.<locals>.set_]s ø€ØˆE#ŠJr*có&j«yrQ©Úclear©rSrZs €r(r^z'_UnboundedCache.__init__.<locals>.clear`ó ø€Ø K‰KMr*)rWÚobjectrVÚsizeÚtypesÚ
MethodTypeÚsetr^)ÚselfrWr[r^rZrUrVs @@@r(Ú__init__z_UnboundedCache.__init__Ustú€ØˆØ—I‘Iˆ Ü+1«8ÐÔ˜Lõ ô ðˆŒ Ü×# C¨ÓŒÜ×# D¨$ÓŒÜ×% e¨TÓ
r*rr1r2rgr9r*r(rNrNTsó3r*rNcóeZdZdZy)Ú
_FifoCachecó8iŠ|_t«x|_ŠjŠjŠˆˆfd}ˆˆˆfd}ˆfd}t j ||«|_t j ||«|_t j ||«|_y)Ncó|«SrQr9rRs €€r(rWz _FifoCache.__init__.<locals>.getqrXr*có€||<t«kDr*tt«««t«kDrŒ)yyrQ)rAÚnextÚiter)rSrTr'rZÚ cache_poprbs €€€r(r[z!_FifoCache.__init__.<locals>.set_ts7ø€ØˆE#‰JÜe“*˜tÒœ$œt E›{Óe“*˜#r*có&j«yrQr]r_s €r(r^z"_FifoCache.__init__.<locals>.clearzr`r*) rbrarVrWÚpoprcrdrer^) rfrbrWr[r^rZrUrprVs ` @@@@r(rgz_FifoCache.__init__js}ü€ØˆØˆŒ Ü+1«8ÐÔ˜LØ—I‘Iˆ Ø—I‘Iˆ õ  ô×# C¨ÓŒÜ×# D¨$ÓŒÜ×% e¨TÓ
r*Nrhr9r*r(rjrjisó3r*rjcó.eZdZdZdZdZdZdZdZy)Ú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.
có.||_i|_i|_yrQ)Ú _capacityÚ_activeÚ_memory)rfÚcapacitys r(rgzLRUMemo.__init__Šs،؈Œ ؈ r*có® |j|S#t$r:|jj|«|j|<|j|cYSwxYwrQ)rwÚKeyErrorrxrr©rfrTs r(Ú __getitem__zLRUMemo.__getitem__sQð—<< Ñ $øÜò %Ø $§ ¡ × 0Ñ 0°Ó 5ˆDL‰L˜Ñ Ø—<< Ñ  %úsAAÁAcóZ|jj|d«||j|<yrQ)rxrrrw)rfrTr's r(Ú __setitem__zLRUMemo.__setitem__s$Ø ×ј˜dÔ r*có |jj|«}t|j«d|jdz }|D]}|jj|«Œ||j|<y#t
$rYywxYw©Nr )rwrrr4rxrvr{)rfrTr'Ú oldest_keysÚ
key_to_deletes r(Ú __delitem__zLRUMemo.__delitem__šsð—LL×$ )ˆ˜tŸ|™|Ó,Ð-D°·±À!Ñ1CÐ/DÐEˆKØ!,ò
0
Ø × Ñ  Õ
0à %ˆDL‰L˜Ò øô
ò Ù ð úsA5Á5 BÂBcól|jj«|jj«yrQ)rwr^rx©rfs r(r^z
LRUMemo.clear¥s"Ø ×ÑÔØ ×ÑÕr*N) rr1r2r3rgr}rr„r^r9r*r(rtrts ñòò
 r*rtcóeZdZdZdZy)Ú
UnboundedMemoz<
A memoizing mapping that retains all deleted items
cóyrQr9r|s r(r„zUnboundedMemo.__delitem__¯sØ r*N)rr1r2r3r„r9r*r(rˆrˆªs ñó
r*rˆrCcó dD]}|j|t|z«}Œ|jdd«}|jdd«}t|«S)Nz\^-[]r@z\nú z\t)ÚreplaceÚ_bslashr )rCÚcs r(Ú_escape_regex_range_charsr³sNà
ò&ˆØ
I‰I 1™Ó %‰ð $˜Ó€AØ Ó€AÜ ˆq6€Mr*có(eZdZdZddZdedefdZy)Ú_GroupConsecutiveaû
Used as a callable `key` for itertools.groupby to group
characters that are consecutive:
.. testcode::
from itertools import groupby
from pyparsing.util import _GroupConsecutive
grouped = groupby("abcdejkmpqrs", key=_GroupConsecutive())
for index, group in grouped:
print(tuple([index, list(group)]))
prints:
.. testoutput::
(0, ['a', 'b', 'c', 'd', 'e'])
(1, ['j', 'k'])
(2, ['m'])
(3, ['p', 'q', 'r', 's'])
r>NcóRd|_tj«|_d|_y)Nréÿÿÿÿ)ÚprevÚ itertoolsrFÚcounterr'r†s r(rgz_GroupConsecutive.__init__Ôs؈Œ ÜÓŒ ؈
r*Úcharcóœt|«}||jc|_}||z
dkDrt|j«|_|jSr)Úordr”rnrr')rfr—Úc_intr”s r(Ú__call__z_GroupConsecutive.__call__ÙsBÜD“ ˆØ §¡ˆˆŒ 4‰<˜!Ò Ü˜dŸl™lÓ+ˆDŒJØz‰zÐr*)r>N)rr1r2r3rgr Úintrr9r*r(rr¼sñó.ð
˜ r*rcóLt||«ry t|«y#|$rYywxYw)NFT)Ú
isinstancero)ÚobjÚ _str_typeÚ_iter_exceptions r(Ú _is_iterabler¢ás4ä#ðÜ ˆSŒ ðøð òÙðús #¢#có|dvrd|S|S)Nz\^-][ú\r9)s r(Ú_escape_re_range_charr¥îsؘH‘}ˆaˆsˆ+¨!Ð+r*TÚ re_escapecó~|rt}nd}g}tt|««}t|«dkDr×t j
|t
«¬«D]´\}}t|«x}}tjt«5|^}}ddd«||k(r|j||««ŒW|tt|«dz«k(r"|j||«||««Œ“|j||«d||««Œ¶n|D cgc]
} || «Œ }} dj|«S#1swYŒ­xYwcc} w)a(
Take a string or list of single-character strings, and return
a string of the consecutive characters in that string collapsed
into groups, as might be used in a regular expression '[a-z]'
character set::
'a' -> '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]'
có|SrQr9)Ússs r(r/z,_collapse_string_to_ranges.<locals>.<lambda>s¨"€r*é©rTNr ú)ÚsortedrerAr•ÚgroupbyrrnÚ
contextlibÚsuppressr$ÚappendÚchrr™Újoin)
rCÚescape_re_range_charÚretÚs_charsrSÚcharsÚfirstÚlastrŽs
r(Ú_collapse_string_to_rangesr»òsBñPÜáà
€Cô ¤ A£€Gä
ˆ7ƒ|ô"×)¨'Ô7HÓ7JÔ ‰HˆAˆ   &ˆE×$¤ZÓ
 
˜Š}à
ÑÓœœS ›Z¨!™^Ó
Ñ2°5Ó:Ñ;OÐPTÓ;UÐ:VÐ

Ù+¨EÓ3°1Ñ5IÈ$Ó5OÐ4PÐñ) ð<18Ö8¨1Ñ# 8ˆÐ
7‰73÷7

!üò29sÁ<D.Ä D:Ä.D7 ÚllcóÔg}|D]`}t|t«r|j|«Œ%t|t«r|j t |««ŒP|j|«Œb|SrQ)r rÚextendÚ_flatten)Úis r(r¿r¿JsYØ
€CØ
ò ˆô Ô Ø J‰Jq
˜œ8Ô
J‰J”x “{Õ J‰Jq ð €Jr*cóÊ|dk(ry|j«r#t|«dk(rtt|d««S|j d«rtt|ddd««S|S)ré)Úxr é)ÚisdigitrAÚ
startswith©rCs r(Ú!_convert_escaped_numerics_to_charrËYsW؈C‚xØØ‡yy„{”s˜1“v ’{Ü”3q˜!“9Ø
jÔ !Ü”3q˜˜u˜b“>Ó €Hr*©Únon_capturing_groupsÚ_levelÚ word_listÚ max_levelrÍc
ó˜dttfd}|dk(r|s td«d|vrtd«|sytij|««}|dk(rpt d|D««rBd j t
|Dcgc]}tj|«Œc}td
¬ ««Sd dj d
|D««dSg}d}|rdnd}|t
|««D\} }
|j|«d }tj| «} d} d|
vrd} |
jd«t|
«dkDr td|
D««r0|j| d dj d|
D««d| «Œ™||kr7tt
|
«|||dz¬«} |j| d|| d| «ŒÕtd|
D««r1|j| d dj d|
D««d| «Œ|
jtd
¬ «|j| d|d j d|
D««d| «Œb|
r^tj|
d«}
t|
«dkDr| r|j| d||
d| «Œ©|j| |
| «ŒÂ|j| «ŒÕdj |«Scc}w)
Create a regular expression string from a list of words, collapsing by common