
    L-Ph                    4   d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZmZmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)  G d d          Z* G d dej+                  Z, G d de,          Z- G d de,          Z.e*j/        e*j0        e*j1        gZ2 e.de*j3        e*j4        e*j5        e*j6        e*j7        ge2z   dd           e.de*j8        e*j9        e*j:        e*j;        ge2z   dd           e.de2d d!           e.d"e*j9        ge2z   d#$           e.d%e2d&d'           e.d(e*j<        e*j3        e*j4        e*j=        e*j5        e*j6        e*j7        e*j>        e*j;        e*j?        e*j@        e*jA        e*jB        e*jC        ge2z   dd)           e.d*e*j<        e*j4        e*j=        e*j5        e*j6        e*j7        e*jD        e*jE        e*j;        e*j?        g
e2z   dd+           e.d,e*j4        e*j=        e*j5        e*j6        e*jF        e*j7        e*j;        ge2z   dd-           e.d.e*j<        e*j4        e*j=        e*jG        e*j5        e*j6        e*j7        e*j>        e*jH        e*jI        e*j@        e*jA        e*jB        ge2z   dd/           e.d0e*j8        e*jJ        e*jK        e*jL        e*jM        e*j6        e*jN        e*j7        e*jO        e*jP        e*jQ        e*jR        ge2z   d1d2           e.d3e*j4        e*j=        e*j5        e*j6        e*j7        e*jS        e*j;        e*jB        ge2z   dd4          d5ZT	 	 	 dRdSd=ZUd>\  ZVZWZX G d? d@          ZYdTdDZZdUdGZ[dHdIdJdKZ\dVdWdNZ] ej^        dO          Z_e_rddPl`maZa e]Zb	 dVdWdQZ]dS dS )Xz%Command-line support for coverage.py.    )annotationsN)castAnyNoReturn)Coverage)env)CoverageConfig)DEFAULT_DATAFILE)CTRACER_FILE)combinable_filesdebug_data_file)info_headershort_stackwrite_formatted_info)_BaseCoverageException_ExceptionDuringRunNoSource)PyRunner)display_coveredshould_fail_under)__url__c                  j   e Zd ZdZ ej        dddd          Z ej        dddd	          Z ej        dd
ddd                    d	                     e
ej                                                Z ej        ddddd          Z ej        ddddd          Z ej        ddddd          Z ej        ddddd          Z ej        ddddd          Z ej        ddddd          Z ej        d d!dd"d#          Z ej        dd$dd%d&d'(          Z ej        dd)dd*d+          Z ej        d,d-dd.          Z ej        d/d0dd1          Z ej        dd2dd3d4          Z ej        dd5dd6          Z ej        d7d8dd9          Z ej        d:d;dd<          Z ej        d:d=dd>          Z ej        dd?dd3d@          Z ej        dAdddBddCD          Z ej        dAdddBddED          Z ej        dAdddBddFD          Z  ej        ddGddH          Z! ej        dIdJddK          Z" ej        ddLddMe#dN(          Z$ ej        dOdPddQ          Z% ej        ddRddS          Z& ej        dTddU          Z' ej        dVddW          Z( ej        dXdYdZd[\          Z) ej        d]dd^          Z* ej        d_dd`da          Z+ ej        ddbddcdd          Z, ej        ddeddf          Z- ej        ddgddhdi          Z. ej        ddjddk          Z/dlS )mOptszBA namespace class for individual options we'll build parsers from.z-az--append
store_truezGAppend coverage data to .coverage, otherwise it starts clean each time.)actionhelp z--branchz:Measure branch coverage in addition to statement coverage.z--concurrencystoreLIBSzaProperly measure code using a concurrency library. Valid values are: {}, or a comma-list of them.z, )r   metavarr   z	--contextLABELz2The context label to record for this coverage run.z
--contextszREGEX1,REGEX2,...ziOnly display data from lines covered in the given contexts. Accepts Python regexes, which must be quoted.z--data-fileDATAFILEzXBase name of the data files to operate on. Defaults to '.coverage'. [env: COVERAGE_FILE]INFILEzfRead coverage data for report generation from this file. Defaults to '.coverage'. [env: COVERAGE_FILE]OUTFILEz\Write the recorded coverage data to this file. Defaults to '.coverage'. [env: COVERAGE_FILE]z--debugOPTSz9Debug options, separated by commas. [env: COVERAGE_DEBUG]z-dz--directoryDIRzWrite the output files to DIR.z--fail-underMINfloatz?Exit with a status of 2 if the total coverage is less than MIN.)r   r    typer   z--formatFORMATz9Output format, either text (default), markdown, or total.z-hz--helpzGet help on this command.z-iz--ignore-errorsz)Ignore errors while reading source files.z	--includezPAT1,PAT2,...zpInclude only files whose paths match one of these patterns. Accepts shell-style wildcards, which must be quoted.z--keepz9Keep original coverage files, otherwise they are deleted.z-Lz--pylibzWMeasure coverage even inside the Python installed library, which isn't done by default.-mz--show-missingzEShow line numbers of statements in each module that weren't executed.--modulezb<pyfile> is an importable Python module, not a script path, to be run as 'python -m' would run it.z--omitzhOmit files whose paths match one of these patterns. Accepts shell-style wildcards, which must be quoted.z-ooutfilez=Write the XML report to this file. Defaults to 'coverage.xml')r   destr    r   z?Write the JSON report to this file. Defaults to 'coverage.json'z?Write the LCOV report to this file. Defaults to 'coverage.lcov'z--pretty-printz"Format the JSON for human readers.z-pz--parallel-modez|Append the machine name, process id and random number to the data file name to simplify collecting data from many processes.z--precisionNzVNumber of digits after the decimal point to display for reported coverage percentages.z-qz--quietz-Don't print messages about what is happening.z--rcfilezSpecify configuration file. By default '.coveragerc', 'setup.cfg', 'tox.ini', and 'pyproject.toml' are tried. [env: COVERAGE_RCFILE]z--show-contextsz Show contexts for covered lines.z--skip-coveredzSkip files with 100% coverage.z--no-skip-coveredstore_falseskip_coveredzDisable --skip-covered.)r   r.   r   z--skip-emptyzSkip files with no code.z--sortCOLUMNzbSort the report by the named column: name, stmts, miss, branch, brpart, or cover. Default is name.z--sourcezSRC1,SRC2,...z=A list of directories or importable names of code to measure.z--timidz*Use the slower Python trace function core.z--titleTITLEz.A text string to use as the title on the HTML.z	--versionz%Display version information and exit.N)0__name__
__module____qualname____doc__optparsemake_optionappendbranchformatjoinsortedr	   CONCURRENCY_CHOICESconcurrencycontextcontextsdatafiledatafle_inputdatafile_outputdebug	directory
fail_underr   ignore_errorsincludekeeppylibshow_missingmoduleomit
output_xmloutput_jsonoutput_lcovjson_pretty_printparallel_modeint	precisionquietrcfileshow_contextsr1   no_skip_covered
skip_emptysortsourcetimidtitleversion     P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/coverage/cmdline.pyr   r   #   s       LL
 "X!jV  F "X!
