o
    ýÑÐbÈ  ã                   @   sö   d Z ddlmZ ddlZddlZdZdZdd„ Zdd„ Zd	d
„ Z	G dd„ de
ƒZG dd„ de
ƒZG dd„ deƒZdd„ eD ƒZdd„ Ze ddg¡Zeƒ Ze ddg¡Zeƒ Zeaeadd„ ZG dd„ de
ƒZdd„ Zdd„ ZdZG d d!„ d!eƒZdS )"z"Test for the invalid-name warning.é    )Úprint_functionNÚ c                  C   s   d} t | ƒ dS )zBad function name.é   N©Úprint)ZBAD_LOCAL_VAR© r   úa/var/www/secure340b-portal/env/lib/python3.10/site-packages/pylint/test/functional/name_styles.pyÚBADFUNCTION_name   s   r	   c                 C   s   | S )z%Function with a badly named argument.r   )ZNOT_GOODr   r   r   Úfunc_bad_argname   ó   r
   c                 C   s   t | ||ƒ dS )zWell-formed function.Nr   )Zarg1Zarg21Zarg22r   r   r   Úno_nested_args   s   r   c                   @   ó   e Zd ZdZdS )Úbad_class_namezClass with a bad name.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r      ó    r   c                   @   s8   e Zd ZdZdd„ ZdZdZdd„ Zdd	„ Zd
d„ Z	dS )ÚCorrectClassNamezClass with a good name.c                 C   s"   d| _ d| _d| _d | _d | _d S )Né
   é   é   )Z_good_private_nameZ)_CorrectClassName__good_real_private_nameZgood_attribute_nameÚ_Bad_AtTR_nameZBad_PUBLIC_name©Úselfr   r   r   Ú__init__"   s
   
zCorrectClassName.__init__zWhy Was It Bad Class Attribute?zGood Class Attributec                 C   ó   dS )zA Method with a bad name.Nr   r   r   r   r   ÚBadMethodName,   ó    zCorrectClassName.BadMethodNamec                 C   r   )zA method with a good name.Nr   r   r   r   r   Úgood_method_name/   r   z!CorrectClassName.good_method_namec                 C   r   )zAnother badly named method.Nr   r   r   r   r   Ú__DunDER_IS_not_free_for_all__2   r   z/CorrectClassName.__DunDER_IS_not_free_for_all__N)
r   r   r   r   r   ÚzzZGOOD_CLASS_ATTRr   r    r!   r   r   r   r   r      s    r   c                       s,   e Zd ZdZdZ‡ fdd„Zdd„ Z‡  ZS )ÚDerivedFromCorrectz‡A derived class with an invalid inherited members.

    Derived attributes and methods with invalid names do not trigger warnings.
    zNow a good class attributec                    s   t t| ƒ ¡  d | _d S )N)Úsuperr#   r   r   r   ©Ú	__class__r   r   r   =   s   
zDerivedFromCorrect.__init__c                 C   r   )z-Ignored since the method is in the interface.Nr   r   r   r   r   r   A   r   z DerivedFromCorrect.BadMethodName)r   r   r   r   r"   r   r   Ú__classcell__r   r   r%   r   r#   6   s
    r#   c                 C   s   g | ]}|‘qS r   r   )Ú.0ZWHAT_Ever_inListCompr   r   r   Ú
<listcomp>E   s    r)   c                  C   s   G dd„ dt ƒ} | S )z"Function returning a class object.c                   @   r   )z$class_builder.<locals>.EmbeddedClasszUseless class.Nr   r   r   r   r   ÚEmbeddedClassJ   r   r*   )Úobject)r*   r   r   r   Úclass_builderG   s   r,   ZNamedÚtuplec                   C   s   da dadS )z,Names in global statements are also checked.r   é   N)ÚNOT_CORRECTÚAlsoCorrectr   r   r   r   Útest_globals[   s   r1   c                   @   s@   e Zd ZdZedd„ ƒZejdd„ ƒZej	dd„ ƒZ
dd	„ Zd
S )ÚFooClasszÆA test case for property names.

    Since by default, the regex for attributes is the same as the one
    for method names, we check the warning messages to contain the
    string 'attribute'.
    c                 C   r   ©zIgnored.Nr   r   r   r   r   ÚPROPERTY_NAMEj   ó   zFooClass.PROPERTY_NAMEc                 C   r   r3   r   r   r   r   r   ÚABSTRACT_PROPERTY_NAMEo   r5   zFooClass.ABSTRACT_PROPERTY_NAMEc                 C   r   r3   r   r   r   r   r   ÚPROPERTY_NAME_SETTERt   r5   zFooClass.PROPERTY_NAME_SETTERc                 C   r   )zprivate method with long nameNr   r   r   r   r   Ú._nice_and_long_descriptive_private_method_namey   r   z7FooClass._nice_and_long_descriptive_private_method_nameN)r   r   r   r   Úpropertyr4   ÚabcÚabstractpropertyr6   Úsetterr7   r8   r   r   r   r   r2   c   s    


r2   c                 C   s   d}||  S )z!This is a perfect public functionr   r   )Zgood_arg_nameZgood_variable_namer   r   r   Úgood_public_function_name~   s   r=   c                   C   r   )z;Private scope function are cool with long descriptive namesr   r   r   r   r   r   Ú2_private_scope_function_with_long_descriptive_name„   r   r>   Tc                   @   r   )Ú/_AnExceptionalExceptionThatOccursVeryVeryRarelyz9A very exceptional exception with a nice descriptive nameNr   r   r   r   r   r?   Š   s    r?   )r   Ú
__future__r   r:   ÚcollectionsZGOOD_CONST_NAMEZbad_const_namer	   r
   r   r+   r   r   r#   ÚVr,   Ú
namedtupleZBAD_NAME_FOR_CLASSZNEXT_BAD_NAME_FOR_CLASSZGoodNameZToplevelClassr0   r/   r1   r2   r=   r>   Z+LONG_CONSTANT_NAME_IN_PUBLIC_SCOPE_ARE_OKAYÚ	Exceptionr?   r   r   r   r   Ú<module>   s4    	