§
    ÷yIf�c  ã                  ó®   — d Z ddlmZ ddlZddlm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
 dd	lmZ dd
lmZ erddlmZ  G d„ de	¦  «        Zdd„ZdS )zHPylint plugin for checking in Sphinx, Google, or Numpy style docstrings.é    )ÚannotationsN)ÚTYPE_CHECKING)Únodes)ÚBaseChecker)Úutils)Ú_check_docs_utils)Ú	Docstring)ÚHIGH)ÚPyLinterc                  óh  — e Zd ZdZdZddddddd	d
dgifddddd
dgifddddd
dgifdddd
dgifddddddœZd d!d"d#d$d%œfd&d!d"d#d'd%œfd(d!d"d#d)d%œfd*d!d"d#d+d%œfd,d-d.d/ eej        ¦  «        d0d1œffZ	d2d3hZ
d4d5hZdad:„ZeZdbd=„Zdbd>„Zdbd?„ZdcdA„ZdddC„ZdedE„ZeZdfdN„ZdfdO„ZdgdQ„Z	 dhdidY„Zdjd^„Zdkd`„ZdRS )lÚDocstringParameterCheckera‰  Checker for Sphinx, Google, or Numpy style docstrings.

    * Check that all function, method and constructor parameters are mentioned
      in the params and types part of the docstring.  Constructor parameters
      can be documented in either the class docstring or ``__init__`` docstring,
      but not both.
    * Check that there are no naming inconsistencies between the signature and
      the documentation, i.e. also report documented parameters that are missing
      in the signature. This is important to find cases where parameters are
      renamed only in the code, not in the documentation.
    * Check that all explicitly raised exceptions in a function are documented
      in the function docstring. Caught exceptions are ignored.

    Activate this checker by adding the line::

        load-plugins=pylint.extensions.docparams

    to the ``MAIN`` section of your ``.pylintrc``.
    Úparameter_documentation)z@"%s" has constructor parameters documented in class and __init__úmultiple-constructor-doczAPlease remove parameter declarations in the class or constructor.)z#"%s" not documented as being raisedúmissing-raises-docz:Please document exceptions for all raised exception types.)zRedundant returns documentationúredundant-returns-docz>Please remove the return/rtype documentation from this method.)zRedundant yields documentationúredundant-yields-docz8Please remove the yields documentation from this method.zMissing return documentationúmissing-return-docz8Please add documentation about what this method returns.Ú	old_names)ÚW9007zold-missing-returns-doc)z!Missing return type documentationúmissing-return-type-docz1Please document the type returned by this method.zMissing yield documentationúmissing-yield-docz:Please add documentation about what this generator yields.)ÚW9009zold-missing-yields-doc)z Missing yield type documentationúmissing-yield-type-docz0Please document the type yielded by this method.z'"%s" missing in parameter documentationúmissing-param-docz5Please add parameter declarations for all parameters.)ÚW9003zold-missing-param-docz,"%s" missing in parameter type documentationúmissing-type-docz:Please add parameter type declarations for all parameters.)ÚW9004zold-missing-type-doc)z)"%s" differing in parameter documentationúdiffering-param-docz-Please check parameter names in declarations.)z."%s" differing in parameter type documentationúdiffering-type-docz2Please check parameter names in type declarations.)z,"%s" useless ignored parameter documentationúuseless-param-docz2Please remove the ignored parameter documentation.)z1"%s" useless ignored parameter type documentationúuseless-type-docz7Please remove the ignored parameter type documentation.)z!Missing any documentation in "%s"úmissing-any-param-docz/Please add parameter and/or type documentation.)ÚW9005ÚW9006ÚW9008ÚW9010ÚW9011ÚW9012ÚW9013ÚW9014ÚW9015ÚW9016ÚW9017ÚW9018ÚW9019ÚW9020ÚW9021zaccept-no-param-docTÚynz<y or n>zmWhether to accept totally missing parameter documentation in the docstring of a function that has parameters.)ÚdefaultÚtypeÚmetavarÚhelpzaccept-no-raise-doczoWhether to accept totally missing raises documentation in the docstring of a function that raises an exception.zaccept-no-return-doczoWhether to accept totally missing return documentation in the docstring of a function that returns a statement.zaccept-no-yields-doczWWhether to accept totally missing yields documentation in the docstring of a generator.zdefault-docstring-typeÚchoicer3   z<docstring type>zRIf the docstring type cannot be guessed the specified docstring type will be used.)r4   r3   r5   Úchoicesr6   Ú__init__Ú__new__ÚselfÚclsÚnodeúnodes.FunctionDefÚreturnÚNonec                ó°  — t          j        |j        | j        j        j        ¦  «        }| j        j        j        }|rt          j        ||j	        ¦  «        rdS t          j        |¦  «        |j        z
  }| j        j        j        }|dk    r||k     rdS |                      ||¦  «         |                      ||¦  «         |                      ||¦  «         dS )z¿Called for function and method definitions (def).

        :param node: Node for a function or method definition in the AST
        :type node: :class:`astroid.scoped_nodes.Function`
        Néÿÿÿÿ)r   ÚdocstringifyÚdoc_nodeÚlinterÚconfigÚdefault_docstring_typeÚno_docstring_rgxÚreÚmatchÚnameÚchecker_utilsÚget_node_last_linenoÚlinenoÚdocstring_min_lengthÚcheck_functiondef_paramsÚcheck_functiondef_returnsÚcheck_functiondef_yields)r;   r=   Únode_docrH   ÚlinesÚ	max_liness         úO/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/docparams.pyÚvisit_functiondefz+DocstringParameterChecker.visit_functiondefÁ   sÞ   € õ Ô%ØŒM˜4œ;Ô-ÔDñ
ô 
ˆð
  œ;Ô-Ô>ÐØð 	¥¤Ð)9¸4¼9Ñ EÔ Eð 	ØˆFõ Ô2°4Ñ8Ô8¸4¼;ÑFˆØ”KÔ&Ô;ˆ	Ø�rŠ>ˆ>˜e iÒ/Ð/ØˆFà×%Ò% d¨HÑ5Ô5Ð5Ø×&Ò& t¨XÑ6Ô6Ð6Ø×%Ò% d¨HÑ5Ô5Ð5Ð5Ð5ó    rS   r	   c                óî  — d }|j         | j        v rÇt          j        |¦  «        }|�±t	          j        |j        | j        j        j	        ¦  «        }|  
                    |||¦  «         |                     ¦   «         p|                     ¦   «         pd }|                     ¦   «         p|                     ¦   «         pd }|                      ||j        ||¦  «         |                      ||j        ||¦  «         d S ©N)rK   Úconstructor_namesrL   Únode_frame_classr   rC   rD   rE   rF   rG   Úcheck_single_constructor_paramsÚ
has_paramsÚparams_documented_elsewhereÚcheck_arguments_in_docstringÚargs)r;   r=   rS   Únode_allow_no_paramÚ
class_nodeÚ	class_docÚclass_allow_no_params          rV   rP   z2DocstringParameterChecker.check_functiondef_paramsÜ   s&  € ð #ÐØŒ9˜Ô.Ð.Ð.Ý&Ô7¸Ñ=Ô=ˆJØÐ%Ý!Ô.ØÔ'¨¬Ô);Ô)Rñô �	ð ×4Ò4°YÀÈ*ÑUÔUÐUð
 ×(Ò(Ñ*Ô*ð Ø ×<Ò<Ñ>Ô>ðàð $ð ×'Ò'Ñ)Ô)ð Ø×;Ò;Ñ=Ô=ðàð %ð ×1Ò1Ø˜tœy¨*Ð6Jñô ð ð 	×)Ò)Ø�d”i Ð':ñ	
ô 	
ð 	
ð 	
ð 	
rX   c                ój  — |j         s|                     ¦   «         s|                     ¦   «         rd S |                     t          j        ¦  «        }|                     ¦   «         s|                     ¦   «         r:t          d„ |D ¦   «         ¦  «        s|  	                    d|t          ¬¦  «         d S d S d S )Nc              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S rZ   )r   Úreturns_something)Ú.0Úret_nodes     rV   ú	<genexpr>zFDocstringParameterChecker.check_functiondef_returns.<locals>.<genexpr>  sF   è è € ð H
ð H
Ø2:�EÔ# HÑ-Ô-ðH
ð H
ð H
ð H
ð H
ð H
rX   r   ©r=   Ú
confidence)Úsupports_yieldsÚis_generatorÚis_abstractÚnodes_of_classÚastroidÚReturnÚhas_returnsÚ	has_rtypeÚanyÚadd_messager
   )r;   r=   rS   Úreturn_nodess       rV   rQ   z3DocstringParameterChecker.check_functiondef_returnsý   sé   € ð Ô(ð 	¨T×->Ò->Ñ-@Ô-@ð 	ÀT×EUÒEUÑEWÔEWð 	ØˆFà×*Ò*­7¬>Ñ:Ô:ˆØ× Ò Ñ"Ô"ð 	R h×&8Ò&8Ñ&:Ô&:ð 	RÅCð H
ð H
Ø>JðH
ñ H
ô H
ñ E
ô E
ð 	Rð ×ÒÐ4¸4ÍDÐÑQÔQÐQÐQÐQð	Rð 	Rð 	Rð 	RrX   c                óî   — |j         r|                     ¦   «         rd S |                     ¦   «         s|                     ¦   «         r/|                     ¦   «         s|                      d|¬¦  «         d S d S d S )Nr   )r=   )rn   rp   Ú
has_yieldsÚhas_yields_typero   rw   )r;   r=   rS   s      rV   rR   z2DocstringParameterChecker.check_functiondef_yields	  s¢   € ð Ô'ð 	¨4×+;Ò+;Ñ+=Ô+=ð 	ØˆFð ×ÒÑ!Ô!ð	@Ø%-×%=Ò%=Ñ%?Ô%?ð	@à×#Ò#Ñ%Ô%ð	@ð ×ÒÐ3¸$ÐÑ?Ô?Ð?Ð?Ð?ð	@ð 	@ð 	@ð 	@rX   únodes.Raisec                óš  ‡— |                      ¦   «         }t          |t          j        ¦  «        sd S | j        j        j        }|rt          j        ||j	        ¦  «        rd S t          j        |¦  «        }|sd S |j        st          j        |¦  «        }|r|}t          j        |j        | j        j        j        ¦  «        }| j        j        j        r|                     ¦   «         sd S |                     ¦   «         s+|j        r"d„ |D ¦   «         }|                      ||¦  «         d S |                     ¦   «         }d„ |D ¦   «         }	t+          ¦   «         }
|D ]]}|	D ]>Š‰|j	        k    r nJt-          ˆfd„|                     ¦   «         D ¦   «         ¦  «        r nŒ?|
                     |j	        ¦  «         Œ^|                      |
|¦  «         d S )Nc                ó   — h | ]	}|j         ’Œ
S © ©rK   ©ri   Úexcs     rV   ú	<setcomp>z8DocstringParameterChecker.visit_raise.<locals>.<setcomp>3  s   € Ð=Ð=Ð=¨˜3œ8Ð=Ð=Ð=rX   c                óD   — h | ]}|                      d ¦  «        d         ’ŒS )ú.rB   )Úsplitr�   s     rV   rƒ   z8DocstringParameterChecker.visit_raise.<locals>.<setcomp>:  s'   € Ð!VÐ!VÐ!V¸ #§)¢)¨C¡.¤.°Ô"4Ð!VÐ!VÐ!VrX   c              3  ó.   •K  — | ]}‰|j         k    V — Œd S rZ   r€   )ri   ÚancestorÚ	found_excs     €rV   rk   z8DocstringParameterChecker.visit_raise.<locals>.<genexpr>A  s*   øè è € ÐWÐW°h�y H¤MÒ1ÐWÐWÐWÐWÐWÐWrX   )ÚframeÚ
isinstancerr   ÚFunctionDefrE   rF   rH   rI   rJ   rK   r   Úpossible_exc_typesrD   Úget_setters_propertyrC   rG   Úaccept_no_raise_docÚ
exceptionsÚmatching_sectionsÚdocÚ_add_raise_messageÚsetrv   Ú	ancestorsÚadd)r;   r=   Ú	func_noderH   Úexpected_excsÚ	property_r’   ÚmissingÚfound_excs_full_namesÚfound_excs_class_namesÚmissing_excsÚexpectedr‰   s               @rV   Úvisit_raisez%DocstringParameterChecker.visit_raise  s  ø€ Ø—J’J‘L”Lˆ	Ý˜)¥WÔ%8Ñ9Ô9ð 	ØˆFð  œ;Ô-Ô>ÐØð 	¥¤Ð)9¸9¼>Ñ JÔ Jð 	ØˆFåÔ0°Ñ6Ô6ˆàð 	ØˆFàÔ!ð 	&õ Ô2°9Ñ=Ô=ˆIØð &Ø%�	åÔ ØÔ ¤Ô 2Ô Iñ
ô 
ˆð Œ;ÔÔ1ð 	¸#¿.º.Ñ:JÔ:Jð 	ØˆFà×$Ò$Ñ&Ô&ð 	ØŒwð <Ø=Ð=¨}Ð=Ñ=Ô=�Ø×'Ò'¨°Ñ;Ô;Ð;ØˆFà #§¢Ñ 0Ô 0Ðð "WÐ!VÐ@UÐ!VÑ!VÔ!VÐå‘u”uˆØ%ð 	0ð 	0ˆHØ3ð 0ð 0�	Ø ¤Ò-Ð-Ø�EÝÐWÐWÐWÐWÀ(×BTÒBTÑBVÔBVÐWÑWÔWÑWÔWð Ø�Eðð × Ò  ¤Ñ/Ô/Ð/øà×Ò ¨iÑ8Ô8Ð8Ð8Ð8rX   únodes.Returnc                óœ  — t          j        |¦  «        sd S | j        j        j        rd S |                     ¦   «         }| j        j        j        }|rt          j        ||j	        ¦  «        rd S t          j
        |j        | j        j        j        ¦  «        }t          j        |¦  «        }|                     ¦   «         s3|                     ¦   «         r|s|                      d|t$          ¬¦  «         |j        s|j        rd S |                     ¦   «         s5|                     ¦   «         r|s!|                      d|t$          ¬¦  «         d S d S d S )Nr   rl   r   )r   rh   rE   rF   Úaccept_no_return_docrŠ   rH   rI   rJ   rK   rC   rD   rG   rL   Údecorated_with_propertyrt   Úhas_property_returnsrw   r
   ÚreturnsÚtype_comment_returnsru   Úhas_property_type)r;   r=   r—   rH   r’   Úis_propertys         rV   Úvisit_returnz&DocstringParameterChecker.visit_returnH  sp  € ÝÔ& tÑ,Ô,ð 	ØˆFàŒ;ÔÔ2ð 	ØˆFà)-¯ª©¬ˆ	ð  œ;Ô-Ô>ÐØð 	¥¤Ð)9¸9¼>Ñ JÔ Jð 	ØˆFåÔ ØÔ ¤Ô 2Ô Iñ
ô 
ˆõ $Ô;¸IÑFÔFˆà—’Ñ!Ô!ð 	T c×&>Ò&>Ñ&@Ô&@ð 	TÀ[ð 	TØ×ÒÐ1¸	ÍdÐÑSÔSÐSàÔð 	 	Ô >ð 	ØˆFà—’‘”ð 	Y C×$9Ò$9Ñ$;Ô$;ð 	YÀð 	YØ×ÒÐ6¸YÕSWÐÑXÔXÐXÐXÐXð	Yð 	Yð 	Yð 	YrX   únodes.Yield | nodes.YieldFromc                óX  — | j         j        j        rd S |                     ¦   «         }| j         j        j        }|rt          j        ||j        ¦  «        rd S t          j	        |j
        | j         j        j        ¦  «        }|j        r)|                     ¦   «         }|                     ¦   «         }n(|                     ¦   «         }|                     ¦   «         }|s|                      d|t$          ¬¦  «         |s-|j        s(|j        s#|                      d|t$          ¬¦  «         d S d S d S d S )Nr   rl   r   )rE   rF   Úaccept_no_yields_docrŠ   rH   rI   rJ   rK   r   rC   rD   rG   rn   rz   r{   rt   ru   rw   r
   r¥   r¦   )r;   r=   r—   rH   r’   Údoc_has_yieldsÚdoc_has_yields_types          rV   Úvisit_yieldz%DocstringParameterChecker.visit_yielde  sX  € ØŒ;ÔÔ2ð 	ØˆFà)-¯ª©¬ˆ	ð  œ;Ô-Ô>ÐØð 	¥¤Ð)9¸9¼>Ñ JÔ Jð 	ØˆFåÔ ØÔ ¤Ô 2Ô Iñ
ô 
ˆð Ôð 	2Ø Ÿ^š^Ñ-Ô-ˆNØ"%×"5Ò"5Ñ"7Ô"7ÐÐà Ÿ_š_Ñ.Ô.ˆNØ"%§-¢-¡/¤/Ðàð 	SØ×ÒÐ0°yÍTÐÑRÔRÐRð  ð	XØ#,Ô#4ð	XØ8AÔ8Vð	Xð ×ÒÐ5¸IÕRVÐÑWÔWÐWÐWÐWð	Xð 	Xð 	Xð 	Xð 	Xð 	XrX   Úfound_argument_namesúset[str]Ú
message_idÚstrÚnot_needed_namesÚexpected_argument_namesÚwarning_nodeúnodes.NodeNGc                ó  — ||z
  |z
  }t          ¦   «         }|D ]0}|                     dd¦  «        |v rŒ|                     |¦  «         Œ1|rA|                      |d                     t          |¦  «        ¦  «        f|t          ¬¦  «         dS dS )a¬  Compare the found argument names with the expected ones and
        generate a message if there are arguments missing.

        :param found_argument_names: argument names found in the docstring

        :param message_id: pylint message id

        :param not_needed_names: names that may be omitted

        :param expected_argument_names: Expected argument names

        :param warning_node: The node to be analyzed
        Ú*Ú ú, ©ra   r=   rm   N©r”   Úreplacer–   rw   ÚjoinÚsortedr
   )	r;   r°   r²   r´   rµ   r¶   Ú potential_missing_argument_namesÚmissing_argument_namesrK   s	            rV   Ú_compare_missing_argsz/DocstringParameterChecker._compare_missing_args…  sÄ   € ð, $Ð&:Ñ:Øñ,Ð(õ
 "%¡¤ÐØ4ð 	-ð 	-ˆDØ�|Š|˜C Ñ$Ô$Ð(<Ð<Ð<ØØ"×&Ò& tÑ,Ô,Ð,Ð,à!ð 	Ø×ÒØØ—i’i¥Ð'=Ñ >Ô >Ñ?Ô?ÐAØ!Ýð	 ñ ô ð ð ð ð	ð 	rX   c                óv  — t          ¦   «         }|D ]Y}|                     dd¦  «        |v r*|                     |                     dd¦  «        ¦  «         ŒD|                     |¦  «         ŒZ||z  |z
  |z
  }|rA|                      |d                     t          |¦  «        ¦  «        f|t          ¬¦  «         dS dS )a°  Compare the found argument names with the expected ones and
        generate a message if there are extra arguments found.

        :param found_argument_names: argument names found in the docstring

        :param message_id: pylint message id

        :param not_needed_names: names that may be omitted

        :param expected_argument_names: Expected argument names

        :param warning_node: The node to be analyzed
        r¹   rº   r»   r¼   Nr½   )	r;   r°   r²   r´   rµ   r¶   Ú modified_expected_argument_namesrK   Údiffering_argument_namess	            rV   Ú_compare_different_argsz1DocstringParameterChecker._compare_different_args­  sò   € õ, 69±U´UÐ(Ø+ð 	;ð 	;ˆDØ�|Š|˜C Ñ$Ô$Ð(<Ð<Ð<Ø0×4Ò4°T·\²\À#ÀrÑ5JÔ5JÑKÔKÐKÐKà0×4Ò4°TÑ:Ô:Ð:Ð:ð .Ð0DÑDØñà%ñ&ð 	!ð $ð 	Ø×ÒØØ—i’i¥Ð'?Ñ @Ô @ÑAÔAÐCØ!Ýð	 ñ ô ð ð ð ð	ð 	rX   Úignored_argument_namesc                ó–   — ||z  }|rA|                       |d                     t          |¦  «        ¦  «        f|t          ¬¦  «         dS dS )aq  Compare the found argument names with the ignored ones and
        generate a message if there are ignored arguments found.

        :param found_argument_names: argument names found in the docstring
        :param message_id: pylint message id
        :param ignored_argument_names: Expected argument names
        :param warning_node: The node to be analyzed
        r»   r¼   N)rw   r¿   rÀ   r
   )r;   r°   r²   rÈ   r¶   Úexisting_ignored_argument_namess         rV   Ú_compare_ignored_argsz/DocstringParameterChecker._compare_ignored_argsØ  sn   € ð +AÐCWÑ*WÐ'à*ð 	Ø×ÒØØ—i’i¥Ð'FÑ GÔ GÑHÔHÐJØ!Ýð	 ñ ô ð ð ð ð	ð 	rX   Nr’   Úarguments_nodeúastroid.Argumentsúastroid.NodeNGÚaccept_no_param_docúbool | Nonec                óô  ‡— |j         sdS |€| j        j        j        }|                     ¦   «         }d„ |j        D ¦   «         }|                     d„ |j        |j        z   D ¦   «         ¦  «         | j	         
                    ¦   «         }t          ¦   «         }| j        j        j        Š‰rˆfd„|D ¦   «         }|j        �:|                     d|j        › �¦  «         |                     d|j        › �¦  «         |j        �:|                     d|j        › �¦  «         |                     d|j        › �¦  «         |                     ¦   «         \  }	}
|	s|
s|rd}|                      |
d||¦  «         |
t%          j        |¦  «        z  }
|s ||	z
  | j	        |z  z
  }||
z
  ||z  z
  }||cxk    r|k    r;n n8t)          |¦  «        d	k    r%|                      d
|j        f|t.          ¬¦  «         n=|                      |	d| j	        |z  ||¦  «         |                      |
d||z  ||¦  «         |                      |	d| j	        ||¦  «         |                      |
d|||¦  «         |                      |	d||¦  «         dS )a;  Check that all parameters are consistent with the parameters mentioned
        in the parameter documentation (e.g. the Sphinx tags 'param' and 'type').

        * Undocumented parameters except 'self' are noticed.
        * Undocumented parameter types except for 'self' and the ``*<args>``
          and ``**<kwargs>`` parameters are noticed.
        * Parameters mentioned in the parameter documentation that don't or no
          longer exist in the function parameter list are noticed.
        * If the text "For the parameters, see" or "For the other parameters,
          see" (ignoring additional white-space) is mentioned in the docstring,
          missing parameter documentation is tolerated.
        * If there's no Sphinx style, Google style or NumPy style parameter
          documentation at all, i.e. ``:param`` is never mentioned etc., the
          checker assumes that the parameters are documented in another format
          and the absence is tolerated.

        :param doc: Docstring for the function, method or class.
        :type doc: :class:`Docstring`

        :param arguments_node: Arguments node for the function, method or
            class constructor.
        :type arguments_node: :class:`astroid.scoped_nodes.Arguments`

        :param warning_node: The node to assign the warnings to
        :type warning_node: :class:`astroid.scoped_nodes.Node`

        :param accept_no_param_doc: Whether to allow no parameters to be
            documented. If None then this value is read from the configuration.
        :type accept_no_param_doc: bool or None
        Nc                ó   — h | ]	}|j         ’Œ
S r   r€   )ri   Úargs     rV   rƒ   zIDocstringParameterChecker.check_arguments_in_docstring.<locals>.<setcomp>   s   € Ð"KÐ"KÐ"K° 3¤8Ð"KÐ"KÐ"KrX   c              3  ó$   K  — | ]}|j         V — Œd S rZ   r€   )ri   Úas     rV   rk   zIDocstringParameterChecker.check_arguments_in_docstring.<locals>.<genexpr>!  s5   è è € ð '
ð '
ØˆAŒFð'
ð '
ð '
ð '
ð '
ð '
rX   c                ó>   •— h | ]}‰                      |¦  «        ¯|’ŒS r   )rJ   )ri   rÓ   rÈ   s     €rV   rƒ   zIDocstringParameterChecker.check_arguments_in_docstring.<locals>.<setcomp>)  s=   ø€ ð 3ð 3ð 3àØ)×/Ò/°Ñ4Ô4ð3Øð3ð 3ð 3rX   r¹   z**Tr!   r   r"   r¼   r   r   r   r   r    )r’   rE   rF   rÏ   r_   ra   ÚupdateÚposonlyargsÚ
kwonlyargsÚnot_needed_param_in_docstringÚcopyr”   rÈ   Úvarargr–   ÚkwargÚmatch_param_docsrË   r   Úargs_with_annotationÚlenrw   rK   r
   rÃ   rÇ   )r;   r’   rÌ   r¶   rÏ   Útolerate_missing_paramsrµ   Únot_needed_type_in_docstringÚ#expected_but_ignored_argument_namesÚparams_with_docÚparams_with_typeÚmissing_param_docÚmissing_type_docrÈ   s                @rV   r`   z6DocstringParameterChecker.check_arguments_in_docstringñ  s‘  ø€ ðN Œwð 	ØˆFàÐ&Ø"&¤+Ô"4Ô"HÐØ"%×"AÒ"AÑ"CÔ"CÐð #LÐ"K°~Ô7JÐ"KÑ"KÔ"KÐØ×&Ò&ð '
