Your IP : 3.141.41.109


Current Path : /opt/alt/python311/lib64/python3.11/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/__pycache__/trace.cpython-311.pyc

�

c��fr�� �dZddgZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlZdZGd�d��Zd	�Zd
�ZGd�d��Zd�Zd
�Zdd�Zd�ZGd�d��Zd�Zedkre��dSdS)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��eZdZdd�Zd�ZdS)�_IgnoreNc��|st��nt|��|_|sgnd�|D��|_ddi|_dS)Nc�L�g|]!}tj�|����"S�)�os�path�normpath��.0�ds  �,/opt/alt/python311/lib64/python3.11/trace.py�
<listcomp>z$_Ignore.__init__.<locals>.<listcomp>Hs8��*9�*9�*9�./�+-�'�*:�*:�1�*=�*=�*9�*9�*9�z<string>�)�set�_mods�_dirs�_ignore)�self�modules�dirss   r�__init__z_Ignore.__init__FsX��")�;�S�U�U�U�s�7�|�|��
�#�9�R�R�*9�*9�37�*9�*9�*9��
�#�Q�(����rc�\�||jvr
|j|S||jvrd|j|<dS|jD]'}|�|dz��r
d|j|<dS�(|�d|j|<dS|jD]1}|�|tjz��r
d|j|<dS�2d|j|<dS)Nr�.r)rr�
startswithrr�sep)r�filename�
modulename�modrs     r�namesz
_Ignore.namesLs������%�%��<�
�+�+����#�#�'(�D�L��$��1��:�	�	�C��$�$�S�3�Y�/�/�
�+,���Z�(��q�q�
�
��'(�D�L��$��1���
	�
	�A��"�"�1�r�v�:�.�.�
�+,���Z�(��q�q�
�
$%���Z� ��qr�NN)�__name__�
__module__�__qualname__rr$r
rrrrEs7������)�)�)�)�)�)�)�)�)rrc��tj�|��}tj�|��\}}|S)�,Return a plausible module name for the path.)rr�basename�splitext)r�baser!�exts    r�_modnamer/ws7���7���D�!�!�D��G�$�$�T�*�*�M�H�c��Orc���tj�|��}d}tjD]{}tj�|��}|�|��rE|t|��tjkr"t|��t|��kr|}�||r|t|��dzd�}n|}tj�|��\}}|�tjd��}tj	r |�tj	d��}tj�
|��\}}|�d��S)r*�rNr)rr�normcase�sysr�lenr �
splitdrive�replace�altsepr,�lstrip)r�comparepath�longest�dirr-�driver!r.s        r�_fullmodnamer=~s0���'�"�"�4�(�(�K��G��x�����g���s�#�#���!�!�#�&�&�	�;�s�3�x�x�+@�B�F�+J�+J��3�x�x�#�g�,�,�&�&�������C��L�L�1�$�%�%�&������'�$�$�T�*�*�K�E�4��<�<����$�$�D�	�y�,��|�|�B�I�s�+�+���G�$�$�T�*�*�M�H�c��?�?�3���rc�6�eZdZ		d	d�Zd�Zd�Zd
d�Zdd�ZdS)rNc���||_|j�i|_|j���|_||_|j�i|_|j���|_||_|j�i|_|j���|_||_||_|jr�	t|jd��5}tj	|��\}}}ddd��n#1swxYwY|�
|�|||�����dS#tttf$r1}td|j�d|��t j���Yd}~dSd}~wwxYwdS)N�rb)�callerszSkipping counts file �: ��file)�counts�copy�counter�calledfuncsrA�infile�outfile�open�pickle�load�update�	__class__�OSError�EOFError�
ValueError�printr3�stderr)rrErHrIrArJ�f�errs        rrzCoverageResults.__init__�s�������;���D�K��{�'�'�)�)���&�����#�!�D���+�0�0�2�2�������<���D�L��|�(�(�*�*����������;�	N�
N��$�+�t�,�,�B��39�;�q�>�>�0�F�K��B�B�B�B�B�B�B�B�B�B�B����B�B�B�B����D�N�N�6�;��N�P�P�Q�Q�Q�Q�Q���X�z�2�
N�
N�
N���)-����c�c�;�BE�*�N�N�N�N�N�N�N�N�N�N�����
N����
	N�	Ns<�0D"�C*�D"�*C.�.D"�1C.�2.D"�"E*�9&E%�%E*c�V�|�d��o|�d��S)z_Return True if the filename does not refer to a file
        we want to have reported.
        �<�>)r�endswith)rr!s  r�is_ignored_filenamez#CoverageResults.is_ignored_filename�s+���"�"�3�'�'�B�H�,=�,=�c�,B�,B�Brc���|j}|j}|j}|j}|j}|j}|D]$}|�|d��||z||<�%|D]}d||<�|D]}d||<�dS)z.Merge in the data from another CoverageResultsrrN)rErHrA�get)	r�otherrErHrA�other_counts�other_calledfuncs�
