ó
B¨Õ\c           @   sg  d  d l  Z  d  d l Z d  d l m Z d  d l m Z y d  d l m Z Wn e k
 re d Z n Xy d d l	 m
 Z
 Wn e k
 r“ d Z
 n Xe
 r± e r± e d ƒ ‚ n  d Z d Z e j d
 d k Z e  j d ƒ Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   CodeType(   t   TracebackType(   t   tproxyi   (   t   tb_set_nexts(   Cannot use tblib. Runtime not supported.s   1.4.0t	   Tracebacki    i   sO   ^\s*File "(?P<co_filename>.+)", line (?P<tb_lineno>\d+)(, in (?P<co_name>.+))?$t	   _AttrDictc           B   s   e  Z d  Z e j Z RS(   (    (   t   __name__t
   __module__t	   __slots__t   dictt   __getitem__t   __getattr__(    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR      s   t   __traceback_makerc           B   s   e  Z RS(    (   R   R   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR      s   t   TracebackParseErrorc           B   s   e  Z RS(    (   R   R   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   #   s   t   Codec           B   s   e  Z d Z d  „  Z RS(   c         C   s   | j  |  _  | j |  _ d  S(   N(   t   co_filenamet   co_name(   t   selft   code(    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   __init__+   s    N(   R   R   t   Nonet   co_codeR   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   '   s   t   Framec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s2   d „  | j  j ƒ  Dƒ |  _  t | j ƒ |  _ d  S(   Nc         S   s+   i  |  ]! \ } } | d k r | | “ q S(   t   __file__R   (   R   R   (    (   t   .0t   kt   v(    (    s-   lib/python2.7/site-packages/tblib/__init__.pys
   <dictcomp>3   s   		(   t	   f_globalst   itemsR   t   f_code(   R   t   frame(    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   1   s    c         C   s   d  S(   N(    (   R   (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   clear9   s    (   R   R   R   R   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   0   s   	c           B   sS   e  Z d Z d  „  Z d „  Z d „  Z d „  Z e d „  ƒ Z	 e e
 d „ ƒ Z RS(   c         C   s¡   t  | j ƒ |  _ t | j ƒ |  _ | j } |  } t |  ƒ } x[ | d  k	 rœ t j | ƒ } t  | j ƒ | _ t | j ƒ | _ | | _ | } | j } qB Wd  S(   N(	   R   t   tb_framet   intt	   tb_linenot   tb_nextt   typeR   t   objectt   __new__(   R   t   tbt   prev_tracebackt   clst	   traceback(    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   E   s    		c         B   s×  e  r e  e |  j ƒ Se s+ e d ƒ ‚ n  |  } d  } d  } x| rÀ| j j } e d | j	 d d | j j j
 d ƒ } e rß e d | j | j | j | j | j | j | j | j | j
 | j | j | j d d	 ƒ } n` e d | j | j | j | j | j | j | j | j
 j ƒ  | j j ƒ  | j | j d
 d ƒ } y | | j j i  UWn^ e k
 r³e j ƒ  d j } | d  k r‹| } n  | d  k	 r§e | | ƒ n  | } ~ n X| j } q@ Wz | SWd  ~ ~ Xd  S(   Ns   Unsupported Python interpreter!s   
i   s   raise __traceback_makert   execi    i   (    (    (    (    (   R   R   t   _Traceback__tproxy_handlerR   t   RuntimeErrorR   R    R   t   compileR"   R   t   PY3R    t   co_kwonlyargcountt
   co_nlocalst   co_stacksizet   co_flagsR   t	   co_constst   co_namest   co_varnamesR   t   co_firstlinenot	   co_lnotabt   encodeR   t	   Exceptiont   syst   exc_infoR#   (   R   t   currentt   top_tbR'   R   R   t   next_tb(    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   as_tracebackV   sL    	*		c         O   s`   | d k rF | d d k r2 |  j  o1 |  j  j ƒ  St |  | d ƒ Sn t |  | ƒ | | Ž  Sd  S(   Nt   __getattribute__R   i    R#   (   RA   R   (   R#   R@   t   getattr(   R   t	   operationt   argst   kwargs(    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   __tproxy_handler‡   s
    c         C   sƒ   |  j  d k r d } n |  j  j ƒ  } i |  j j j d 6|  j j j d 6} i |  j j d 6| d 6} i | d 6|  j d 6| d 6S(	   s4   Convert a Traceback into a dictionary representationR   R   R   R   R    R"   R#   N(	   R#   R   t   to_dictR    R   R   R   R   R"   (   R   R#   R   R   (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyRG      s    	

c         C   s™   | d r  |  j  | d ƒ } n d  } t d | d d d d | d d d ƒ } t d | d d d | ƒ } t d | d | d d | ƒ } |  | ƒ S(   NR#   R   R    R   R   R   R"   (   t	   from_dictR   R   (   R)   t   dctR#   R   R   R'   (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyRH   ¥   s    
	
	c   	      C   s  g  } | } xˆ | j  ƒ  D]z } | j ƒ  } | rL | d k r t } q q n  t j | ƒ } | rw | j | j ƒ  ƒ q | j d ƒ r‰ q | r Pq q W| rd  } xW t	 | ƒ D]I } t
 | d t
 | d t
 d | d d d ƒ d	 t
 | ƒ ƒd
 | ƒ} q° W|  | ƒ St d | ƒ ‚ d  S(   Ns"   Traceback (most recent call last):s     R    R   R   R   R   t   ?R   R#   s    Could not find any frames in %r.(   t
   splitlinest   rstript   Falset   FRAME_REt   matcht   appendt	   groupdictt
   startswithR   t   reversedR   R   (	   R)   t   stringt   strictt   framest   headert   linet   frame_matcht   previousR   (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   from_string»   s:    	
	
N(   R   R   R   R#   R   R@   R,   RG   t   classmethodRH   t   TrueR[   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyR   A   s   		1			(   R   (   t   reR;   t   typesR    R   t   __pypy__R   t   ImportErrorR   t   cpythonR   t   __version__t   __all__t   version_infoR/   R.   RN   R	   R   R:   R   R   R%   R   R   R   (    (    (    s-   lib/python2.7/site-packages/tblib/__init__.pyt   <module>   s.   

	