/usr/local/lib/python3.6/site-packages/pyparsing/__pycache__
Edit: /usr/local/lib/python3.6/site-packages/pyparsing/__pycache__/exceptions.cpython-36.pyc (9740B)
3
Eg<% @ s d dl Z d dlZd dlZddlmZmZmZmZmZ ddl m
Z G dd dejej
ejejejZeejZe jde d ZG d d
d
eZG dd deZG d
d deZG dd deZG dd deZdS ) N )collinelineno_collapse_string_to_rangesreplaced_by_pep8)pyparsing_unicodec @ s e Zd ZdS )_ExceptionWordUnicodeSetN)__name__
__module____qualname__ r
r
>/usr/local/lib/python3.6/site-packages/pyparsing/exceptions.pyr s r z([z
]{1,16})|.c @ s$ e Zd ZU dZeeee j
e jeee j
e f d)Zd*eee j
e d d
dZed+d
dZedd ZeedddZeedddZeedddZeedddZedd Zejdd ZedddZdd Zd,d!d"e j
e eed#d$d%Zd-edd&d'Ze d(eZ!dS ).ParseBaseExceptionz7base exception class for all parsing runtime exceptionslocmsgpstrparser_elementargsr N)r r r c C s> || _ |d kr|| _d| _n|| _|| _|| _|||f| _d S )N )r r r r r )selfr r r elemr
r
r __init__. s zParseBaseException.__init__ c C s ddl }ddlm} |dkr$tj }g }t| trX|j| j |jd| j d d |jt
| j d| |dkrdj|S |j
| j|d }t }x|| d D ]}|d }|jjd
d} t| |r$|jjjdsqt| |krq|jt| t
| }
|j|
j d
|
j d| nL| dk rPt
| }
|j|
j d
|
j n |j}|jdkrdq|j|j |d8 }|sP qW dj|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
_parseNoCache.z - wrapper
)r r )r" r# )inspectcorer sysgetrecursionlimit
isinstancer appendr columntyper
joingetinnerframes
__traceback__setf_localsgetf_codeco_name
startswithidaddr )excdepthr$ r retcallersseenfffrmf_self self_typecoder
r
r explain_exception? sF
z$ParseBaseException.explain_exceptionc C s | |j |j|j|jS )z
internal factory method to simplify creating one type of ParseException
from another - avoids having __init__ signature conflicts among subclasses
)r r r r )clsper
r
r _from_exception s z"ParseBaseException._from_exception)returnc C s t | j| jS )zG
Return the line of text where the exception occurred.
)r r r )r r
r
r r s zParseBaseException.linec C s t | j| jS )zV
Return the 1-based line number of text where the exception occurred.
)r r r )r r
r
r r s zParseBaseException.linenoc C s t | j| jS )z]
Return the 1-based column on the line of text where the exception occurred.
)r r r )r r
r
r r s zParseBaseException.colc C s t | j| jS )z]
Return the 1-based column on the line of text where the exception occurred.
)r r r )r r
r
r r* s zParseBaseException.columnc C s | j S )N)r )r r
r
r
parserElement s z ParseBaseException.parserElementc C s
|| _ d S )N)r )r r r
r
r rF s c C s | j rh| jt| j krd}qltj| j | j}|d k r@|jd}n| j | j| jd }d| jdd}nd}| j | d| j d | j d
| j d S )Nz, found end of textr r z
, found %rz\\\r z (at char z ), (line:z, col:))
r r len_exception_word_extractormatchgroupreplacer r r* )r foundstrZfound_matchfoundr
r
r __str__ s zParseBaseException.__str__c C s t | S )N)str)r r
r
r __repr__ s zParseBaseException.__repr__z>!<)markerString)
marker_stringrS rE c C sL |dk r|n|}| j }| jd }|rDdj|d| |||d f}|j 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 rT rS line_strline_columnr
r
r mark_input_line s
z"ParseBaseException.mark_input_linec C s | j | |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::
# an expression to parse 3 integers
expr = pp.Word(pp.nums) * 3
try:
# a failing parse - the third integer is prefixed with "A"
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``
)rA )r r8 r
r
r explain s 'zParseBaseException.explain
markInputline)r r r r r )r NN)r )N)r )"r
r r __doc__intr rQ r r typingAnyr TupleOptionalr __slots__r staticmethodrA classmethodrD propertyr r r r* rF setterrP rR rX rY r rZ r
r
r
r r sB
?+r c @ s e Zd ZdZdS )ParseExceptiona{
Exception thrown when a parse expression doesn't match the input string
Example::
integer = Word(nums).set_name("integer")
try:
integer.parse_string("ABC")
except ParseException as pe:
print(pe)
print(f"column: {pe.column}")
prints::
Expected integer (at char 0), (line:1, col:1) column: 1
N)r
r r r[ r
r
r
r rf s rf c @ s e Zd ZdZdS )ParseFatalExceptionzu
User-throwable exception thrown when inconsistent parse content
is found; stops all parsing immediately
N)r
r r r[ r
r
r
r rg s rg c @ s 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.
N)r
r r r[ r
r
r
r rh s rh c @ s&