
    Be                     v    d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	 ddl
mZ dZ G d	 d
      Zd Zd Zd Zy)z&Command line interface for pydocstyle.    N   )check)ConfigurationParserIllegalConfiguration)log)Error)mainc                       e Zd ZdZdZdZy)
ReturnCoder   r      N)__name__
__module____qualname__no_violations_foundviolations_foundinvalid_options     .lib/python3.12/site-packages/pydocstyle/cli.pyr   r      s    Or   r   c            
         t        j                  t        j                         t	               } t        | j                                	 | j                          | j                         }t        |       t        j                  d       |j                  t        _        |j                  t        _        g }	 | j!                         D ](  \  }}}}}|j#                  t%        |f||||             * 	 d}	|D ]5  }t+        |d      r"t,        j.                  j1                  d|z         |	dz  }	7 |	dk(  rt        j2                  }
nt        j4                  }
|j6                  rt9        |	       |
S # t        $ r t        j                  cY S w xY w# t        $ r<}t        j&                  |j(                  d          t        j                  cY d }~S d }~ww xY w)Nzstarting in debug mode.)selectignore_decoratorsproperty_decoratorsignore_self_only_initr   codez%s
r   )r   setLevelloggingDEBUGr   setup_stream_handlersget_default_run_configurationparser   r   r   get_user_run_configurationdebugexplainr   sourceget_files_to_checkextendr   errorargshasattrsysstdoutwriter   r   countprint)confrun_conferrorsfilenamechecked_codesr   r   r   r(   r.   	exit_codes              r   run_pydocstyler6      s   LL D$<<>?*

 ..0H (#II'($$EM??ELF* $$&	 
!MMK(&7(;*?	* E 5&!JJVe^,
 z22	//	~~e_   *)))*>   *		%**Q- )))*s0   E, 5;F ,FF	G1GGGc                  ^    	 t        j                  t                      y# t        $ r Y yw xY w)zRun pydocstyle as a script.N)r+   exitr6   KeyboardInterruptr   r   r   r	   r	   L   s(    !" s     	,,c                     G d dt         j                        }g t        _        t        j                  t
        j                        }|j                  t         j                         |j                   |              | j                  r |j                  t         j                         nK| j                  r |j                  t         j                         n|j                  t         j                         t        j                  |       t        j                  t
        j                        }d}|j!                  t        j"                  |             |j                  t         j                         t        j                  |       y)z8Set up logging stream handlers according to the options.c                       e Zd Zd Zy)+setup_stream_handlers.<locals>.StdoutFilterc                 Z    |j                   t        j                  t        j                  fv S )N)levelnor   r   INFO)selfrecords     r   filterz2setup_stream_handlers.<locals>.StdoutFilter.filterX   s    >>gmmW\\%BBBr   N)r   r   r   rB   r   r   r   StdoutFilterr<   W   s    	Cr   rC   z%(levelname)s: %(message)s)fmtN)r   Filterr   handlersStreamHandlerr+   r,   r   WARNING	addFilterr#   r   verboser?   
addHandlerstderrsetFormatter	Formatter)r0   rC   stdout_handlerstderr_handler
msg_formats        r   r   r   T   s    Cw~~ C CL**3::6NGOO,\^,zz.	-0NN>"**3::6N-J 1 1j ABGOO,NN>"r   )__doc__r   r+   checkerr   configr   r   utilsr   
violationsr   __all__r   r6   r	   r   r   r   r   <module>rX      s9    ,  
  =  
 6r#r   