Your IP : 216.73.216.196


Current Path : /opt/alt/python37/lib/python3.7/site-packages/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/__pycache__/pep8ext_naming.cpython-37.pyc

B

]�oW�+�@sRdZddlZddlZddlZddlmZyddlZddlmZWn$ek
rdddl	mZmZYnXdZ
e�d�Ze�d�Z
e�d	�Ze�d
�Zejddkr�dd
�Zdd�Zndd�ZGdd�de�Zdd�Zedefded��Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!e�ZGd"d#�d#e�ZGd$d%�d%e�ZdS)&z$Checker of PEP-8 Naming Conventions.�N)�deque)�iter_child_nodes)�astrz0.4.1z[_a-z][_a-z0-9]*$z[_A-Z][_A-Z0-9]*$z_?[A-Z][a-zA-Z0-9]*$z[,\s]�cCs@g}x6|D].}t|tj�r,|�t|j��q
|�|j�q
W|S)N)�
isinstancerZTuple�extend�_unpack_argsZelts�append�id)�args�ret�arg�r�?/opt/alt/python37/lib/python3.7/site-packages/pep8ext_naming.pyrs
rcCst|jj�S)N)rr)�noderrr�
get_arg_names srcCs,dd�|jjD�}dd�|jjD�}||S)NcSsg|]
}|j�qSr)r
)�.0r
rrr�
<listcomp>$sz!get_arg_names.<locals>.<listcomp>cSsg|]
}|j�qSr)r
)rr
rrrr%s)r�
kwonlyargs)rZpos_argsZkw_onlyrrrr#sc@seZdZdd�ZdS)�
_ASTCheckMetacCs2y|j�|��Wntk
r,g|_YnXdS)N)�_checksr	�AttributeError)�self�
class_name�bases�	namespacerrr�__init__*sz_ASTCheckMeta.__init__N)�__name__�
__module__�__qualname__rrrrrr)srcCsn|j|j}}t|tj�r2|t|j�7}|d7}n"t|tj�rT|t|j�7}|d7}||d|t||�f|fS)N��z%s %s)	�lineno�
col_offsetrr�ClassDef�len�decorator_list�FunctionDef�getattr)rr�coder"r#rrr�_err1s
r*�BaseASTCheckzBase for AST Checks.)�__doc__�errc	Oszy|j||�Wndtjtfk
rt|�dd�}|�dd�|�dd�|j||�|rp|j�|d�d��YnXdS)N�parse_from_configF�comma_separated_listZnormalize_paths����-)�
add_option�optparseZOptionError�	TypeError�popZconfig_optionsr	�lstrip)�parserr�kwargsr.rrr�register_opt>sr9c@sleZdZdZdZeZddddgZdd�Ze	d	d
��Z
e	dd��Zd
d�Zdd�Z
dd�Zdd�Zdd�ZdS)�
NamingCheckerz$Checker of PEP-8 Naming Conventions.Znaming�setUp�tearDown�
setUpClass�
tearDownClasscCstj|_t�|_||_dS)N)r+r�visitorsr�parents�_node)rZtree�filenamerrrrRszNamingChecker.__init__c
Cs(d�|j�}t|d|dddddd�dS)N�,z--ignore-names�store�stringTzJList of names the pep8-naming plugin should ignore. (Defaults to %default))�default�action�typer.r/�help)�join�ignore_namesr9)�clsr7�ignoredrrr�add_optionsWszNamingChecker.add_optionscCs&|j|_t|jt�s"t�|j�|_dS)N)rKr�list�SPLIT_IGNORED_RE�split)rL�optionsrrr�
parse_optionscszNamingChecker.parse_optionscCs|jr|�|j�SdS)Nr)rA�
visit_tree)rrrr�runiszNamingChecker.runccs`x|�|�D]
}|VqW|j�|�x*t|�D]}x|�|�D]
}|Vq@Wq0W|j��dS)N)�
visit_noder@r	rrTr5)rr�error�childrrrrTls
zNamingChecker.visit_treeccs�t|tj�r|�|�nt|tj�r.|�|�d|jj��}|j	}|j
}x@|jD]6}t||d�}|dkrlqRx||||�D]
}|VqzWqRWdS)NZvisit_)
rrr$�tag_class_functionsr'�find_global_defs�	__class__r�lowerr@rKr?r()rr�methodr@rKZvisitorZvisitor_methodrWrrrrVus
zNamingChecker.visit_nodecCs�i}x�t|�D]t}t|tj�rt|jtj�rt|jjtj�s>q|jjj}|dkrt	|jj
�dkoj|jj
d}t|tj�r|||j<qWxpt|�D]d}t|tj�s�q�d|_|j
dkr�d|_|j
|kr�||j
|_q�|jr�dd�|jD�}|r�|d|_q�Wd	S)
z>Tag functions if they are methods, classmethods, staticmethods)�classmethod�staticmethod�rr]�__new__r^cSs(g|] }t|tj�r|jdkr|j�qS))r^r_)rr�Namer
)r�drrrr�sz5NamingChecker.tag_class_functions.<locals>.<listcomp>N)rrrZAssign�value�Call�funcrbr
r%rr'�
function_type�namer&)rZcls_nodeZlate_decorationr�	func_name�meth�namesrrrrY�s.


z!NamingChecker.tag_class_functionscCsft�}tt|��}xH|rZ|��}t|tj�r8|�|j�t|tj	tj
f�s|�t|��qW||_dS)N)
�setrrr5rrZGlobal�updaterkr'r$r�global_names)rZ
func_def_nodernZnodes_to_checkrrrrrZ�szNamingChecker.find_global_defsN)rrrr,rh�__version__�versionrKrr^rNrSrUrTrVrYrZrrrrr:Ls	"r:c@s$eZdZdZejZdZddd�ZdS)�ClassNameCheckz�
    Almost without exception, class names use the CapWords convention.

    Classes for internal use have a leading underscore in addition.
    z*class names should use CapWords conventionNccs|�|j�s|�|d�VdS)N�N801)�checkrhr-)rrr@�ignorerrr�visit_classdef�szClassNameCheck.visit_classdef)N)	rrrr,�MIXEDCASE_REGEX�matchrsrrrurrrrrq�srqc@s$eZdZdZejZdZddd�ZdS)�FunctionNameCheckaV
    Function names should be lowercase, with words separated by underscores
    as necessary to improve readability.
    Functions *not* beeing methods '__' in front and back are not allowed.

    mixedCase is allowed only in contexts where that's already the
    prevailing style (e.g. threading.py), to retain backwards compatibility.
    z!function name should be lowercaseNccsbt|dd�}|j}|r"||kr"dS|dkrFd|dd�|dd�fksP|�|�s^|�|d�VdS)Nrg�function�__�����N802)r(rhrsr-)rrr@rtrgrhrrr�visit_functiondef�s$
z#FunctionNameCheck.visit_functiondef)N)	rrrr,�LOWERCASE_REGEXrwrsr}r~rrrrrx�srxc@s,eZdZdZejZdZdZdZ	ddd�Z
dS)	�FunctionArgNamesCheckz�
    The argument names of a function should be lowercase, with words separated
    by underscores.

    A classmethod should have 'cls' as first argument.
    A method should have 'self' as first argument.
    z!argument name should be lowercasez5first argument of a classmethod should be named 'cls'z1first argument of a method should be named 'self'Nc
cs�dd�}||jj�}|dk	r8|�|�s8|�|d�VdS||jj�}|dk	rh|�|�sh|�|d�VdSt|�}|sxdSt|dd�}|dkr�|ddkr�|�|d	�Vn"|d
kr�|ddkr�|�|d�Vx(|D] }	|�|	�s�|�|d�VdSq�WdS)
NcSst|d|�S)Nr
)r()r
rrr�arg_name�sz9FunctionArgNamesCheck.visit_functiondef.<locals>.arg_name�N803rgryr]rr�N805r^rL�N804)r�kwargrsr-�varargrr()
rrr@rtr�r�r��	arg_namesrgr
rrrr~�s2



z'FunctionArgNamesCheck.visit_functiondef)N)rrrr,rrwrsr�r�r�r~rrrrr��sr�c@s6eZdZdZejZejZdZ	dZ
dZdZd	dd�Z
dS)
�
ImportAsCheckz:
    Don't change the naming convention via an import
    z!constant imported as non constantz#lowercase imported as non lowercasezcamelcase imported as lowercasezcamelcase imported as constantNccs�x�|jD]�}|jsq|�|j�r<|�|j�s�|�|d�Vq|�|j�rd|�|j�s�|�|d�Vq|�|j�r�|�|d�Vq|�|j�r|�|d�VqWdS)N�N811�N812�N813�N814)rkZasname�check_upperrhr-�check_lower)rrr@rtrhrrr�visit_importfromszImportAsCheck.visit_importfrom)N)rrrr,rrwr��UPPERCASE_REGEXr�r�r�r�r�r�rrrrr�sr�c@s$eZdZdZejZdZddd�ZdS)�VariablesInFunctionCheckz:
    Local variables in functions should be lowercase
    z(variable in function should be lowercaseNccs�x2t|�D]"}t|tj�rdSt|tj�r
Pq
WdSx�|jD]�}t|tj�oP|j}|r`||jkrddS|�	|�s<|dd�dkr<t|j
tj�r�t|j
jtj
�r�|j
jjdkr�dSn"t|j
jtj�r�|j
jjdkr�dS|�|d�Vq<WdS)Nr`�_�
namedtuple�N806)�reversedrrr$r'�targetsrbr
rnrsrdrerf�	Attribute�attrr-)rrr@rtZparent_func�targetrhrrr�visit_assign)s&z%VariablesInFunctionCheck.visit_assign)N)	rrrr,rrwrsr�r�rrrrr�"sr�)r,r3�re�sys�collectionsrrr�ImportErrorZflake8.utilro�compilerr�rvrP�version_inforrrHrr*�objectr+r9r:rqrxr�r�r�rrrr�<module>s:



	
	h/