
    c                         d Z ddlmZ ddl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mZ  G d d	e          Z G d
 d          ZdS )z0Arguments provider class used to expose options.    )annotationsN)Iterator)Any)_ArgumentsManager)
OptionDictOptionsc                  $     e Zd ZdZd fdZ xZS )UnsupportedActionzCRaised by set_option when it doesn't know what to do for an action.argsobjectreturnNonec                l    t          j        dt          d            t                      j        |  d S )NzGUnsupportedAction has been deprecated and will be removed in pylint 3.0   
stacklevel)warningswarnDeprecationWarningsuper__init__)selfr   	__class__s     @lib/python3.11/site-packages/pylint/config/arguments_provider.pyr   zUnsupportedAction.__init__   sA    U	
 	
 	
 	

 	$    )r   r   r   r   )__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r
   r
      sC        MM                   r   r
   c                      e Zd ZU dZded<   	 dZded<   	 i Zded<   	 d&dZed'd            Z	e	j
        d(d            Z	ed)d            Zd*dZ	 d+d,dZd-dZ	 	 d.d/dZd0d Zd1d"Z	 d+d2d%ZdS )3_ArgumentsProviderz.Base class for classes that provide arguments.strname r   optionszdict[str, str]option_groups_descsarguments_managerr   r   r   c                X    || _         	 | j                             |            d| _        d S )Nr   )_arguments_manager_register_options_provider_level)r   r(   s     r   r   z_ArgumentsProvider.__init__,   s/    "3L::4@@@r   intc                H    t          j        dt          d           | j        S )NzThe level attribute has been deprecated. It was used to display the checker in the help or not, and everything is displayed in the help now. It will be removed in pylint 3.0.r   r   r   r   r   r,   r   s    r   levelz_ArgumentsProvider.level4   s3     	^		
 	
 	
 	
 {r   valuec                L    t          j        dt          d           || _        d S )NzSetting the level attribute has been deprecated. It was used to display the checker in the help or not, and everything is displayed in the help now. It will be removed in pylint 3.0.r   r   r/   )r   r2   s     r   r1   z_ArgumentsProvider.level?   s6     	^		
 	
 	
 	
 r   argparse.Namespacec                R    t          j        dt          d           | j        j        S )NzThe checker-specific config attribute has been deprecated. Please use 'linter.config' to access the global configuration object.r   r   )r   r   r   r*   configr0   s    r   r6   z_ArgumentsProvider.configJ   s7     	I		
 	
 	
 	
 &--r   c                   t          j        dt          d           | j        D ]\  }}|                    d          }|dk    r|[t          j                    5  t          j        dt                     |                     |          }ddd           n# 1 swxY w Y   |                    d	          }|                     ||||           dS )
z9DEPRECATED: Initialize the provider using default values.zload_defaults has been deprecated. Option groups should be registered by initializing an ArgumentsProvider. This automatically registers the group on the ArgumentsManager.r   r   actioncallbackNignorecategorydefault)	r   r   r   r&   getcatch_warningsfilterwarningsget_option_def
set_option)r   optoptdictr8   r=   s        r   load_defaultsz _ArgumentsProvider.load_defaultsU   s*   N 	
 	
 	
 	
 !L 		? 		?LC[[**F# ? ;!022 ; ; /CUVVVV"&"5"5c":":; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "++i00Wfg>>>		? 		?s   1BB	B	NrC   rD   OptionDict | Nonec                H   t          j        dt          d           |[t          j                    5  t          j        dt                     |                     |          }ddd           n# 1 swxY w Y   |                    d|                    dd	                    S )
z:DEPRECATED: Get the config attribute corresponding to opt.zLoption_attrname has been deprecated. It will be removed in a future release.r   r   Nr:   r;   dest-_)r   r   r   r?   r@   rA   r>   replace)r   rC   rD   s      r   option_attrnamez"_ArgumentsProvider.option_attrnamei   s     	#		
 	
 	
 	
  	3(** 3 3';MNNNN--c223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 {{63;;sC#8#8999s   1A//A36A3r   c                    t          j        dt          d           t          | j        j        |                    dd          d          S )z7DEPRECATED: Get the current value for the given option.zIoption_value has been deprecated. It will be removed in a future release.r   r   rI   rJ   N)r   r   r   getattrr*   r6   rK   )r   rC   s     r   option_valuez_ArgumentsProvider.option_valuey   sN    #		
 	
 	
 	
 t.5s{{37L7LdSSSr   optnamer8   c                t    t          j        dt          d           | j                            ||           dS )z]DEPRECATED: Method called to set an option (registered in the options
        list).
        zset_option has been deprecated. You can use _arguments_manager.set_option or linter.set_option to set options on the global configuration object.r   r   N)r   r   r   r*   rB   )r   rP   r2   r8   rD   s        r   rB   z_ArgumentsProvider.set_option   sJ     	V		
 	
 	
 	
 	**7E:::::r   r   c                    t          j        dt          d           | j        sJ | j        D ]}|d         |k    r
