NodeAssigment = Schema(ast.Subscript,
value=Schema(ast.Name, id='__lzLut__'),
ctx=ast.Store)
- TrivialValue = Schema(Schema.Union(
- ast.Constant,
- ast.Name,
- Schema(ast.Subscript,
- value=Schema(ast.Name, id='__lzLut__'),
- slice=ast.Constant)
- ))
- BoolOperators = Schema(Schema.Union(ast.Or, ast.And))
-
- TrivialTest = Schema(ast.Compare,
- left=TrivialValue,
- ops=[Schema.Union(ast.Eq, ast.In)],
- comparators=[Schema.Union(
- ast.Constant,
- Schema(ast.List, elts=Schema.List(ast.Constant))
- )])
-
- InlineIf = Schema(ast.IfExp,
- test=Schema.Union(TrivialTest, TrivialValue),
- body=TrivialValue,
- orelse=TrivialValue)
-
- TrivialLogic = Schema(ast.BoolOp,
- op=BoolOperators,
- values=Schema.List(
- Schema.Union(TrivialTest, ast.Name)
- ))
-
TrivialReturn = Schema(Schema.Union(
- TrivialValue,
- InlineIf,
- TrivialLogic,
+ ast.Constant,
ast.JoinedStr
))
@rule(ast.Return, None, "non-trivial-value")
def __nontrivial_return(self, reducer, node):
"""
- Option default should be kept as constant or simple membership check
+ Use of non-trivial value as default value
"""
return SyntaxRule.TrivialReturn == node.value
\ No newline at end of file