J|I  F '(&
OGV=
&66."DEEFF
G
G  K #h"
KA  G $x#
L2E<  H $x#
M':<  H )H(
M'8<  M +h*
M'9<  O !H 
IgvH  E %$mGU-  I &%
N7EN  J "X!
JwH  F  8h|(  D )H(8  M #h"
KC  G  8
H\H  D !H i+  E (8'|T  L "X!j5  F  8
HWoC  D &%by)L  J '(&by)N  K '(&by)N  K -,
\1   )H(  M %$
M'3S-  I !H i<  E "X!
JwA  F )H(,/  M (8'-  L +h*M&  O &%|'  J  8(   D "X!
JwL  F !H 
Il9  E !H 
Igw=  E #h"
K4  GGGrb   r   c                  T     e Zd ZdZd fdZ G d d	e          Zd fdZddZ xZ	S )CoverageOptionParserz|Base OptionParser for coverage.py.

    Problems don't exit the program.
    Defaults are initialized for all options.

    argsr   kwargsreturnNonec                <   d|d<    t                      j        |i |  | j        d#i dd dd dd dd dd dd d	d d
d dd dd dd dd dd dd dd dd dd dd dd dd dd dddd dd dd dd dd dd d d d!d d"d  |                                  d S )$NFadd_help_optionr   r:   r;   r@   rA   rB   	data_filerF   rG   rH   r<   r   rI   rJ   rK   rN   rO   rT   rV   rL   rW   rX   TrY   rM   r1   r[   r\   r]   r^   r_   r`   ra   )super__init__set_defaultsdisable_interspersed_args)selfrf   rg   	__class__s      rc   rn   zCoverageOptionParser.__init__   s   $) !$)&))) !	
 !	
 !	
4!	
 4!	
 4	!	

 !	
 D!	
 T!	
 d!	
 $!	
 d!	
 t!	
 4!	
 !	
 $!	
 D!	
  !!	
" 4#!	
$ %!	
& $'!	
( d)!	
* $+!	
, $-!	
. 4/!	
0 $1!	
2 3!	
4 5!	
6 t7!	
8 9!	
: 4;!	
< $=!	
> $?!	
@ DA!	
 !	
F 	&&(((((rb   c                      e Zd ZdZdS )&CoverageOptionParser.OptionParserErrorz;Used to stop the optparse error handler ending the process.N)r4   r5   r6   r7   ra   rb   rc   OptionParserErrorrt     s        IIrb   ru   	list[str].tuple[bool, optparse.Values | None, list[str]]c                    	 t                                          |          \  }}n# | j        $ r ddg fcY S w xY wd||fS )zUCall optparse.parse_args, but return a triple:

        (ok, options, args)

        FNT)rm   
parse_argsru   )rq   rf   optionsrr   s      rc   parse_args_okz"CoverageOptionParser.parse_args_ok  sb    	#!GG..t44MGTT% 	# 	# 	#$?"""	#Wd""s   $( ::msgstrr   c                .    t          |           | j        )z7Override optparse.error so sys.exit doesn't get called.)	show_helpru   )rq   r|   s     rc   errorzCoverageOptionParser.error(  s    #$$rb   )rf   r   rg   r   rh   ri   )rf   rv   rh   rw   )r|   r}   rh   r   )
r4   r5   r6   r7   rn   	Exceptionru   r{   r   __classcell__rr   s   @rc   re   re      s         &) &) &) &) &) &)P    I   
# 
# 
# 
# 
# 
#% % % % % % % %rb   re   c                  $     e Zd ZdZd fdZ xZS )GlobalOptionParserz<Command-line parser for coverage.py global option arguments.rh   ri   c                    t                                                       |                     t          j        t          j        g           d S N)rm   rn   add_optionsr   r   r`   )rq   rr   s    rc   rn   zGlobalOptionParser.__init__1  sJ    IL
 	 	 	 	 	rb   rh   ri   )r4   r5   r6   r7   rn   r   r   s   @rc   r   r   .  sC        FF         rb   r   c                  @     e Zd ZdZ	 dd fd
