
    Bh                     V    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 Z	d
dZ
d Zd	 Zy)    N)StringIO)api)Checker)Reporterc                 H   t        | j                        5 }|j                         |j                  dz
     j	                         j                  d      r
	 d d d        y 	 d d d        | j                  j                   || j                  |g|i |       y # 1 sw Y   :xY w)N   z# nopyflakes)openfilename	readlineslinenostripendswithmessagesappend)selfmessageClassnodeargskwargscodes         S/home/dcms/DCMS/lib/python3.12/site-packages/cms/test_utils/util/static_analysis.py _pyflakes_report_with_nopyflakesr   	   s    	dmm	 >>DKK!O,224==nM M 	MMdmmTKDKFKL s   ?BB!c                     t         j                  j                  t         j                  j                  |            dk(  rg | _        y t        j                  | ||||       y )N
migrations)ospathbasenamedirnamer   r   
___init___)r   treer
   builtinsfile_tokenss        r   _pyflakes_no_migrationsr#      sC    	ww12lB4x;G    c                     d}t        j                  |       D ]-  }|j                  d      s|t        j                  ||      z  }/ |S )zB
    The builtin recursive checker tries to check .pyc files.
    r   z.py)r   iterSourceCoder   	checkPath)pathsreporternum_warningsr   s       r   _check_recursiver+      sL     L""5) :==CMM$99L: r$   c                 J   t         j                  t         _        t        t         _        t        t         _        t               }t        ||      }| D cg c]+  }t        j                  j                  |j                        - }}t        ||      |j                         fS c c}w )z
    Unfortunately, pyflakes does not have a way to suppress certain errors or
    a way to configure the checker class, so we have to monkey patch it.

    Returns number of warnings
    )r   __init__r   r#   r   reportr   r   r   r   r   __file__r+   getvalue)packagesoutr)   packager(   s        r   pyflakesr4   "   sx     !))G.G5GN
*CS!H>FG7RWW__W--.GEGE8,clln<< Hs   0B )z(none)N )r   ior   r4   r   pyflakes.checkerr   pyflakes.reporterr   r   r#   r+   r5   r$   r   <module>r9      s*    	   $ &MH=r$   