
    Vh                        d Z ddlmZ ddl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mZ d	dlmZ ddZddZ G d de      Zy)z'Generate console code coverage reports.    )annotationsN   )read_json_file)display)data_context)prepare_profiles   )combine_coverage_filesCoverageCombineConfig)run_coverageCoverageReportConfigc           	        t        |       }t        | |      }|D ]"  }| j                  s| j                  rVt	        j
                  ddj                  t        j                  j                  |      j                  d      dd       z         |j                  d      r t	        j
                  t        | |             g }| j                  r|j                  d       | j                  r|j!                  d| j                  g       | j"                  r|j!                  d	| j"                  g       t%        | ||d
|       % y)z#Generate a console coverage report.z>>> Coverage Group: %s =r	   Nz-powershellz--show-missingz	--includez--omitreport)r   r
   group_bystubr   infojoinospathbasenamesplitendswith"_generate_powershell_output_reportshow_missingappendincludeextendomitr   )args
host_stateoutput_filesoutput_fileoptionss        _/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_internal/commands/coverage/report.pycommand_coverage_reportr'   !   s    !$'J)$
;L# K==DIILL1CHHRWW=M=Mk=Z=`=`ad=efgfh=i4jjk.LL;D+NOG  /0||T\\:;yy$))45z;'J%K    c                \   t        |      }t               j                  j                  dz   }d}d}g }d}d}t	        |j                               D ]  }	||	   }
|	j                  |      r|	t        |      d }	| j                  r|	| j                  v rC| j                  r|	| j                  vr^t        |
      }t        |
j                         D cg c]
  }|dk(  s	| c}      }t        |t        |	      dz         }||z  }||z  }dj                  t        ||z
  |z  dz              }g }d}t	        |
j                         D cg c]  }t        |       c}      }t        |      D ]f  \  }}|
t        |         }|dk(  r||}|dk7  s$|'||d	z
     }||k(  r|j!                  t        |             n|j!                  |d
|       d}h |;|d   }||k(  r|j!                  t        |             n|j!                  |d
|       |j!                  |	||||d        |dk(  rydj                  t        ||z
  |z  dz              }t        dt        t        |                  }t        dt        t        |                  }||z   |z   |z   }dj#                  |      dj%                  |      z   dj%                  |      z   dj%                  |      z   }| j&                  r|dj%                  d      z  }|dz  }d
|z  }|D cg c]  }|d   j#                  |      t        |d         j%                  |      t        |d         j%                  |      |d   j%                  |      | j&                  rddj)                  |d         z   nd }}dj#                  |      t        |      j%                  |      z   t        |      j%                  |      z   |j%                  |      z   }dj                  ||dj)                  |      |      }|S c c}w c c}w c c}w )zMGenerate and return a PowerShell coverage report for the given coverage file./      r   Nr   z{0}%d   r	   -)namestmtsmisscovermissing NameStmtsMissCoverzLines Missing   r0   r1   r2   r3   z   z, r4   TOTALz{0}
{1}
{2}
{1}
{3}
)r   r   contentrootsortedkeys
startswithlenr    r   valuesmaxformatint	enumeratestrr   ljustrjustr   r   ) r!   coverage_filecoverage_info	root_pathname_paddingcover_paddingfile_reporttotal_stmts
total_missfilenamehit_infor1   hitr2   r3   r4   current_missingxsorted_linesidxlineend_linetotal_percentstmts_paddingmiss_paddingline_lengthheader
line_breakflinestotalsr   s                                    r&   r   r   ;   s#   "=1M&&++c1ILMKKJ=--/0 +q *y)I0H99TYY.<<HDLL8H8??#4ACqCAB<X):;ud
c54<5"83">?@x}}?!s1v?@"<0 
	'IC3t9%CaxO3"&o9'a0"h.NN3#78NNox#HI"&
	' &#B'H(*s?34/8DEHudUZgnopW+qZ aMM#{Z'?;&NQT&T"UVM3s;/01Mq#c*o./L.=MK\\,''--*FFVbIcc]]=)*F /''++r{"J "#  vY__\:C'
O<Q<QR_<` 6^11,?7AQAQR_A`@D@Q@QUTYYq|%<<WYY[ #E # ]]<(3{+;+A+A-+PP_""<013@3F3F}3UVF '--fj$))EBRTZ[FMu B @N#s   
P
P
P$
BP)c                  $     e Zd ZdZd fdZ xZS )r   z.Configuration for the coverage report command.c                    t         |   |       |j                  | _        |j                  | _        |j                  | _        y )N)super__init__r   r   r    )selfr!   	__class__s     r&   rh   zCoverageReportConfig.__init__   s4    "&"3"3 LL	r(   )r!   zt.AnyreturnNone)__name__
__module____qualname____doc__rh   __classcell__)rj   s   @r&   r   r      s    8# #r(   )r!   r   rk   rl   )r!   r   rK   rH   rk   rH   )rp   
__future__r   r   typingtior   utilr   datar   provisioningr   combiner
   r   r5   r   r'   r   r    r(   r&   <module>r{      sI    - " 	 

K4Sl#0 #r(   