Submit
Path:
~
/
/
proc
/
thread-self
/
root
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
pyparsing
/
__pycache__
/
File Content:
exceptions.cpython-37.pyc
B �f%d?# � @ s� d dl Z d dlZd dlZddlmZmZmZmZ ddlm Z G dd� de je je j e je j�Zeej�Ze �de d �ZG d d � d e�ZG dd� de�ZG d d� de�ZG dd� de�ZG dd� de�ZdS )� N� )�col�line�lineno�_collapse_string_to_ranges)�pyparsing_unicodec @ s e Zd ZdS )�ExceptionWordUnicodeN)�__name__� __module__�__qualname__� r r �E/opt/alt/python37/lib/python3.7/site-packages/pyparsing/exceptions.pyr s r z([z ]{1,16})|.c @ s� e Zd ZdZd eeeje d�dd�Ze d!dd ��Z ed d� �Ze ed�d d��Ze ed�dd��Ze ed�dd��Ze ed�dd��Zed�dd�Zdd� Zd"dd�eed�dd�Zd#ed�dd�ZeZdS )$�ParseBaseExceptionz7base exception class for all parsing runtime exceptionsr N)�pstr�loc�msgc C sD || _ |d kr|| _d| _n|| _|| _| | _| _|||f| _d S )N� )r r r Zparser_element� parserElement�args)�selfr r r �elemr r r �__init__ s zParseBaseException.__init__� c C s� ddl }ddlm} |dkr$t�� }g }t| t�rV|�| j� |�d| j d d � |�d� t| �j| �� |dk�rz|j | j|d�}t� }x�t|| d� �D ]�\}}|d } | j�d d�} t| |��r| jjd kr�q�t| �|kr�q�|�t| �� t| �}|�d� |j|j| �� nP| dk �rBt| �}|�d� |j|j�� n&| j}|jd k�rVq�|�d� |j�� |d8 }|s�P q�W d�|�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 )Z parseImplZ _parseNoCachez {}.{} - {}z{}.{})�wrapperz<module>z{}� )�inspectZcorer �sys�getrecursionlimit� isinstancer �appendr �column�format�typer Zgetinnerframes� __traceback__�set� enumerate�f_locals�get�f_code�co_name�id�addr �join) �exc�depthr r ZretZcallers�seen�iZffZfrmZf_selfZ self_type�coder r r �explain_exception) sH z$ParseBaseException.explain_exceptionc C s | |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 )�clsZper r r �_from_exceptionk s z"ParseBaseException._from_exception)�returnc C s t | j| j�S )zG Return the line of text where the exception occurred. )r r r )r r r r r s s zParseBaseException.linec C s t | j| j�S )zV Return the 1-based line number of text where the exception occurred. )r r r )r r r r r z s zParseBaseException.linenoc C s t | j| j�S )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| j�S )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 rh| jt| j �krd}qlt�| j | j�}|d k r@|�d�}n| j | j| jd � }d| �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_extractor�match�group�replacer% r r r$ )r ZfoundstrZfound_match�foundr r r �__str__� s zParseBaseException.__str__c C s t | �S )N)�str)r r r r �__repr__� s zParseBaseException.__repr__z>!<)�markerString)� marker_stringr9 c C sL |dk r|n|}| j }| jd }|rDd�|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$ r0 �strip)r rE rD Zline_strZline_columnr r r �mark_input_line� s z"ParseBaseException.mark_input_linec C s | � | |�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`` )r6 )r r2 r r r �explain� s %zParseBaseException.explain)r NN)r )N)r )r r r �__doc__rB �int�typingZOptionalr �staticmethodr6 �classmethodr8 �propertyr r r r$ rA rC rG rH Z markInputliner r r r r s( A'r c @ s 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 N)r r r rI r r r r rO � s rO c @ s e Zd ZdZdS )�ParseFatalExceptionzu User-throwable exception thrown when inconsistent parse content is found; stops all parsing immediately N)r r r rI r r r r rP � s rP c @ s e Zd ZdZdS )�ParseSyntaxExceptionz� Just like :class:`ParseFatalException`, but thrown internally when an :class:`ErrorStop<And._ErrorStop>` ('-' operator) indicates that parsing is to stop immediately because an unbacktrackable syntax error has been found. N)r r r rI r r r r rQ � s rQ c @ s&