MINI MINI MANI MO
3
  \3p                 @   s,  d Z ddgZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZ yddlZW n" ek
r   ejZdd ZY nX dd	 Zd
d ZdZG dd
 d
Zdd Zdd ZG dd dZdd Zdd ZdddZdd ZG dd dZdd Ze dkr(e  dS ) a  program/module to trace Python program or function execution
Sample use, command line:
  trace.py -c -f counts --ignore-dir '$prefix' spam.py eggs
  trace.py -t --ignore-dir '$prefix' spam.py eggs
  trace.py --trackcalls spam.py eggs
Sample use, programmatically
  import sys
  # create a Trace object, telling it what to ignore, and whether to
  # do tracing or line-counting or both.
  tracer = trace.Trace(ignoredirs=[sys.base_prefix, sys.base_exec_prefix,],
                       trace=0, count=1)
  # run the new command using the given tracer
  tracer.run('main()')
  # make a report, placing output in /tmp
  r = tracer.results()
  r.write_results(show_missing=True, coverdir="/tmp")
TraceCoverageResults    N)	monotonicc               C   s   t jd  d S )N)syssettrace r   r   /usr/lib64/python3.6/trace.py_unsettraceE   s    r	   c             C   s   t j|  tj|  d S )N)	threadingr   r   )funcr   r   r   	_settraceH   s    
r   c               C   s   t jd  tjd  d S )N)r   r   r
   r   r   r   r   r	   L   s    
z#pragma NO COVERc               @   s   e Zd ZdddZdd ZdS )_IgnoreNc             C   s:   |s
t  nt || _|sg ndd |D | _ddi| _d S )Nc             S   s   g | ]}t jj|qS r   )ospathnormpath).0dr   r   r   
<listcomp>U   s   z$_Ignore.__init__.<locals>.<listcomp>z<string>   )set_mods_dirs_ignore)selfmodulesdirsr   r   r   __init__S   s    
z_Ignore.__init__c             C   s   || j kr| j | S || jkr,d| j |<