|d         c S t	          j        d| d| j        |          )zDEPRECATED: Return the dictionary defining an option given its name.

        :raises OptionError: If the option isn't found.
        zKget_option_def has been deprecated. It will be removed in a future release.r   r   r      zno such option z in section )r   r   r   r&   optparseOptionErrorr$   )r   rC   options      r   rA   z!_ArgumentsProvider.get_option_def   s    
 	#		
 	
 	
 	
 |l 	! 	!FayC !ay   !"<c<<ty<<c
 
 	
r   sIterator[tuple[str, list[tuple[str, OptionDict, Any]]] | tuple[None, dict[str, list[tuple[str, OptionDict, Any]]]]]c           	   #  H  K   t          j        dt          d           i }| j        D ]\  }}t          j                    5  t          j        dt                     |                    |                    d          g                               ||| 	                    |          f           ddd           n# 1 swxY w Y   d|v rd|
                    d          fV  t          |                                          D ]\  }}|                                |fV  dS )zDEPRECATED: Return an iterator on options grouped by section.

        (section, [list of (optname, optdict, optvalue)])
        zOoptions_by_section has been deprecated. It will be removed in a future release.r   r   r:   r;   groupN)r   r   r   r&   r?   r@   
setdefaultr>   appendrO   popsorteditemsupper)r   sectionsrP   rD   sectionr&   s         r   options_by_sectionz%_ArgumentsProvider.options_by_section   s      	#		
 	
 	
 	
 BD $ 	 	GW(**  ';MNNNN##GKK$8$8"==DDgt'8'8'A'AB                
 8 	+T****** &x~~'7'7 8 8 	+ 	+GW--//7*****	+ 	+s    A.B::B>	B>	Options | None%Iterator[tuple[str, OptionDict, Any]]c              #  $  K   t          j        dt          d           || j        }|D ]e\  }}t          j                    5  t          j        dt                     |||                     |          fV  ddd           n# 1 swxY w Y   fdS )zDEPRECATED.zOoptions_and_values has been deprecated. It will be removed in a future release.r   r   Nr:   r;   )r   r   r   r&   r?   r@   rO   )r   r&   rP   rD   s       r   options_and_valuesz%_ArgumentsProvider.options_and_values   s      	#		
 	
 	
 	
  	#lG ' 	C 	CGW(** C C';MNNNNw(9(9'(B(BBBBBC C C C C C C C C C C C C C C	C 	Cs   6BB	B	)r(   r   r   r   )r   r-   )r2   r-   r   r   )r   r4   )r   r   )N)rC   r#   rD   rF   r   r#   )rC   r#   r   r   )NN)
rP   r   r2   r   r8   r   rD   r   r   r   )rC   r#   r   r   )r   rW   )r&   rc   r   rd   )r   r   r   r   __annotations__r&   r'   r   propertyr1   setterr6   rE   rL   rO   rB   rA   rb   rf   r%   r   r   r"   r"       s        88IIIG,*,,,,,@       X \   \ . . . X.? ? ? ?* 6:: : : : : T T T T ; ; ; ; ;&
 
 
 
&+ + + +@ )-C C C C C C Cr   r"   )r   
__future__r   argparserT   r   collections.abcr   typingr   pylint.config.arguments_managerr   pylint.typingr   r   	Exceptionr
   r"   r%   r   r   <module>rq      s   
 7 6 " " " " " "    $ $ $ $ $ $       = = = = = = - - - - - - - -
  
  
  
  
 	 
  
  
 wC wC wC wC wC wC wC wC wC wCr   