File: //opt/alt/python37/lib/python3.7/site-packages/raven/utils/__pycache__/stacks.cpython-37.pyc
B
�B(����� @ s� d Z ddlmZmZ ddlZddlZddlZddlZddlZddl m
Z
ddlmZ e�
d�Zddd�Zdd d
�Zdd� Zd
d� Zddd�Ze
dfdd�Zd dd�Zd!dd�Ze
ddfdd�ZdS )"z�
raven.utils.stacks
~~~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
� )�absolute_import�divisionN)� transform)� iteritemszcoding[:=]\s*([-\w.]+)c C s d}|dk rRt |d�rRy|�|�}W n ttfk
r@ d}Y nX |dk rR|�� }|dkr�yt�| �}W n ttfk
r� dS X |s�dS td|| �}t |d | t
|��}yBdd� |||� D �}|| �d�} d d� ||d |� D �}
W n tk
�r dS X t
|�t
| �t
|
�fS )
z�
Returns context_lines before and after lineno from file.
Returns (pre_context_lineno, pre_context, context_line, post_context).
N�
get_source)NNNr � c S s g | ]}|� d ��qS )z
)�strip)�.0�line� r �C/opt/alt/python37/lib/python3.7/site-packages/raven/utils/stacks.py�
<listcomp>B s z'get_lines_from_file.<locals>.<listcomp>z
c S s g | ]}|� d ��qS )z
)r )r r
r r r r
G s )�hasattrr �ImportError�IOError�
splitlines� linecache�getlines�OSError�max�min�lenr �
IndexError�slim_string)�filename�lineno�
context_lines�loader�module_name�sourceZlower_boundZupper_bound�pre_context�context_line�post_contextr r r �get_lines_from_file s8
r# c C s"