Skip to content

Commit b53366e

Browse files
committed
Refactor name length check to inline parent class lookup and simplify violation code determination
1 parent 4ca05fd commit b53366e

2 files changed

Lines changed: 14 additions & 19 deletions

File tree

src/community_of_python_flake8_plugin/checks/name_length.py

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,24 @@ def __init__(self, tree: ast.AST) -> None: # noqa: COP006
6161

6262
def visit_AnnAssign(self, ast_node: ast.AnnAssign) -> None:
6363
if isinstance(ast_node.target, ast.Name):
64-
parent_class: typing.Final = find_parent_class_definition(self.syntax_tree, ast_node) # noqa: COP011
65-
self.validate_name_length(ast_node.target.id, ast_node, parent_class)
64+
self.validate_name_length(
65+
ast_node.target.id, ast_node, find_parent_class_definition(self.syntax_tree, ast_node)
66+
)
6667
self.generic_visit(ast_node)
6768

6869
def visit_Assign(self, ast_node: ast.Assign) -> None:
6970
for target in ast_node.targets:
7071
if isinstance(target, ast.Name):
71-
parent_class = find_parent_class_definition(self.syntax_tree, ast_node) # noqa: COP011
72-
self.validate_name_length(target.id, ast_node, parent_class)
72+
self.validate_name_length(target.id, ast_node, find_parent_class_definition(self.syntax_tree, ast_node))
7373
self.generic_visit(ast_node)
7474

7575
def visit_FunctionDef(self, ast_node: ast.FunctionDef) -> None:
76-
parent_class: typing.Final = find_parent_class_definition(self.syntax_tree, ast_node) # noqa: COP011
77-
self.validate_function_name(ast_node, parent_class)
76+
self.validate_function_name(ast_node, find_parent_class_definition(self.syntax_tree, ast_node))
7877
self.validate_function_args(ast_node)
7978
self.generic_visit(ast_node)
8079

8180
def visit_AsyncFunctionDef(self, ast_node: ast.AsyncFunctionDef) -> None:
82-
parent_class: typing.Final = find_parent_class_definition(self.syntax_tree, ast_node) # noqa: COP011
83-
self.validate_function_name(ast_node, parent_class)
81+
self.validate_function_name(ast_node, find_parent_class_definition(self.syntax_tree, ast_node))
8482
self.validate_function_args(ast_node)
8583
self.generic_visit(ast_node)
8684

@@ -102,20 +100,17 @@ def validate_name_length(self, identifier: str, ast_node: ast.stmt, parent_class
102100
return
103101

104102
if len(identifier) < MIN_NAME_LENGTH:
105-
# Determine the appropriate violation code based on context
106-
if isinstance(ast_node, ast.AnnAssign):
107-
name_violation_code = ViolationCodes.ATTRIBUTE_NAME_LENGTH
108-
elif isinstance(ast_node, ast.Assign):
109-
name_violation_code = ViolationCodes.VARIABLE_NAME_LENGTH
110-
else:
111-
# This shouldn't happen with current AST node types, but fall back to generic if needed
112-
name_violation_code = ViolationCodes.ATTRIBUTE_NAME_LENGTH
113-
114103
self.violations.append(
115104
Violation(
116105
line_number=ast_node.lineno,
117106
column_number=ast_node.col_offset,
118-
violation_code=name_violation_code,
107+
violation_code=(
108+
ViolationCodes.ATTRIBUTE_NAME_LENGTH
109+
if isinstance(ast_node, ast.AnnAssign)
110+
else ViolationCodes.VARIABLE_NAME_LENGTH
111+
if isinstance(ast_node, ast.Assign)
112+
else ViolationCodes.ATTRIBUTE_NAME_LENGTH
113+
),
119114
)
120115
)
121116

src/community_of_python_flake8_plugin/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
def find_parent_class_definition(syntax_tree: ast.AST, target_node: ast.AST) -> ast.ClassDef | None:
66
for potential_parent in ast.walk(syntax_tree):
77
if isinstance(potential_parent, ast.ClassDef):
8-
for child_node in ast.walk(potential_parent): # noqa: COP011
8+
for child_node in ast.walk(potential_parent):
99
if child_node is target_node:
1010
return potential_parent
1111
return None

0 commit comments

Comments
 (0)