ð '
Ø*Ô6¸Ô9RÑRð'
ñ '
ô '
ñ 	
ô 	
ð 	
ð (,Ô'I×'NÒ'NÑ'PÔ'PÐ$å.1©e¬eÐ+Ø!%¤Ô!3Ô!JÐØ!ð 	ð3ð 3ð 3ð 3à2ð3ñ 3ô 3Ð/ð Ô Ð,Ø#×'Ò'Ð(C¨NÔ,AÐ(CÐ(CÑDÔDÐDØ(×,Ò,Ð-H°Ô1FÐ-HÐ-HÑIÔIÐIØÔÐ+Ø#×'Ò'Ð(C¨^Ô-AÐ(CÐ(CÑDÔDÐDØ(×,Ò,Ð-H°.Ô2FÐ-HÐ-HÑIÔIÐIØ,/×,@Ò,@Ñ,BÔ,BÑ)ˆÐ)àð 	+Ð'7ð 	+Ð<Oð 	+Ø&*Ð#ð
 	×"Ò"ØØØ/Øñ		
ô 	
ð 	
ð 	�EÔ6°~ÑFÔFÑFÐà&ð  	Ø!8¸?Ñ!JØÔ2Ð5XÑXñ!Ðð !8Ð:JÑ JØ,Ð/RÑRñ Ðð "Ð%<ÐPÐPÒPÐPÐ@PÒPÐPÐPÐPÐPÝÐ/Ñ0Ô0°AÒ5Ð5à× Ò Ø+Ø&Ô+Ð-Ø%Ý#ð	 !ñ ô ð ð ð ×*Ò*Ø#Ø'ØÔ6Ø9ñ:à+Ø ñô ð ð ×*Ò*Ø$Ø&Ø0Ð3VÑVØ+Ø ñô ð ð 	×$Ò$ØØ!ØÔ.Ø#Øñ	
ô 	
ð 	
ð 	×$Ò$ØØ Ø(Ø#Øñ	
ô 	
ð 	
ð 	×"Ò"ØØØ/Øñ		
ô 	
ð 	
ð 	
ð 	
rX   rd   Úinit_docrc   únodes.ClassDefc                ó¦   — |                      ¦   «         r:|                      ¦   «         r(|                      d|j        f|t          ¬¦  «         d S d S d S )Nr   r¼   )r^   rw   rK   r
   )r;   rd   rè   rc   s       rV   r]   z9DocstringParameterChecker.check_single_constructor_params|  sw   € ð ×ÒÑ!Ô!ð 	 h×&9Ò&9Ñ&;Ô&;ð 	Ø×ÒØ*Ø ”oÐ'ØÝð	 ñ ô ð ð ð ð	ð 	ð 	ð 	rX   Úmissing_exceptionsc                ó  — |                      ¦   «         r'	 |                     d¦  «         n# t          $ r Y nw xY w|rA|                      dd                     t          |¦  «        ¦  «        f|t          ¬¦  «         dS dS )zÂAdds a message on :param:`node` for the missing exception type.

        :param missing_exceptions: A list of missing exception types.
        :param node: The node show the message on.
        ÚNotImplementedErrorr   r»   r¼   N)rp   ÚremoveÚKeyErrorrw   r¿   rÀ   r
   )r;   rë   r=   s      rV   r“   z,DocstringParameterChecker._add_raise_message‡  s²   € ð ×ÒÑÔð 	ðØ"×)Ò)Ð*?Ñ@Ô@Ð@Ð@øÝð ð ð Ø�ðøøøàð 	Ø×ÒØ$Ø—i’i¥Ð'9Ñ :Ô :Ñ;Ô;Ð=ØÝð	 ñ ô ð ð ð ð	ð 	s   –, ¬