ZddZdZd fdZ xZS )CmdOptionParserz4Parse one of the new-style commands for coverage.py.Nr   r}   rz   list[optparse.Option]descriptionusage
str | Nonec                    |rd|z   }t                                          ||           |                     |           |                     |           || _        dS )a4  Create an OptionParser for a coverage.py command.

        `action` is the slug to put into `options.action`.
        `options` is a list of Option's for the command.
        `description` is the description of the command, for the help text.
        `usage` is the usage string to display in help.

        z%prog r   r   )r   N)rm   rn   ro   r   cmd)rq   r   rz   r   r   rr   s        rc   rn   zCmdOptionParser.__init__=  sv      	%u$E# 	 	
 	
 	
 	(((!!!rb   otherrh   boolc                     |d| j          dk    S )Nz<CmdOptionParser:>)r   )rq   r   s     rc   __eq__zCmdOptionParser.__eq__V  s     8TX88889rb   c                \    t                                                      }| d| j         S )z>Override of an undocumented function in optparse.OptionParser. )rm   get_prog_namer   )rq   program_namerr   s     rc   r   zCmdOptionParser.get_prog_name]  s0    ww,,.. +++++rb   r   )r   r}   rz   r   r   r}   r   r   )r   r}   rh   r   )rh   r}   )	r4   r5   r6   r7   rn   r   __hash__r   r   r   s   @rc   r   r   :  s        >> !      2: : : :
 H, , , , , , , , , ,rb   r   annotatez[options] [modules]z|Make annotated copies of the given files, marking statements that are executed with > and statements that are missed with !.r   combinez%[options] <path1> <path2> ... <pathN>a&  Combine data from multiple coverage files. The combined results are written to a single file representing the union of the data. The positional arguments are data files or directories containing data files. If no paths are provided, data files in the default data file's directory are combined.rF   z<topic>aB  Display information about the internals of coverage.py, for diagnosing problems. Topics are: 'data' to show a summary of the collected data; 'sys' to show installation information; 'config' to show the configuration; 'premain' to show what is calling coverage; 'pybehave' to show internal flags describing Python behavior.erasez)Erase previously collected coverage data.)r   r   z	[command]zDescribe how to use coverage.pyhtmlzCreate an HTML report of the coverage of the files.  Each file gets its own page, with the source decorated to show executed, excluded, and missed lines.jsonz+Generate a JSON report of coverage results.lcovz,Generate an LCOV report of coverage results.reportz&Report coverage statistics on modules.runz$[options] <pyfile> [program options]z/Run a Python program, measuring code execution.xmlz+Generate an XML report of coverage results.)r   r   rF   r   r   r   r   r   r   r   r   r   r   topicparseroptparse.OptionParser | Nonerh   ri   c                   | s|s|sJ t           j        d         }|                    t          j        j        dz             rt          j                            |          }t          j                            |          }t          j	        r/d}|                    |          r|dt          |                    }t          t          j                  }t          |d<   ||d<   t          rd|d<   nd	|d<   | r;t!          | t           j        
           t!          d| dt           j        
           n|rBt!          |                                                                           t!                       nr|J t)          j        t,                              |d                                                    }|rt!           |j        di |           nt!          d|           t!           dj        di |           dS )z-Display an error message, or the named topic.r   z__main__.pyz
