
    <hR                         S SK r S SKrS SKrSrSrSr/ SQrS1rSS/rS	 r	S
 r
S\S\\\\   4   4S jrS rS r\S:X  a  \" 5         gg)    Nzapi/docs/CODE_QUALITY_INDEX.mdzapi/docs/DOCS_QUALITY_INDEX.mdzapi/docs/reference/source)zapi/srcsnitchzgonk-testUIscriptsz.pyABc            	      &  ^ [        5       n [         H{  n[        R                  " U5       H^  u  p#nU HR  m[	        U4S j[
         5       5      (       d  M#  U R                  [        R                  R                  UT5      5        MT     M`     M}     U $ )zFScan all source directories and return a set of all source file paths.c              3   F   >#    U  H  nTR                  U5      v   M     g 7f)N)endswith).0extfiles     1/root/zotify-API/scripts/check_quality_indexes.py	<genexpr>'get_all_source_files.<locals>.<genexpr>   s     G5Fct}}S))5Fs   !)	setSOURCE_DIRSoswalkanySOURCE_EXTENSIONSaddpathjoin)source_filessrc_dirroot_filesr   s        @r   get_all_source_filesr      sl    5L ggg.NDUG5FGGG $$RWW\\$%=>  / 
     c                  B   [        5       n [        R                  R                  [        5      (       al  [        R
                  " [        5       HN  nUR                  S5      (       d  M  U R                  [        R                  R                  [        U5      5        MP     U $ )zDScan the docs root and return a set of all documentation file paths.z.md)	r   r   r   exists	DOCS_ROOTlistdirr	   r   r   )	doc_filesr   s     r   get_all_doc_filesr%      sa    I	ww~~i  JJy)D}}U##bggll9d;< * r   	file_pathreturnc                    [        5       n/ n [        U SSS9 nUR                  5       nSSS5        [        W5       GH  u  pVUR	                  5       R                  S5      (       d  M,  UR                  S5       Vs/ s H  owR	                  5       PM     nn[        U5      S:  d  SUS   ;   d	  S	US   ;   a  M}  US   R                  S
S5      n	US   n
US   nUR                  U	5        U
[        ;  a!  UR                  SU
 SU  SU	 SUS-    S3	5        SUR                  5       ;   d  M  UR                  SU  SU	 SUS-    S35        GM     X4$ ! , (       d  f       GN.= fs  snf ! [         a    UR                  SU  35         X4$ f = f)z
Parses a quality index file.
Returns a tuple containing:
1. A set of all registered file paths.
2. A list of failure message strings for grade/comment violations.
rzutf-8)encodingN|   z	File Path   z---`       zInvalid grade 'z' in z
 for file z (line )pendingzComment 'pending' found in zQuality index file not found: )r   open	readlines	enumeratestrip
startswithsplitlenreplacer   VALID_DOC_GRADESappendlowerFileNotFoundError)r&   registered_filesfailuresflinesilineppartsfilepathgradecomments               r   parse_and_validate_indexrK   #   s    uHF)S73qKKME 4 !'GA::<**3//(,

381WWYE85zA~a!8EU1X<M Qx''R0H!HEAhG  *,,/%i[
S[R\\cdefgdgchhi jkGMMO+"=i[
S[R\\cdefgdgchhi jk' (0 %%7 43 9"  F8DE%%Fs;   E( EAE( <E#BE( +#E( 
E E( (F
Fc                  b   [        S5        / n [        5       n[        [        5      u  p#[        [        5      u  pEU R                  U5        U R                  U5        X-
  nU(       a6  [        [        U5      5       H  nU R                  S[         SU 35        M      U (       d  [        S5        U $ )z
Ensures that the quality index files are complete, synchronized, and meet
the quality grade standards. Returns a list of failure strings.
z.--- Running Quality Index Checks (Phase 2) ---zSource file not listed in z: uI   ✅ Quality indexes are consistent, complete, and meet quality standards.)	printr   rK   CODE_QUALITY_INDEX_PATHDOCS_QUALITY_INDEX_PATHextendsortedlistr=   )rA   actual_source_filesregistered_code_filesgrade_failures_coderegistered_doc_filesgrade_failures_docsunregistered_source_filesr   s           r   check_quality_indexesrY   K   s    
 

:;H /0 2JJa1b.0HI`0a-OO'(OO'( !4 K 4 9:;DOO89P8QQSTXSYZ[ < YZOr   c                      [        5       n U (       a8  [        S5        U  H  n[        SU 35        M     [        R                  " S5        [        R                  " S5        g)z!
Main entrypoint for the script.
z#
--- Quality Index Check Failed ---u   ❌ r-   r   N)rY   rM   sysexit)rA   rB   s     r   mainr]   o   sF     %&H45AD* HHQKr   __main__)r   rer[   rN   rO   r"   r   r   r<   r   r%   strtupler   rR   rK   rY   r]   __name__ r   r   <module>rd      s    	 	 
 ; : '	=G  : %& %&c49n0E %&P"H
 zF r   