ó
\K]c           @  s`   d  d l  m Z d  d l Z d  d l Z d  d l Z d „  Z d „  Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   print_functionNc         K  sº   d d l  m } d |  k r? t j d t j ƒ |  j d ƒ n  d |  k rk |  j d ƒ t ƒ  j |  | ƒ Sd |  k r |  j d ƒ t d t ƒ j |  | ƒ S| |  d d	 | j	 ƒ  Sd  S(
   Niÿÿÿÿ(   t	   run_testss   --logt   levels   --failed-firsts   --last-failedt   last_failedt   defaultTests   numba.tests(
   t   numba.testingR   t   loggingt   basicConfigt   DEBUGt   removet   _FailedFirstRunnert   maint   Truet   wasSuccessful(   t   argvt   kwdsR   (    (    s.   lib/python2.7/site-packages/numba/_runtests.pyt   _main   s    c          O  s   t  d g t |  ƒ |  S(   s}   keyword arguments are accepted for backward compatiblity only.
    See `numba.testing.run_tests()` documentation for details.s   <main>(   R   t   list(   R   R   (    (    s.   lib/python2.7/site-packages/numba/_runtests.pyR      s    R
   c           B  s;   e  Z d  Z d Z e d „ Z d „  Z d „  Z d „  Z RS(   sI   
    Test Runner to handle the failed-first (--failed-first) option.
    s   .runtests_lastfailedc         C  s   | |  _  d  S(   N(   R   (   t   selfR   (    (    s.   lib/python2.7/site-packages/numba/_runtests.pyt   __init__+   s    c         C  st  d d l  m } | d } | d } g  | D] } | j d ƒ r+ | ^ q+ } |  j | ƒ \ } } | rÐ d }	 t |	 j t | ƒ ƒ ƒ g  | D] }
 |
 | k r |
 ^ q } |  j rÃ t | ƒ } qî | | } n |  j râ g  } n t | ƒ } | st d ƒ t	 St d j t | ƒ ƒ ƒ t d	 | ƒ | | g | | |  } t | ƒ | j
 k rj|  j | | ƒ n  | j ƒ  S(
   Niÿÿÿÿ(   R   i    i   t   -s%   There were {} previously failed testss   No tests to runs   Running {} testst   Flags(   R   R   t
   startswitht   find_last_failedt   printt   formatt   lenR   R   R   t   testsRunt   save_failed_testsR   (   R   R   R   R   t   progt   at   flagst	   all_testst   failed_testst   ftt   tt   remaing_testst   testst   result(    (    s.   lib/python2.7/site-packages/numba/_runtests.pyR   .   s2    

(			
c         C  s³   t  d j |  j ƒ ƒ g  } t ƒ  } x/ | j | j D] } | j | d j ƒ  ƒ q6 Wx* | D]" } | | k r^ | j | ƒ q^ q^ Wt	 |  j d ƒ  } t
 j | | ƒ Wd  QXd  S(   Ns   Saving failed tests to {}i    t   w(   R   R   t   cache_filenamet   sett   errorst   failurest   addt   idt   appendt   opent   jsont   dump(   R   R&   R    t   cachet   failedt   caseR#   t   fout(    (    s.   lib/python2.7/site-packages/numba/_runtests.pyR   R   s    	c         C  s  d d l  m } d g g  | D] } | j d ƒ s | ^ q } | d ƒ 2 } t | Œ  t j d ƒ } | j ƒ  j ƒ  } Wd  QXg  | D]! } | j | ƒ d  k	 r† | ^ q† }	 y t
 |  j ƒ }
 Wn t k
 rÙ g  } n X|
  } t j | ƒ } Wd  QX|	 | f S(   Niÿÿÿÿ(   t   captured_outputs   -lR   t   stdouts   ^(\w+\.)+\w+$(   t   numba.tests.supportR6   R   R   t   ret   compilet   getvaluet
   splitlinest   matcht   NoneR/   R(   t   IOErrorR0   t   load(   R   R   R6   R   t   listargvt   streamt   patt   linest   xR    t   fobjR!   t   fin(    (    s.   lib/python2.7/site-packages/numba/_runtests.pyR   a   s    /
.
	(	   t   __name__t
   __module__t   __doc__R(   t   FalseR   R   R   R   (    (    (    s.   lib/python2.7/site-packages/numba/_runtests.pyR
   %   s   	$	(	   t
   __future__R    R0   R9   R   R   R   t   objectR
   (    (    (    s.   lib/python2.7/site-packages/numba/_runtests.pyt   <module>   s   		