-script.pyNr   r   zwith C extensionextension_modifierzwithout C extension)filezUse 'z help' for help.r   zDon't know topic z"Full documentation is at {__url__}ra   )sysargvendswithospathsepdirnamebasenamer   WINDOWSlendictcoverage__dict__r   r   printstderrformat_helpstriptextwrapdedentHELP_TOPICSgetr<   )r   r   r   program_pathr   auto_suffixhelp_paramshelp_msgs           rc   r   r   '  s    #E#V###8A;LRW[=899 5w|447##L11L
{ < #  -- 	<'(:#k*:*:):(:;Lx())K$K	".K B,>()),A() 1e#*%%%%4l4443:FFFFF	 	1f  ""((**+++   ?;??5"#=#=>>DDFF 	1/(/00K001111/e//000	
5
.
5
D
D
D
DEEEEErb   )r         c                  :    e Zd ZdZddZddZddZddZddZdS )CoverageScriptz*The command-line interface to coverage.py.rh   ri   c                    d| _         |  d S )NF)global_option)rq   s    rc   rn   zCoverageScript.__init__\  s    "rb   r   rv   rU   c                l
   |st          d           t          S |d                             d          | _        | j        rt	                      }nKt
                              |d                   }|st          d|d                    t          S |dd         }|                    |          \  }}}|st          S |J | 	                    |||          rt          S t          |j                  }t          |j                  }t          |j                  }t          |j                  }	t          |j                  }
