
    yIfX	                    d    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d	S )
z0Arguments provider class used to expose options.    )annotations)Iterator)Any)_ArgumentsManager)
OptionDictOptionsc                  d    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
dS )_ArgumentsProviderz.Base class for classes that provide arguments.strname r   optionszdict[str, str]option_groups_descsarguments_managerr   returnNonec                J    || _         	 | j                             |            d S N)_arguments_manager_register_options_provider)selfr   s     T/var/www/piapp/venv/lib/python3.11/site-packages/pylint/config/arguments_provider.py__init__z_ArgumentsProvider.__init__   s*    "3L::4@@@@@    optr   c                `    t          | j        j        |                    dd          d          S )z+Get the current value for the given option.-_N)getattrr   configreplace)r   r   s     r   _option_valuez _ArgumentsProvider._option_value"   s(    t.5s{{37L7LdSSSr   sIterator[tuple[str, list[tuple[str, OptionDict, Any]]] | tuple[None, dict[str, list[tuple[str, OptionDict, Any]]]]]c              #    K   i }| j         D ]W\  }}|                    |                    d          g                               |||                     |          f           Xd|v rd|                    d          fV  t          |                                          D ]\  }}|                                |fV  dS )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 4 4b99@@'4#5#5g#>#>?    8T****** &x~~'7'7 8 8 	+ 	+GW--//7*****	+ 	+r   NOptions | None%Iterator[tuple[str, OptionDict, Any]]c              #  `   K   || j         }|D ]\  }}|||                     |          fV   dS )zDEPRECATED.N)r   r"   )r   r   r.   r/   s       r   _options_and_valuesz&_ArgumentsProvider._options_and_values:   sZ       ?lG ' 	@ 	@GW7D$6$6w$?$??????	@ 	@r   )r   r   r   r   )r   r   r   r   )r   r#   r   )r   r2   r   r3   )__name__
__module____qualname____doc____annotations__r   r   r   r"   r1   r5   r   r   r   r
   r
      s         88IIIG,*,,,,,@A A A AT T T T+ + + +* )-@ @ @ @ @ @ @r   r
   N)r9   
__future__r   collections.abcr   typingr   pylint.config.arguments_managerr   pylint.typingr   r   r
   r   r   r   <module>r@      s   
 7 6 " " " " " " $ $ $ $ $ $       = = = = = = - - - - - - - -1@ 1@ 1@ 1@ 1@ 1@ 1@ 1@ 1@ 1@r   