@'
p d dl Z d dlZd dlZddlmZmZmZmZ ddlm Z
G d de
j e
j e
j
e
j e
j Z eej Z e j dez dz Z G d d
e Z G d de Z G d
de Z G d de Z G d de ZdS ) N )collinelineno_collapse_string_to_ranges)pyparsing_unicodec e Zd ZdS )ExceptionWordUnicodeN)__name__
__module____qualname__ /builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/exceptions.pyr
r
s Dr r
z([z
]{1,16})|.c e Zd ZdZ ddededej e fdZe dd Z
ed
Ze
defd Ze
defd
Ze
defd Ze
defd ZdefdZd ZddddedefdZddefdZeZdS )ParseBaseExceptionz7base exception class for all parsing runtime exceptionsr Npstrlocmsgc || _ ||| _ d| _ n|| _ || _ |x| _ | _ |||f| _ d S )N )r r r parser_element
parserElementargs)selfr r r elems r __init__zParseBaseException.__init__ sP ;DHDIIDHDI377d03$ r c ddl }ddlm} |t j }g }t | t r=| | j | d| j dz
z dz | d
t | j | |dk r|
| j | }t }t! || d D ]M\ }}|d } | j d d }
t |
| r| j j d
vrHt+ |
|v rZ| t+ |
t |
}| d
|j |j |
n|
Ct |
}| d
|j |j n?| j }|j d
v r| d
|j |dz }|s nOd | S )a
Method to take an exception and translate the Python internal traceback into a list
of the pyparsing expressions that caused the exception to be raised.
Parameters:
- exc - exception raised during parsing (need not be a ParseException, in support
of Python exceptions that might be raised in a parse action)
- depth (default=16) - number of levels back in the stack trace to list expression
and function names; if None, the full stack trace names will be listed; if 0, only
the failing input line, marker, and exception string will be shown
Returns a multi-line string listing the ParserElements and/or function names in the
exception's stack trace.
r Nr )
ParserElement ^z{}: {})contextr ) parseImpl
_parseNoCachez
{}.{} - {}z{}.{})wrapperzz{}
)inspectcorer sysgetrecursionlimit
isinstancer appendr columnformattyper getinnerframes
__traceback__set enumeratef_localsgetf_codeco_nameidaddr join)
excdepthr( r retcallersseenifffrmf_self self_typecodes
r explain_exceptionz$ParseBaseException.explain_exception) sW " ''''''=)++Ec-.. 5JJsx JJscj1n-3444
8??499#5s;;<<<199,,S->,NNG55D"7E677#344
2e))&$77fm44 :z)1OOO &zzT)) HHRZZ((( $VIJJ$++%0)2Df ' $VIJJw~~i.BIDVWWXXXX :D|'>>> JJt{{4<88999
E yy~~r c F | |j |j |j |j S )z
internal factory method to simplify creating one type of ParseException
from another - avoids having __init__ signature conflicts among subclasses
)r r r r )clspes r _from_exceptionz"ParseBaseException._from_exceptionk s# s27BFBFB,<===r returnc 6 t | j | j S )zG
Return the line of text where the exception occurred.
)r r r r s r r zParseBaseException.lines s
DHdi(((r c 6 t | j | j S )zV
Return the 1-based line number of text where the exception occurred.
)r r r rN s r r zParseBaseException.linenoz s
dh ***r c 6 t | j | j S z]
Return the 1-based column on the line of text where the exception occurred.
r r r rN s r r zParseBaseException.col
48TY'''r c 6 t | j | j S rQ rR rN s r r. zParseBaseException.column rS r c | j r| j t | j k rd}nut | j | j }|| d }n| j | j | j dz }d|z dd }nd}d | j || j | j | j
S ) Nz, found end of textr r z
, found %rz\\\r z%{}{} (at char {}), (line:{}, col:{}))r r len_exception_word_extractormatchgroupreplacer/ r r r. )r foundstrfound_matchfounds r __str__zParseBaseException.__str__ s 9 x3ty>>))0 8==diRR*'--a00EE IdhA&=>E(5099%FFH6==Hh$+t{
r c t | S N)strrN s r __repr__zParseBaseException.__repr__ s 4yyr z>!<)markerString
marker_stringc ||n|}| j }| j dz
}|r(d |d| |||d f }| S )z
Extracts the exception line from the input string, and marks
the location of the exception with a special symbol.
Nr r )r r. r; strip)r re rd line_strline_columns r mark_input_linez"ParseBaseException.mark_input_line sm
)6(A}}|9kAo ww,;,'x7MN H ~~r c . | | | S )a
Method to translate the Python internal traceback into a list
of the pyparsing expressions that caused the exception to be raised.
Parameters:
- depth (default=16) - number of levels back in the stack trace to list expression
and function names; if None, the full stack trace names will be listed; if 0, only
the failing input line, marker, and exception string will be shown
Returns a multi-line string listing the ParserElements and/or function names in the
exception's stack trace.
Example::
expr = pp.Word(pp.nums) * 3
try:
expr.parse_string("123 456 A789")
except pp.ParseException as pe:
print(pe.explain(depth=0))
prints::
123 456 A789
^
ParseException: Expected W:(0-9), found 'A' (at char 8), (line:1, col:9)
Note: the diagnostic output will include string representations of the expressions
that failed to parse. These representations will be more helpful if you use `set_name` to
give identifiable names to your expressions. Otherwise they will use the default string
forms, which may be cryptic to read.
Note: pyparsing's default truncation of exception tracebacks may also truncate the
stack of expressions that are displayed in the ``explain`` output. To get the full listing
of parser expressions, you may have to set ``ParserElement.verbose_stacktrace = True``
)rG )r r= s r explainzParseBaseException.explain s J %%dE222r )r NN)r ra )r r r
__doc__rb inttypingOptionalr staticmethodrG classmethodrK propertyr r r r. r_ rc rj rl
markInputliner r r r r s AA $(
% %% % _S
! % % % %" ? ? ? \?B > > [> )c ) ) ) X) + + + + X+ (S ( ( ( X( ( ( ( ( X(
$ S SV %3 %33 %3 %3 %3 %3N $MMMr r c e Zd ZdZdS )ParseExceptionaq
Exception thrown when a parse expression doesn't match the input string
Example::
try:
Word(nums).set_name("integer").parse_string("ABC")
except ParseException as pe:
print(pe)
print("column: {}".format(pe.column))
prints::
Expected integer (at char 0), (line:1, col:1)
column: 1
Nr r r
rm r r r rv rv s r rv c e Zd ZdZdS )ParseFatalExceptionzu
User-throwable exception thrown when inconsistent parse content
is found; stops all parsing immediately
Nrw r r r ry ry s r ry c e Zd ZdZdS )ParseSyntaxExceptionz
Just like :class:`ParseFatalException`, but thrown internally
when an :class:`ErrorStop` ('-' operator) indicates
that parsing is to stop immediately because an unbacktrackable
syntax error has been found.
Nrw r r r r{ r{ s r r{ c $ e Zd ZdZd ZdefdZdS )RecursiveGrammarExceptionz
Exception thrown by :class:`ParserElement.validate` if the
grammar could be left-recursive; parser may need to enable
left recursion using :class:`ParserElement.enable_left_recursion`
c || _ d S ra )parseElementTrace)r parseElementLists r r z"RecursiveGrammarException.__init__ s !1r rL c 6 d | j S )NzRecursiveGrammarException: {})r/ r rN s r r_ z!RecursiveGrammarException.__str__
s .55d6LMMMr N)r r r
rm r rb r_ r r r r} r} sO 2 2 2N N N N N N Nr r} )rer* ro utilr r r r unicoder ppuLatin1LatinALatinBGreekCyrillicr
alphanums_extract_alphanumscompilerX Exceptionr rv ry r{ r} r r r r s
? ? ? ? ? ? ? ? ? ? ? ? - - - - - - 3:sz3:sy#, 0/0D0NOO &BJt.@'@<'OPP F$ F$ F$ F$ F$ F$ F$ F$R ' ( , . N N N N N N N N N Nr