|j        |j                            d          }nd}t%          |j        pt(          |j        |j        |j        |j        |j        ||||	|d	|j        |j         
          | _        |j        dk    r|                     |          S |j        dk    r | j                                         t          S |j        dk    r|                      ||          S |j        dk    rs|j!        r| j        "                                 |pd}| j        #                    |d	tI          |j%                             | j        &                                 t          S tO          tQ          |          |j)        |||
          }tT          j+        ,                    dd           | j        "                                 d}|j        dk    r8 | j        j-        d#|j.        |j/        |j0        |j1        |j2        |j3        d|}n|j        dk    r | j        j4        d#d|j5        i| n|j        dk    r8 | j        j6        d#|j5        |j.        |j0        |j1        |j7        |j8        d|}n|j        dk    r  | j        j9        d#|j:        |j1        d|}n]|j        dk    r& | j        j;        d#|j:        |j<        |j7        d|}n,|j        dk    r | j        j=        d#d|j:        i|}nt|          ||j?         | j        @                    d|j?                   |j.         | j        @                    d|j.                   t          t          | j        C                    d                    }t          t          | j        C                    d                    }t          |||          r=d 3                    t          ||          ||!          }t          d"|           t          S t          S )$zThe bulk of the command line interface to coverage.py.

        `argv` is the argument list to process.

        Returns 0 if all is well, 1 if something went wrong.

        minimum_helpr   r   -zUnknown command: r   N,T)rl   data_suffixcover_pylibr^   r;   config_filer]   rO   rJ   rF   r@   check_preimportedrA   messagesrF   r   r   r   )strictrK   )morfsrI   rO   rJ   rB   r   r   )rV   rM   r1   r[   r\   output_formatr   rG   r   )rG   rV   r1   r[   rY   r_   r   )r-   r[   r   )r-   pretty_printrY   r   r-   zreport:fail_underzreport:precisionz;total of {total} is less than fail-under={fail_under:.{p}f})totalrH   pzCoverage failure:ra   )Ir   OK
startswithr   r   COMMANDSr   ERRr{   do_helpunshell_listr]   rO   rJ   rF   rB   r@   splitr   rl   r
   rT   rL   r^   r;   rX   rA   rW   r   r   do_debugr   do_runr:   loadr   r   rK   saver   unglob_argsrI   r   r   insertr   rV   rM   r1   r[   r\   r<   r   rG   html_reportrY   r_   
xml_reportr-   json_reportr   lcov_reportAssertionErrorrH   
set_optionr   r(   
get_optionrU   r   r   r   
FAIL_UNDER)rq   r   r   okrz   rf   r]   rO   rJ   rF   rB   r@   
data_pathsreport_argsr   rH   rV   r|   s                     rc   command_linezCoverageScript.command_line`  s     	N++++I
 "!W//44 	'))FF\\$q'**F 9d1g99:::
8D"0066GT 	J""" <<v.. 	I gn--GL))w//W]++ 011*!-33C88KKK !';+;-->#"O &
 
 
" >W$$==&&&^w&&M!!!I^u$$;;w---^y((~ %""$$$JM!!*TW\@R@R!SSSM   I d##!/
 
 
 	2>X%%(DM( !+$1$1"-\%n   EE ^z))"DM"NNW->N+NNNN^v%%-DM- !+!+$1"-%3m   EE ^u$$,DM, "-   EE
 ^v%%-DM- $1%3  	 EE ^v%%-DM-   EE !  !-(()<g>PQQQ ,(();W=NOOOeT]%=%=>Q%R%RSSJS$-":":;M"N"NOOI 
I>> "SZZ)%;;) [  
 )3///!!	rb   rz   optparse.Valuesrf   r   optparse.OptionParserr   c                ^   |j         r*| j        rt          d           nt          |           dS |j        dk    rW|rC|D ]?}t                              |          }|t          |           /t          |           @nt          d           dS |j        rt          d           dS dS )z`Deal with help requests.

        Return True if it handled the request, False if not.

        r   r   )r   TNr`   F)r   r   r   r   r   r   r`   )rq   rz   rf   r   aparser_maybes         rc   r   zCoverageScript.do_help  s     < 	! )'''''((((4>V## ( + +A#+<<??L#/!66666!*****+ ''''4 ? 	I&&&&4urb   c                Z   |s}|j         rt          d           t          S t          t          | j                            d                    }|1t          j        |          }|r|d         dv rd|_         |dd         }|st          d           t          S |j	        r0| j                            d	          rt          d
           t          S |j
        dk    r4dD ]1}t          ||          t          dd| dz              t          c S 2dt          j        d<   t          |t          |j                             }|                                 |j	        r| j                                         | j                                         d}	 |                                 n# t(          $ r d} w xY w	 | j                                         |r| j                                         n:# | j                                         |r| j                                         w w xY wt.          S )z!Implementation of 'coverage run'.zNo module specified for -mzrun:command_lineNr   >   r+   r,   Tr   zNothing to do.zrun:parallelz,Can't append to data files in parallel mode.multiprocessing)r;   rJ   rO   rL   r]   r^   zROptions affecting multiprocessing must only be specified in a configuration file.
