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.opt-1.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)�argsZret�arg�r
�?/opt/alt/python37/lib/python3.7/site-packages/pep8ext_naming.pyrs
rcCst|jj�S)N)rr)�noder
r
r�
get_arg_names srcCs,dd�|jjD�}dd�|jjD�}||S)NcSsg|]
}|j�qSr
)r)�.0rr
r
r�
<listcomp>$sz!get_arg_names.<locals>.<listcomp>cSsg|]
}|j�qSr
)r)rrr
r
rr%s)rZ
kwonlyargs)rZpos_argsZkw_onlyr
r
rr#sc@seZdZdd�ZdS)�
_ASTCheckMetacCs2y|j�|��Wntk
r,g|_YnXdS)N)�_checksr	�AttributeError)�self�
class_name�bases�	namespacer
r
r�__init__*sz_ASTCheckMeta.__init__N)�__name__�
__module__�__qualname__rr
r
r
rr)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!r
r
r�_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����-)Z
add_option�optparseZOptionError�	TypeError�popZconfig_optionsr	�lstrip)�parserr�kwargsr,r
r
r�register_opt>sr6c@sleZdZdZdZeZddddgZdd�Ze	d	d
��Z
e	dd��Zd
d�Zdd�Z
dd�Zdd�Zdd�ZdS)�
NamingCheckerz$Checker of PEP-8 Naming Conventions.ZnamingZsetUpZtearDownZ
setUpClassZ
tearDownClasscCstj|_t�|_||_dS)N)r)r�visitorsr�parents�_node)rZtree�filenamer
r
rrRszNamingChecker.__init__c
Cs(d�|j�}t|d|dddddd�dS)N�,z--ignore-namesZstore�stringTzJList of names the pep8-naming plugin should ignore. (Defaults to %default))�default�action�typer,r-�help)�join�ignore_namesr6)�clsr4Zignoredr
r
r�add_optionsWszNamingChecker.add_optionscCs&|j|_t|jt�s"t�|j�|_dS)N)rCr�list�SPLIT_IGNORED_RE�split)rD�optionsr
r
r�
parse_optionscszNamingChecker.parse_optionscCs|jr|�|j�SdS)Nr
)r:�
visit_tree)rr
r
r�runiszNamingChecker.runccs`x|�|�D]
}|VqW|j�|�x*t|�D]}x|�|�D]
}|Vq@Wq0W|j��dS)N)�
visit_noder9r	rrKr2)rr�errorZchildr
r
rrKls
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�lowerr9rCr8r&)rr�methodr9rCZvisitorZvisitor_methodrNr
r
rrMus
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�rrS�__new__rTcSs(g|] }t|tj�r|jdkr|j�qS))rTrU)rr�Namer
)r�dr
r
rr�sz5NamingChecker.tag_class_functions.<locals>.<listcomp>N)rrrZAssign�value�Call�funcrXr
r#rr%�
function_type�namer$)rZcls_nodeZlate_decorationrZ	func_nameZmeth�namesr
r
rrO�s.


z!NamingChecker.tag_class_functionscCsft�}tt|��}xH|rZ|��}t|tj�r8|�|j�t|tj	tj
f�s|�t|��qW||_dS)N)
�setrrr2rrZGlobal�updater_r%r"r�global_names)rZ
func_def_noderbZnodes_to_checkrr
r
rrP�szNamingChecker.find_global_defsN)rrrr*r^�__version__�versionrCrrTrErJrLrKrMrOrPr
r
r
rr7Ls	"r7c@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)�checkr^r+)rrr9�ignorer
r
r�visit_classdef�szClassNameCheck.visit_classdef)N)	rrrr*�MIXEDCASE_REGEX�matchrgrfrir
r
r
rre�srec@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)Nr]�function�__�����N802)r&r^rgr+)rrr9rhr]r^r
r
r�visit_functiondef�s$
z#FunctionNameCheck.visit_functiondef)N)	rrrr*�LOWERCASE_REGEXrkrgrqrrr
r
r
rrl�srlc@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r
r
r�arg_name�sz9FunctionArgNamesCheck.visit_functiondef.<locals>.arg_name�N803r]rmrSrr�N805rTrD�N804)r�kwargrgr+�varargrr&)
rrr9rhruryrzZ	arg_namesr]rr
r
rrr�s2



z'FunctionArgNamesCheck.visit_functiondef)N)rrrr*rsrkrgrvrxrwrrr
r
r
rrt�srtc@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)r_Zasname�check_upperr^r+�check_lower)rrr9rhr^r
r
r�visit_importfromszImportAsCheck.visit_importfrom)N)rrrr*rsrkr��UPPERCASE_REGEXr�r|r}r~rr�r
r
r
rr{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)NrV�_�
namedtuple�N806)�reversedrrr"r%�targetsrXr
rbrgrZr[r\Z	Attribute�attrr+)rrr9rhZparent_func�targetr^r
r
r�visit_assign)s&z%VariablesInFunctionCheck.visit_assign)N)	rrrr*rsrkrgr�r�r
r
r
rr�"sr�)r*r0�re�sys�collectionsrrr�ImportErrorZflake8.utilrc�compilersr�rjrG�version_inforrr@rr(�objectr)r6r7rerlrtr{r�r
r
r
r�<module>s:



	
	h/