File: //proc/self/root/opt/python38/lib/python3.8/idlelib/__pycache__/outwin.cpython-38.opt-1.pyc
U
�i�_M � @ s� d Z ddlZddlmZ ddlmZ ddddd gZdad
d� Zdd
� Z G dd� de�Z
G dd� d�Zedkr�ddl
mZ edddd� dS )z0Editor window that can serve as an output file.
� N)�
messagebox)�EditorWindowzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):c C s dd� t D �adS )z?Compile the patterns for matching to file name and line number.c S s g | ]}t �|t j��qS � )�re�compile�
IGNORECASE)�.0�patr r �-/opt/python38/lib/python3.8/idlelib/outwin.py�
<listcomp> s �z!compile_progs.<locals>.<listcomp>N)�file_line_pats�file_line_progsr r r r
�
compile_progs s �r c C s� t s
t� t D ]X}|�| �}|r|�dd�\}}zt|d�}|�� W qlW q tk
rd Y qY qX qdS z|t|�fW S tk
r� Y dS X dS )a- Extract file name and line number from line of text.
Check if line of text contains one of the file/line patterns.
If it does and if the file and line are valid, return
a tuple of the file name and line number. If it doesn't match
or if the file or line is invalid, return None.
� � �rN) r
r �search�group�open�close�OSError�int� TypeError)�line�prog�match�filename�lineno�fr r r
�file_line_helper s"