z	Remove --z from the command line.trueCOVERAGE_RUN)	as_moduleF)rN   r   r   r   r}   r   r   shlexr   r:   r@   getattrr   environr   r   preparer   startr   r   stopr   r   )rq   rz   rf   r   opt_namerunnercode_rans          rc   r   zCoverageScript.do_run*  sp     
	$~ 6777
T]%=%=>P%Q%QRRL'{<00 $DG'999%)GN8D 	&'''J> 	dm66~FF 	DEEEJ"333 V 	 	 7H--95EHEEEF  
 JJJ : &,
>"$$w~*>*>???> 	!M    		%JJLLLL 	 	 	H	 
 M    %""$$$ M    %""$$$$% 	s   F% $G, %F33G, ,7H#c                   |st          d           t          S |dd         rt          d           t          S |d         dk    r/t          t          d| j                                                   nQ|d         dk    rmt          t          d                     | j        j        j        }t          |           t          |          D ] }t          d           t          |           !n|d         d	k    r3t          t          d	| j        j                                                   n|d         d
k    r:t          t          d
                     t          t          d                     nS|d         dk    r(t          t          dt          j                               nt          d|d                    t          S t          S )z#Implementation of 'coverage debug'.zFWhat information would you like: config, data, sys, premain, pybehave?r   Nz Only one topic at a time, pleaser   r   dataz-----configpremainT)fullpybehavezDon't know what you mean by )r   r   r   r   r   sys_infor   r	  rl   r   r   
debug_infor   r   r   )rq   rf   rl   filenames       rc   r   zCoverageScript.do_debuge  s     	^___J8 	8999J7e t}/E/E/G/GHHHH!W+f%%&&&,6II&&&,Y77 * *g))))* !W   $-2F2Q2Q2S2STTTT!W	!!+i(()))+4((())))!W
"" 
CN4D4DEEEE@T!W@@AAAJ	rb   Nr   )r   rv   rh   rU   )rz   r   rf   rv   r   r   rh   r   )rz   r   rf   rv   rh   rU   )rf   rv   rh   rU   )	r4   r5   r6   r7   rn   r   r   r   r   ra   rb   rc   r   r   Y  s        44       b b b bH$ $ $ $L9 9 9 9v     rb   r   sr}   list[str] | Nonec                v    | sdS t           j        r|                     d          } |                     d          S )z)Turn a command-line argument into a list.N'r   )r   r   r   r   )r  s    rc   r   r     s:     t
{  GGCLL773<<rb   rf   rv   c                    t           j        rNg }| D ]G}d|v sd|v r(|                    t          j        |                     2|                    |           H|} | S )z5Interpret shell wildcards for platforms that need it.?*)r   r   extendglobr:   )rf   globbedargs      rc   r   r     sm    
{  	$ 	$CczzSCZZty~~....s####Krb   a          Coverage.py, version {__version__} {extension_modifier}
        Measure, collect, and report on code coverage in Python programs.

        usage: {program_name} <command> [options] [args]

        Commands:
            annotate    Annotate source files with execution information.
            combine     Combine a number of data files.
            debug       Display information about the internals of coverage.py
            erase       Erase previously collected coverage data.
            help        Get help on using coverage.py.
            html        Create an HTML report.
            json        Create a JSON report of coverage results.
            lcov        Create an LCOV report of coverage results.
            report      Report coverage stats on modules.
            run         Run a Python program and measure code execution.
            xml         Create an XML report of coverage results.

        Use "{program_name} help <command>" for detailed help on any command.
    zjCode coverage for Python, version {__version__} {extension_modifier}.  Use '{program_name} help' for help.z7Coverage.py, version {__version__} {extension_modifier})r   r   r`   r   
int | Nonec                   | t           j        dd         } 	 t                                          |           }n# t          $ r$}t          j        |j          t          }Y d}~nfd}~wt          $ r-}|j        d         }t          |           t          }Y d}~n1d}~wt          $ r!}|j        r|j        d         }nd}Y d}~nd}~ww xY w|S )z\The main entry point to coverage.py.

    This is installed as the script entry point.

    Nr   r   )r   r   r   r   r   	tracebackprint_exceptionrf   r   r   r   
SystemExit)r   statuserrr|   s       rc   mainr"    s     |x|!!..t44    	!38,,!   hqkc


   8 	Xa[FFF Ms-   !: 
CA##C0#BC%CCCOVERAGE_PROFILE)SimpleLauncherc           
        t          j                    }	 t          |           |                    dd          \  }}t	          |                    |ddd                     |                                 S # |                    dd          \  }}t	          |                    |ddd                     |                                 w xY w)z$A wrapper around main that profiles.r   d   )	re_filtermax_recordsr   )querylimitr   col)r$  launchoriginal_mainr)  r   showcancel)r   profilerr  _s       rc   r"  r"    s     "(**	 &&nnzsnKKGD!(--d#22-FFGGGOO nnzsnKKGD!(--d#22-FFGGGOOs   A8 8AC)NNN)r   r   r   r   r   r   rh   ri   )r  r}   rh   r  )rf   rv   rh   rv   r   )r   r  rh   r  )cr7   
__future__r   r  r8   r   os.pathr   r   r   r  typingr   r   r   r   r   r   coverage.configr	   coverage.controlr
   coverage.corer   coverage.datar   r   coverage.debugr   r   r   coverage.exceptionsr   r   r   coverage.execfiler   coverage.resultsr   r   coverage.versionr   r   OptionParserre   r   r   rF   r   rX   GLOBAL_ARGSrG   rD   rI   rJ   rO   r:   rC   rK   rW   rB   rH   rV   rY   r1   rZ   r[   r_   rQ   rS   rR   r<   r\   rM   r;   r@   rA   rE   rN   rL   rT   r]   r^   rP   r   r   r   r   r   r   r   r   r   r"  getenv_profileox_profile.core.launchersr$  r-  ra   rb   rc   <module>rC     s   , + " " " " " "   				   



      & & & & & & & & & &              * * * * * * - - - - - - & & & & & & ; ; ; ; ; ; ; ; I I I I I I I I I I U U U U U U U U U U & & & & & & ? ? ? ? ? ? ? ? $ $ $ $ $ $
B B B B B B B BJC% C% C% C% C%80 C% C% C%L	 	 	 	 	- 	 	 	(, (, (, (, (,* (, (, (,b 	JIK  NLI	 	 $<    KMIJ		
 	 6&  & _P	   _M		 @   O5   OMNOLINJ OJ	 	  $4)  4 OMOLI"J	 	 $A  $ OOLIJ	 	 $B   oMOKLINI O	 	 $<%  * ?KKL LKIJKJ	 	 5E#  ( ?OLIOJO		 		 $A  Kt tp +/,F ,F ,F ,F ,F^  Cj j j j j j j jZ	   
 
 
 
.	. I9 @    B 29'(( 888888M "&
 
 
 
 
 
 
	 rb   