File: //lib/python3.12/__pycache__/trace.cpython-312.pyc
�
    )!�h�q  �                   �  � d Z ddgZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZ ddlZdZ G d� d�      Zd	� Zd
� Z G d� d�      Zd� Zd
� Zdd�Zd� Z G d� d�      Zd� Zedk(  r e�        yy)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")
�Trace�CoverageResults�    N)�	monotonicz#pragma NO COVERc                   �   � e Zd Zdd�Zd� Zy)�_IgnoreNc                 ��   � |s
t        �       n
t        |�      | _        |sg n,|D �cg c]!  }t        j                  j	                  |�      ��# c}| _        ddi| _        y c c}w )Nz<string>�   )�set�_mods�os�path�normpath�_dirs�_ignore)�self�modules�dirs�ds       �/usr/lib/python3.12/trace.py�__init__z_Ignore.__init__F   sR   � �")�S�U�s�7�|��
�#�R�37�*9�./� +-�'�'�*:�*:�1�*=� *9��
�#�Q�(����*9s   �&Ac                 �  � || j                   v r| j                   |   S || j                  v rd| j                   |<