@@ -83,7 +83,7 @@ class GoogleStyleGuideChecker(checkers.BaseChecker):
8383 "For example: x = 1 if cond else 2. "
8484 "Conditional Expressions okay to use for one-liners. "
8585 "In other cases prefer to use a complete if statement. " ),
86- 'C6014' : ('Prefer operator module function %(op)s to lambda function %(lamfun )s' ,
86+ 'C6014' : ('Prefer operator module function %(op)s to lambda function %(lambda_fcn )s' ,
8787 'lambda-func' ,
8888 "For common operations like multiplication, use the functions from the operator module"
8989 "instead of lambda functions. For example, prefer operator.mul to lambda x, y: x * y." ),
@@ -112,6 +112,28 @@ class GoogleStyleGuideChecker(checkers.BaseChecker):
112112 'help' : 'Number of AST nodes permitted in a lambda' }),
113113 )
114114
115+ UNARY_OPERATORS = {
116+ "~" : "invert" ,
117+ "-" : "neg" ,
118+ "not" : "not_" ,
119+ "+" : "pos"
120+ }
121+
122+ BINARY_OPERATORS = {
123+ "+" : "add" ,
124+ "-" : "sub" ,
125+ "*" : "mul" ,
126+ "/" : "truediv" ,
127+ "**" : "pow" ,
128+ "%" : "modulo" ,
129+ "<" : "lt" ,
130+ "<=" : "le" ,
131+ "==" : "eq" ,
132+ "!=" : "ne" ,
133+ ">=" : "ge" ,
134+ ">" : "gt"
135+ }
136+
115137 def visit_assign (self , node ): # type: (astroid.Assign) -> None
116138 self .__avoid_global_variables (node )
117139
@@ -264,42 +286,22 @@ def __lambda_func(self, node): # type: (astroid.Lambda) -> None
264286
265287 if isinstance (node .body , astroid .UnaryOp ):
266288 if shopify_python .ast .count_tree_size (node .body ) == 2 and len (node .args .args ) == 1 :
267- unary_operators = {
268- "~" : "invert" ,
269- "-" : "neg" ,
270- "not" : "not_" ,
271- "+" : "pos"
272- }
273- preferred_operator_function = unary_operators .get (node .body .op )
289+ preferred_operator_function = self .UNARY_OPERATORS .get (node .body .op )
274290 name_match = node .args .args [0 ].name is node .body .operand .name
275291 if preferred_operator_function and not isinstance (node .body .operand , astroid .BinOp ) and name_match :
276292 varname = node .body .operand .name
277- lamfun = "lambda " + varname + ": " + node .body .op + " " + varname
293+ lambda_fcn = "lambda " + varname + ": " + node .body .op + " " + varname
278294 opfun = "operator." + preferred_operator_function
279- self .add_message ('lambda-func' , node = node , args = {'op' : opfun , 'lamfun ' : lamfun })
295+ self .add_message ('lambda-func' , node = node , args = {'op' : opfun , 'lambda_fcn ' : lambda_fcn })
280296 elif isinstance (node .body , astroid .BinOp ):
281297 if shopify_python .ast .count_tree_size (node .body ) == 3 and len (node .args .args ) == 2 :
282298 left_arg = node .args .args [0 ].name
283299 right_arg = node .args .args [1 ].name
284300 node = node .body
285- binary_operators = {
286- "+" : "add" ,
287- "-" : "sub" ,
288- "*" : "mul" ,
289- "/" : "truediv" ,
290- "**" : "pow" ,
291- "%" : "modulo" ,
292- "<" : "lt" ,
293- "<=" : "le" ,
294- "==" : "eq" ,
295- "!=" : "ne" ,
296- ">=" : "ge" ,
297- ">" : "gt"
298- }
299- preferred_operator_function = binary_operators .get (node .op )
301+ preferred_operator_function = self .BINARY_OPERATORS .get (node .op )
300302 if preferred_operator_function and left_arg is node .left .name and right_arg is node .right .name :
301303 left = str (node .left .value ) if node .left .name == 'int' else node .left .name
302304 right = str (node .right .value ) if node .right .name == 'int' else node .right .name
303- lamfun = "lambda " + left + ', ' + right + ": " + " " .join ([left , node .op , right ])
305+ lambda_fcn = "lambda " + left + ', ' + right + ": " + " " .join ([left , node .op , right ])
304306 opfun = "operator." + preferred_operator_function
305- self .add_message ('lambda-func' , node = node , args = {'op' : opfun , 'lamfun ' : lamfun })
307+ self .add_message ('lambda-func' , node = node , args = {'op' : opfun , 'lambda_fcn ' : lambda_fcn })
0 commit comments