other_callers�keys	         rrNzCoverageResults.update�s�������&���,���|��!�-���
�
��	A�	A�C� �*�*�S�!�,�,�|�C�/@�@�F�3�K�K�$�	!�	!�C� �K���� �	�	�C��G�C�L�L�	�	rTFc�r�|jrRt��td��|j}t|��D]\}}}td|�d|�d|�����|jr�t��td��dx}}	t|j��D]o\\}
}}\}
}}|
|kr#t��td|
d��|
}d}	|
|
kr|	|
krtd|
��|
}	td	|�d
|�d|�d
|�����pi}|jD]2\}}|�|i��x}||<|j||f||<�3i}|���D�]}\}}|�|��r�|�d��r
|d
d�}|�Ltj
�tj
�|����}t|��}n'|}tj|d���t|��}|rt!|��}ni}t#j|��}tj
�||dz��}t)|d��5}t+j|j��\}}d
d
d
��n#1swxYwY|�|||||��\}}|r |rt3d|z|z��}||||f||<��|rH|rFtd��t|��D]'}||\}}}}td||z���(|jr�	t)|jd��5} t7j|j|j|jf| d��d
d
d
��d
S#1swxYwYd
S#t:$r)}!td|!zt<j���Yd
}!~!d
Sd
}!~!wwxYwd
S)af
        Write the coverage results.

        :param show_missing: Show lines that had no hits.
        :param summary: Include coverage summary per module.
        :param coverdir: If None, the results of each module are placed in its
                         directory, otherwise it is included in the directory
                         specified.
        zfunctions called:z
filename: z, modulename: �, funcname: zcalling relationships:r1z***z  -->z    rz -> z.pycN���T)�exist_okz.coverr@�dzlines   cov%   module   (path)z%5d   %3d%%   %s   (%s)�wbrz"Can't save counts files because %srC) rHrS�sortedrArEr]�itemsr[rZrr�dirname�abspathr/�makedirsr=�_find_executable_linenos�	linecache�getlines�joinrK�tokenize�detect_encoding�readline�write_results_file�intrJrL�dumprPr3rT)"r�show_missing�summary�coverdir�callsr!r"�funcname�lastfile�	lastcfile�pfile�pmod�pfunc�cfile�cmod�cfunc�per_file�lineno�	lines_hit�sums�countr;�lnotab�source�	coverpath�fp�encoding�_�n_hits�n_lines�percent�mrUrVs"                                  r�
write_resultszCoverageResults.write_results�s����	<��G�G�G��%�&�&�&��$�E�28��-�-�
<�
<�.��*�h���"�(�(�J�J�J���:�<�<�<�<��<�	I��G�G�G��*�+�+�+�#%�%�H�y��d�l�+�+�

I�

I�<�%�%��u�';��t�U��H�$�$��G�G�G��%���.�.�.�$�H� "�I��E�>�>�i�5�&8�&8��'�5�)�)�)� %�I���d�d�d�E�E�E�4�4�4���G�H�H�H�H��� $��	@�	@��H�f�-5�\�\�(�B�-G�-G�G�I���*� $��X�v�,>� ?�I�f�����'�~�~�/�/�	J�	J�O�H�e��'�'��1�1�
��� � ��(�(�
)�#�C�R�C�=�����g�o�o�b�g�o�o�h�&?�&?�@�@��%�h�/�/�
�
�����C�$�/�/�/�/�)�(�3�3�
��
�1�(�;�;������'��1�1�F�����S�*�x�*?�@�@�I��h��%�%�
D��&�6�r�{�C�C���!�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D�"�5�5�i��6<�e�X�O�O�O�F�G��
J�7�
J��c�F�l�W�4�5�5��#*�G�Z��#I��Z� ���	;�t�	;��2�3�3�3��D�\�\�
;�
;��9=�a��6���*�h��/�$�q�'�9�:�:�:�:��<�	S�
S��$�,��-�-�&���K���d�.>��� M� !�1�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&�&�&���
S�
S�
S��:�S�@�s�z�R�R�R�R�R�R�R�R�R�R�����
S����
	S�	SsN�#J�J	�J	�)N�>)M4�'N�4M8�8N�;M8�<N�
N4�N/�/N4c�4�	t|d|���}n:#t$r-}td|�d|�d�tj���Yd}~dSd}~wwxYwd	}d	}	|5t|d
��D]�\}
}|
|vr)|�d||
z��|	d
z
}	|d
z
}n=|
|vr$t|vr|�d��|d
z
}n|�d
��|�|�d������	ddd��n#1swxYwY|	|fS)z'Return a coverage results file in path.�w�r�ztrace: Could not open z for writing: z - skippingrCN)rrrrz%5d: z>>>>>> z       �)	rKrPrSr3rT�	enumerate�write�PRAGMA_NOCOVER�
expandtabs)rr�linesr�r�r�rJrVr�r�r��lines            rruz"CoverageResults.write_results_file(s���	��4��x�8�8�8�G�G���	�	�	��E�26�$�$����=�DG�J�
P�
P�
P�
P��4�4�4�4�4�����	����
����
�	2�	2� )�%�� 3� 3�
2�
2�����Y�&�&��M�M�'�I�f�,=�"=�>�>�>��a�K�F��q�L�G�G��v�%�%�n��.D�.D��M�M�)�,�,�,��q�L�G�G��M�M�)�,�,�,��
�
�d�o�o�a�0�0�1�1�1�1�
2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�"�w��s'��
A�"A�A�B)D�D�D)NNNNN)TFN�N)r&r'r(rr[rNr�rur
rrrr�s�������=A�'+�N�N�N�N�4C�C�C����$YS�YS�YS�YS�v�����rc�P�i}tj|��D]\}}||vrd||<�|S)z:Return dict where keys are lines in the line number table.r)�dis�findlinestarts)�code�strs�linenosr�r�s     r�_find_lines_from_coder�Hs?���G��'��-�-� � �	��6������G�F�O���Nrc��t||��}|jD]9}tj|��r#|�t||�����:|S)z<Return lineno dict for all code objects reachable from code.)r��	co_consts�inspect�iscoderN�_find_lines)r�r�r��cs    rr�r�RsZ��$�D�$�/�/�G��^�1�1���>�!���	1��N�N�;�q�$�/�/�0�0�0���Nrc�L�i}tj}t||���5}tj|j��}|D]O\}}}}	}
|tjkr5|tjkr%|\}}|	\}
}t||
dz��D]}d||<�|}�P	ddd��n#1swxYwY|S)z�Return a dict of possible docstring positions.

    The dict maps line numbers to strings.  There is an entry for
    line that contains only a string or a part of a triple-quoted
    string.
    r�rN)�token�INDENTrKrr�generate_tokensrt�STRING�range)r!r�r�
prev_ttyperU�tok�ttype�tstr�start�endr��sline�scol�eline�ecol�is                r�
_find_stringsr�^s
��	�A���J�	
�h��	*�	*�	*�	�a��&�q�z�2�2��-0�	�	�)�E�4���T����$�$����-�-�"'�K�E�4�"%�K�E�4�"�5�%�!�)�4�4�!�!�� ��!����J�J�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�Hs�A,B�B� Bc�j�	tj|��5}|���}|j}ddd��n#1swxYwYn:#t$r-}td|�d|��tj���icYd}~Sd}~wwxYwt||d��}t||��}t||��S)zAReturn dict where keys are line numbers in the line number table.NzNot printing coverage data for rBrC�exec)rrrK�readr�rPrSr3rT�compiler�r�)r!rU�progr�rVr�r�s       rrnrnus���
�]�8�
$�
$�	"���6�6�8�8�D��z�H�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�������
��!)���3�3�0�7:�z�	C�	C�	C�	C��	�	�	�	�	�	����������4��6�*�*�D���8�,�,�D��t�T�"�"�"s=�A
�>�A
�A�A
�A�A
�

B�"A<�6B�<Bc�`�eZdZ			dd�Zd�Zdd�Zd	�Zd
�Zd�Zd�Z	d
�Z
d�Zd�Zd�Z
d�ZdS)rrrr
NFc
���||_||_t||��|_i|_i|_d|_||_i|_i|_	i|_
d|_|	rt��|_|r|j
|_dS|r|j|_dS|r|r|j|_|j|_dS|r|j|_|j|_dS|r|j|_|j|_dSd|_dS)ax
        @param count true iff it should count number of times each
                     line is executed
        @param trace true iff it should print out each line that is
                     being counted
        @param countfuncs true iff it should just output a list of
                     (filename, modulename, funcname,) for functions
                     that were called at least once;  This overrides
                     `count' and `trace'
        @param ignoremods a list of the names of modules to ignore
        @param ignoredirs a list of the names of directories to ignore
                     all of the (recursive) contents of
        @param infile file from which to read stored counts to be
                     added into the results
        @param outfile file in which to write the results
        @param timing true iff timing information be displayed
        rNr)rIrJr�ignorerE�pathtobasename�	donothing�trace�_calledfuncs�_callers�
_caller_cache�
start_time�_time�globaltrace_trackcallers�globaltrace�globaltrace_countfuncs�globaltrace_lt�localtrace_trace_and_count�
localtrace�localtrace_trace�localtrace_count)
rr�r��
countfuncs�countcallers�
ignoremods�
ignoredirsrIrJ�timings
          rrzTrace.__init__�s��(�������j�*�5�5������ ��������
������
��������	&�#�g�g�D�O��	�#�<�D����
�
	�#�:�D����
�	�u�	�#�2�D��"�=�D�O�O�O�
�	�#�2�D��"�3�D�O�O�O�
�	�#�2�D��"�3�D�O�O�O��D�N�N�Nrc�J�ddl}|j}|�|||��dS)Nr)�__main__�__dict__�runctx)r�cmdr��dicts    r�runz	Trace.run�s/������� �����C��t�$�$�$�$�$rc�x�|�i}|�i}|js2tj|j��t	j|j��	t|||��|js*t	jd��tjd��dSdS#|js)t	jd��tjd��wwxYwr�)r��	threading�settracer�r3r�)rr��globals�localss    rr�zTrace.runctx�s����?�b�G��>�B�6��~�	+���t�/�0�0�0��L��)�*�*�*�	)���g�v�&�&�&��>�
)���T�"�"�"��"�4�(�(�(�(�(�
)�
)��4�>�
)���T�"�"�"��"�4�(�(�(�(�
)���s�B�2B9c���d}|jstj|j��	||i|��}|jstjd��n!#|jstjd��wwxYw|Sr�)r�r3r�r�)r�func�args�kw�results     r�runfuncz
Trace.runfunc�s������~�	+��L��)�*�*�*�	#��T�4�&�2�&�&�F��>�
#���T�"�"�"����>�
#���T�"�"�"�"�
#�����
s�A�A&c�<�|j}|j}|rt|��}nd}|j}d}||jvr|j|�
|j|}n�d|j|<d�tj|��D��}t|��dkr�d�tj|d��D��}t|��dkrNd�tj|d��D��}	t|	��dkr|	dj}||j|<|�|�d|��}|||fS)Nc�:�g|]}tj|���|��Sr
)r��
isfunction)rrUs  rrz1Trace.file_module_function_of.<locals>.<listcomp>�s7��3�3�3�1�#�.�q�1�1�3�Q�3�3�3rrc�<�g|]}t|t���|��Sr
)�
isinstancer�rs  rrz1Trace.file_module_function_of.<locals>.<listcomp>�s6��5�5�5�q� *�1�d� 3� 3�5��5�5�5rrc�2�g|]}t|d���|��S)�	__bases__)�hasattr)rr�s  rrz1Trace.file_module_function_of.<locals>.<listcomp>�s6��?�?�?�Q�&-�a��&=�&=�?�q�?�?�?rr)	�f_code�co_filenamer/�co_namer��gc�
get_referrersr4r&)
r�framer�r!r"r|�clsname�funcs�dicts�classess
          r�file_module_function_ofzTrace.file_module_function_of�s_���|���#���	�!�(�+�+�J�J��J��<�����4�%�%�%��!�$�'�3��,�T�2���'+�D��t�$�3�3�� 0�� 6� 6�3�3�3�E�
�5�z�z�Q���5�5�B�$4�U�1�X�$>�$>�5�5�5���u�:�:��?�?�?�?�"�*:�5��8�*D�*D�?�?�?�G��7�|�|�q�(�(�")�!�*�"5��
4;��*�4�0���")�'�'�8�8�4�H���X�-�-rc��|dkr=|�|��}|�|j��}d|j||f<dSdS)zkHandler for call events.

        Adds information about who called who to the self._callers dict.
        �callrN)r�f_backr�)rr��why�arg�	this_func�parent_funcs      rr�zTrace.globaltrace_trackcallers�sS��
�&�=�=��4�4�U�;�;�I��6�6�u�|�D�D�K�67�D�M�;�	�2�3�3�3�	�=rc�T�|dkr!|�|��}d|j|<dSdS)zoHandler for call events.

        Adds (filename, modulename, funcname) to the self._calledfuncs dict.
        rrN)rr�)rr�rrrs     rr�zTrace.globaltrace_countfuncss:��
�&�=�=��4�4�U�;�;�I�+,�D��i�(�(�(��=rc��|dkr�|j}|j�dd��}|rZt|��}|�E|j�||��}|s*|jrtd|�d|j����|j	SdSdSdSdS)z�Handler for call events.

        If the code block being entered is to be ignored, returns `None',
        else returns self.localtrace.
        r�__file__Nz --- modulename: rd)
r��	f_globalsr]r/r�r$r�rSr�r�)rr�rrr�r!r"�	ignore_its        rr�zTrace.globaltrace_lts����&�=�=��<�D���*�*�:�t�<�<�H��
�&�h�/�/�
��)� $�� 1� 1�(�J� G� G�I�$�/��:�B�!�E�&0�j�j�$�,�,�$@�B�B�B�#��.�
*�)�/�/��t��=rc	��|dkr�|jj}|j}||f}|j�|d��dz|j|<|jr(t
dt��|jz
zd���tj	�
|��}t
d||tj||��fzd���|j
S)	Nr�rr�%.2f� �r��
%s(%d): %sr1)r�r��f_linenorEr]r�rSr�rrr+ro�getliner�)rr�rrr!r�rb�bnames        rr�z Trace.localtrace_trace_and_count's����&�=�=��|�/�H��^�F��F�"�C�#�{���s�A�6�6��:�D�K�����
E��f����$�/� 9�:��D�D�D�D��G�$�$�X�.�.�E��,�%��"+�"3�H�f�"E�"E�"G�G�LN�
P�
P�
P�
P���rc	�2�|dkr�|jj}|j}|jr(t	dt��|jz
zd���tj�|��}t	d||tj
||��fzd���|jS)Nr�rrrrr1)r�r�rr�rSr�rrr+rorr�)rr�rrr!r�rs       rr�zTrace.localtrace_trace6s����&�=�=��|�/�H��^�F���
E��f����$�/� 9�:��D�D�D�D��G�$�$�X�.�.�E��,�%��"+�"3�H�f�"E�"E�"G�G�LN�
P�
P�
P�
P���rc��|dkr=|jj}|j}||f}|j�|d��dz|j|<|jS)Nr�rr)r�r�rrEr]r�)rr�rrr!r�rbs       rr�zTrace.localtrace_countCsO���&�=�=��|�/�H��^�F��F�"�C�#�{���s�A�6�6��:�D�K�����rc�\�t|j|j|j|j|j���S)N)rIrJrHrA)rrErIrJr�r�)rs r�resultsz
Trace.resultsKs1���t�{�4�;�'+�|�+/�+<�'+�}�6�6�6�	6r)	rrrrr
r
NNFr%)r&r'r(rr�r�r�rr�r�r�r�r�r�rr
rrrr�s�������DE�DH��0�0�0�0�d%�%�%�
)�)�)�)�	�	�	�'.�'.�'.�R	8�	8�	8�-�-�-����.
�
�
�������6�6�6�6�6rc�*����ddl}|���}|�ddd���|�dd��}|�dd	d
d���|�d
dd
d���|�ddd
d���|�ddd
d���|�d��}|���}|�ddd
d���|�ddd
d���|�ddd� ��|�d!d"d#� ��|�d$d%d
d&���|�d'd(d
d)���|�d*d+d
d,���|�d-d.��}|�d/d0gd1�2��|�d3d0gd4�2��|�d5d
d6d7�2��|�d8d9d:�;��|�d<|jd=�;��|���}|jr(tj	d>���tj	d?�����fd@��dA�|j
D��|_
�fdB�|jD��|_|jr]|js|�
dC��t|j|j�D��}|�|j|j|j��St'|j|j|j|jg��s|�
dE��|jr#|js|jr|�
dF��|jr|js|�
dG��|j�|�
dH��t3|j|j|j|j|j
|j|j|j|j�I�	�	}	|jrVddl}|j}|�|��\}	}
}|jg|j�t@_!dJ|j|
j"|
j#|
ddK�}n�|jg|j�t@_!tHj%�&|j��t@j%d<tOj(|j��5}
tS|
�*��|jdL��}ddd��n#1swxYwY|jdJdddM�}|�+|||��nL#tX$r4}tAj-dNt@j!d�dO|����Yd}~nd}~wt\$rYnwxYw|�/��}|j0s(|�|j|j|j��dSdS)PNrz	--version�versionz	trace 2.0)�actionrzMain optionsz(One of these (or --report) must be givenz-cz--count�
store_truez�Count the number of times each line is executed and write the counts to <module>.cover for each module executed, in the module's directory. See also --coverdir, --file, --no-report below.)r�helpz-tz--tracez3Print each line to sys.stdout before it is executedz-lz--listfuncsz�Keep track of which functions are executed at least once and write the results to sys.stdout after the program exits. Cannot be specified alongside --trace or --count.z-Tz--trackcallsz^Keep track of caller/called pairs and write the results to sys.stdout after the program exits.�	Modifiersz-rz--reportz�Generate a report from a counts file; does not execute any code. --file must specify the results file to read, which must have been created in a previous run with --count --file=FILEz-Rz--no-reportz^Do not generate the coverage report files. Useful if you want to accumulate over several runs.z-fz--filez+File to accumulate counts over several runs)rz-Cz
--coverdirz�Directory where the report files go. The coverage report for <package>.<module> will be written to file <dir>/<package>/<module>.coverz-mz	--missingz?Annotate executable lines that were not executed with ">>>>>> "z-sz	--summaryz\Write a brief summary for each file to sys.stdout. Can only be used with --count or --reportz-gz--timingzQPrefix each line with the time since the program started. Only used while tracing�FilterszCan be specified multiple timesz--ignore-module�appendzqIgnore the given module(s) and its submodules (if it is a package). Accepts comma separated list of module names.)r�defaultrz--ignore-dirzWIgnore files in the given directory (multiple directories can be joined by os.pathsep).z--moduleFzTrace a module. �progname�?zfile to run as main program)�nargsr�	argumentszarguments to the program�stdlib�
platstdlibc���tj�tj�|����}|�d����d���}tj�|��S)Nz$prefixz$exec_prefix)rr�
expanduser�
expandvarsr6r
)�s�_exec_prefix�_prefixs ��r�parse_ignore_dirzmain.<locals>.parse_ignore_dir�sa����G���r�w�1�1�!�4�4�5�5��
�I�I�i��)�)�1�1�.�,�O�O���w����"�"�"rc�f�g|].}|�d��D]}|������/S)�,)�split�strip)rr�r#s   rrzmain.<locals>.<listcomp>�sW��O�O�O��������O�O�:=��)�)�+�+�O�O�O�Orc�j��g|]/}|�tj��D]
}�|�����0Sr
)r1r�pathsep)rr�r+r.s   �rrzmain.<locals>.<listcomp>�s_���N�N�N�������9L�9L�N�N�45�(�'��*�*�N�N�N�Nrz-r/--report requires -f/--file)rIrJzLmust specify one of --trace, --count, --report, --listfuncs, or --trackcallsz8cannot specify both --listfuncs and (--trace or --count)z3--summary can only be used with --count or --reportz3progname is missing: required with the main options)r�r�r�r�rIrJr�r�)r&r
�__package__�
__loader__�__spec__�
__cached__r�)r
r&r5r8zCannot run file z
 because: )1�argparse�ArgumentParser�add_argument�add_argument_group�add_mutually_exclusive_group�	REMAINDER�
parse_args�
ignore_dir�	sysconfig�get_path�
ignore_module�reportrD�errorrr��missingryrz�anyr�r��	listfuncs�
trackcallsr"rr��module�runpy�_get_module_detailsr�r%r3�argv�parent�loaderrrrk�io�	open_coder�r�r�rP�exit�
SystemExitr�	no_report)r9�parser�grp�_grp�optsr�trK�module_name�mod_name�mod_specr��globsr�rVr,r-r.s               @@@r�mainr^QsQ������O�O�O�
�
$�
$�
&�
&�F�
����I�{��K�K�K�
�
#�
#�N�6�8�8�C����T�9�\�&��'�'�'�
���T�9�\�F��H�H�H����T�=��E��F�F�F����T�>�,�7��8�8�8��
#�
#�K�
0�
0�C��+�+�-�-�D����d�J�|��� � � �
	���d�M�,�G��H�H�H����T�8�>��@�@�@����T�<�2��3�3�3����T�;�|���������T�;�|�=��>�>�>����T�:�l�+��,�,�,��
#�
#�I�-�/�/�C����&�x��!��"�"�"����^�H�b�G��H�H�H����
�<��/��1�1�1�
���
�#�.��0�0�0�
����8�+=�+��-�-�-������D���8��$�X�.�.�� �)�,�7�7��#�#�#�#�#�#�
O�O�#'�#5�O�O�O�D��N�N�N�N� $��N�N�N�D�O��{�P��y�	;��L�L�9�:�:�:�!���D�I�F�F�F���$�$�T�\�4�<���O�O�O���
�D�J�����H�I�I�5����4�	5�	5�	5��~�Q�4�:�Q���Q����O�P�P�P��|�L�D�J�L����J�K�K�K��}�����J�K�K�K�
�d�j�$�*����?�t�7I������i���	5�	5�	5�A�
��;�	��L�L�L��-�K�',�'@�'@��'M�'M�$�H�h���(�:�4�>�:�C�H�&� �,�'��&�o�$�"�
��E�E��
�7���7�C�H��'�/�/�$�-�8�8�C�H�Q�K���d�m�,�,�
A���r�w�w�y�y�$�-��@�@��
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A�!�M�&�#�"�	��E�	
����u�e�$�$�$�$���H�H�H����S�X�a�[�[�[�#�#�F�G�G�G�G�G�G�G�G������
�
�
���
�����i�i�k�k�G��>�I����d�l�D�L�$�-�H�H�H�H�H�I�IsC� CT� )S�	T�S�T�S�&T�
U
�*T=�=
U
�U
r�r�)�__doc__�__all__rProrr3rAr�rrr�r�r�rL�timerr�r�r�rr/r=rr�r�r�rnrr^r&r
rr�<module>rbs���<��(�%�
&��	�	�	�	�����	�	�	�	�
�
�
�
�����������������	�	�	�	�
�
�
�
�
�
�
�
�#�#�#�#�#�#�����#��0�0�0�0�0�0�0�0�d��� � � �8l�l�l�l�l�l�l�l�\���
�
�
�
�
�
�
�.#�#�#�L6�L6�L6�L6�L6�L6�L6�L6�\PI�PI�PI�d�Z����D�F�F�F�F�F��r

?>