o
    h                     @   s.   d Z ddlZddlZG dd dZdd ZdS )z
Provide the Reporter class.
    Nc                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )Reporterz:
    Formats the results of pyflakes checks to users.
    c                 C   s   || _ || _dS )a  
        Construct a L{Reporter}.

        @param warningStream: A file-like object where warnings will be
            written to.  The stream's C{write} method must accept unicode.
            C{sys.stdout} is a good value.
        @param errorStream: A file-like object where error output will be
            written to.  The stream's C{write} method must accept unicode.
            C{sys.stderr} is a good value.
        N)_stdout_stderr)selfwarningStreamerrorStream r   G/var/www/html/ai/venv/lib/python3.10/site-packages/pyflakes/reporter.py__init__   s   
zReporter.__init__c                 C   s   | j | d| d dS )a  
        An unexpected error occurred trying to process C{filename}.

        @param filename: The path to a file that we could not process.
        @ptype filename: C{unicode}
        @param msg: A message explaining the problem.
        @ptype msg: C{unicode}
        z: 
N)r   write)r   filenamemsgr   r   r	   unexpectedError   s   	zReporter.unexpectedErrorc              
   C   s   |du rd}n|  d }t|pdd}|dur*t|d}| jd||||f  n| jd|||f  |dur^| j| | jd |dur`| jtdd	|d|d  d
  dS dS dS )a0  
        There was a syntax error in C{filename}.

        @param filename: The path to the file with the syntax error.
        @ptype filename: C{unicode}
        @param msg: An explanation of the syntax error.
        @ptype msg: C{unicode}
        @param lineno: The line number where the syntax error occurred.
        @ptype lineno: C{int}
        @param offset: The column on which the syntax error occurred, or None.
        @ptype offset: C{int}
        @param text: The source code containing the syntax error.
        @ptype text: C{unicode}
        Nr      z%s:%d:%d: %s
z
%s:%d: %s
r   z\S z^
)
splitlinesmaxr   r   resub)r   r   r   linenooffsettextliner   r   r	   syntaxError'   s&   


zReporter.syntaxErrorc                 C   s    | j t| | j d dS )zp
        pyflakes found something wrong with the code.

        @param: A L{pyflakes.messages.Message}.
        r   N)r   r   str)r   messager   r   r	   flakeN   s   zReporter.flakeN)__name__
__module____qualname____doc__r
   r   r   r   r   r   r   r	   r   	   s    'r   c                   C   s   t tjtjS )zI
    Make a reporter that can be used when no reporter is specified.
    )r   sysstdoutstderrr   r   r   r	   _makeDefaultReporterX   s   r&   )r"   r   r#   r   r&   r   r   r   r	   <module>   s
    O