
    eX	                    \    d 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  G d d      Zy	)
z0Arguments provider class used to expose options.    )annotations)Iterator)Any)_ArgumentsManager)
OptionDictOptionsc                  l    e Zd ZU dZded<   	 dZded<   	 i Zded<   	 dd	Zdd
Z	 	 ddZ		 d	 	 	 ddZ
y)_ArgumentsProviderz.Base class for classes that provide arguments.strname r   optionszdict[str, str]option_groups_descsc                J    || _         	 | j                   j                  |        y N)_arguments_manager_register_options_provider)selfarguments_managers     B/usr/lib/python3/dist-packages/pylint/config/arguments_provider.py__init__z_ArgumentsProvider.__init__   s!    "3L::4@    c                d    t        | j                  j                  |j                  dd      d      S )z+Get the current value for the given option.-_N)getattrr   configreplace)r   opts     r   _option_valuez _ArgumentsProvider._option_value"   s(    t..55s{{37LdSSr   c              #  X  K   i }| j                   D ]G  \  }}|j                  |j                  d      g       j                  ||| j	                  |      f       I d|v rd|j                  d      f t        |j                               D ]  \  }}|j                         |f  yw)zuReturn an iterator on options grouped by section.

        (section, [list of (optname, optdict, optvalue)])
        groupN)	r   
setdefaultgetappendr    popsorteditemsupper)r   sectionsoptnameoptdictsectionr   s         r   _options_by_sectionz&_ArgumentsProvider._options_by_section&   s      BD $ 	GWG 4b9@@'4#5#5g#>?	 8T*** &x~~'7 8 	+GW--/7**	+s   B(B*Nc              #  h   K   || j                   }|D ]  \  }}||| j                  |      f  yw)zDEPRECATED.N)r   r    )r   r   r+   r,   s       r   _options_and_valuesz&_ArgumentsProvider._options_and_values:   sD      ?llG ' 	@GW7D$6$6w$???	@s   02)r   r   returnNone)r   r   r1   r   )r1   zsIterator[tuple[str, list[tuple[str, OptionDict, Any]]] | tuple[None, dict[str, list[tuple[str, OptionDict, Any]]]]]r   )r   zOptions | Noner1   z%Iterator[tuple[str, OptionDict, Any]])__name__
__module____qualname____doc____annotations__r   r   r   r    r.   r0   r   r   r   r
   r
      s`    8
IGW,*,,@AT+
+* )-@%@	.@r   r
   N)r6   
__future__r   collections.abcr   typingr   pylint.config.arguments_managerr   pylint.typingr   r   r
   r   r   r   <module>r=      s%   
 7 " $  = -1@ 1@r   