9¸9)r=   r>   r?   r@   )r=   r>   rS   r	   r?   r@   )r=   r|   r?   r@   )r=   r    r?   r@   )r=   rª   r?   r@   )r°   r±   r²   r³   r´   r±   rµ   r±   r¶   r·   r?   r@   )
r°   r±   r²   r³   rÈ   r±   r¶   r·   r?   r@   rZ   )
r’   r	   rÌ   rÍ   r¶   rÎ   rÏ   rÐ   r?   r@   )rd   r	   rè   r	   rc   ré   r?   r@   )rë   r±   r=   r>   r?   r@   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rK   ÚmsgsÚlistr   ÚDOCSTRING_TYPESÚoptionsr[   rÚ   rW   Úvisit_asyncfunctiondefrP   rQ   rR   rŸ   r©   r¯   Úvisit_yieldfromrÃ   rÇ   rË   r`   r]   r“   r   rX   rV   r   r      sî  € € € € € ðð ð( %€Dð
ð

ð

ð

ð +Ø ØFØÐ?Ð@ÐAð	
ð
ð *ØØHØÐ>Ð?Ð@ð	
ð
ð 6ØØCØÐ=Ð>Ð?ð	
ð ;ØØHØÐ<Ð=Ð>ð	
ð
ð

ð

ð

ð

ð_Tð T€Dðp "àØØ%ðð	ð ð
	
ð "àØØ%ð'ð	ð ð
	
ð #àØØ%ð'ð	ð ð
	
ð #àØØ%ðAð	ð ð		
ð %à Ø$Ø-Ø˜4 Ô 5Ñ6Ô6ð=ðð ð
	
ðY7€Gðr $ YÐ/ÐØ%+¨U OÐ!ð6ð 6ð 6ð 6ð2 /Ðð
ð 
ð 
ð 
ðB
Rð 
Rð 
Rð 
Rð	@ð 	@ð 	@ð 	@ð29ð 29ð 29ð 29ðhYð Yð Yð Yð:Xð Xð Xð Xð< "€Oð&ð &ð &ð &ðP)ð )ð )ð )ðVð ð ð ð< ,0ðI
ð I
ð I
ð I
ð I
ðV	ð 	ð 	ð 	ðð ð ð ð ð rX   r   rE   r   r?   r@   c                óJ   — |                       t          | ¦  «        ¦  «         d S rZ   )Úregister_checkerr   )rE   s    rV   Úregisterrü   �  s%   € Ø
×ÒÕ5°fÑ=Ô=Ñ>Ô>Ð>Ð>Ð>rX   )rE   r   r?   r@   )ró   Ú
__future__r   rI   Útypingr   rr   r   Úpylint.checkersr   r   rL   Úpylint.extensionsr   Ú#pylint.extensions._check_docs_utilsr	   Úpylint.interfacesr
   Úpylint.lintr   r   rü   r   rX   rV   ú<module>r     s  ðð
 OÐ Nà "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  à €€€Ø Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø "Ð "Ð "Ð "Ð "Ð "àð %Ø$Ð$Ð$Ð$Ð$Ð$ðA
ð A
ð A
ð A
ð A
 ñ A
ô A
ð A
ðH?ð ?ð ?ð ?ð ?ð ?rX   