@@ -634,7 +634,7 @@ def _check_simplifiable_if(self, node: nodes.If) -> None:
634634 for target in else_branch .targets
635635 if isinstance (target , nodes .AssignName )
636636 ]
637- if not first_branch_targets or not else_branch_targets :
637+ if not ( first_branch_targets and else_branch_targets ) :
638638 return
639639 if sorted (first_branch_targets ) != sorted (else_branch_targets ):
640640 return
@@ -645,7 +645,7 @@ def _check_simplifiable_if(self, node: nodes.If) -> None:
645645 case _:
646646 return
647647
648- if not first_branch_is_bool or not else_branch_is_bool :
648+ if not ( first_branch_is_bool and else_branch_is_bool ) :
649649 return
650650 if not first_branch .value .value :
651651 # This is a case that can't be easily simplified and
@@ -1053,7 +1053,7 @@ def visit_raise(self, node: nodes.Raise) -> None:
10531053 def _check_stop_iteration_inside_generator (self , node : nodes .Raise ) -> None :
10541054 """Check if an exception of type StopIteration is raised inside a generator."""
10551055 frame = node .frame ()
1056- if not isinstance (frame , nodes .FunctionDef ) or not frame .is_generator ():
1056+ if not ( isinstance (frame , nodes .FunctionDef ) and frame .is_generator () ):
10571057 return
10581058 if utils .node_ignores_exception (node , StopIteration ):
10591059 return
@@ -1319,11 +1319,11 @@ def _duplicated_isinstance_types(node: nodes.BoolOp) -> dict[str, set[str]]:
13191319 all_types : collections .defaultdict [str , set [str ]] = collections .defaultdict (set )
13201320
13211321 for call in node .values :
1322- if not isinstance (call , nodes .Call ) or len (call .args ) != 2 :
1322+ if not ( isinstance (call , nodes .Call ) and len (call .args ) == 2 ) :
13231323 continue
13241324
13251325 inferred = utils .safe_infer (call .func )
1326- if not inferred or not utils .is_builtin_object (inferred ):
1326+ if not ( inferred and utils .is_builtin_object (inferred ) ):
13271327 continue
13281328
13291329 if inferred .name != "isinstance" :
@@ -1365,7 +1365,7 @@ def _check_consider_merging_isinstance(self, node: nodes.BoolOp) -> None:
13651365 def _check_consider_using_in (self , node : nodes .BoolOp ) -> None :
13661366 allowed_ops = {"or" : "==" , "and" : "!=" }
13671367
1368- if node .op not in allowed_ops or len (node .values ) < 2 :
1368+ if not ( node .op in allowed_ops and len (node .values ) >= 2 ) :
13691369 return
13701370
13711371 for value in node .values :
@@ -1416,7 +1416,7 @@ def _check_chained_comparison(self, node: nodes.BoolOp) -> None:
14161416
14171417 Care is taken to avoid simplifying a < b < c and b < d.
14181418 """
1419- if node .op != "and" or len (node .values ) < 2 :
1419+ if not ( node .op == "and" and len (node .values ) >= 2 ) :
14201420 return
14211421
14221422 def _find_lower_upper_bounds (
@@ -1566,7 +1566,7 @@ def _is_simple_assignment(node: nodes.NodeNG | None) -> bool:
15661566 return False
15671567
15681568 def _check_swap_variables (self , node : nodes .Return | nodes .Assign ) -> None :
1569- if not node .next_sibling () or not node .next_sibling ().next_sibling ():
1569+ if not ( node .next_sibling () and node .next_sibling ().next_sibling () ):
15701570 return
15711571 assignments = [node , node .next_sibling (), node .next_sibling ().next_sibling ()]
15721572 if not all (self ._is_simple_assignment (node ) for node in assignments ):
@@ -1643,10 +1643,10 @@ def _append_context_managers_to_stack(self, node: nodes.Assign) -> None:
16431643 if not isinstance (value , nodes .Call ):
16441644 continue
16451645 inferred = utils .safe_infer (value .func )
1646- if (
1647- not inferred
1648- or inferred .qname () not in CALLS_RETURNING_CONTEXT_MANAGERS
1649- or not isinstance (assignee , (nodes .AssignName , nodes .AssignAttr ))
1646+ if not (
1647+ inferred
1648+ and inferred .qname () in CALLS_RETURNING_CONTEXT_MANAGERS
1649+ and isinstance (assignee , (nodes .AssignName , nodes .AssignAttr ))
16501650 ):
16511651 continue
16521652 stack = self ._consider_using_with_stack .get_stack_for_frame (node .frame ())
@@ -1685,8 +1685,11 @@ def _check_consider_using_with(self, node: nodes.Call) -> None:
16851685 # checked when leaving the scope.
16861686 return
16871687 inferred = utils .safe_infer (node .func )
1688- if not inferred or not isinstance (
1689- inferred , (nodes .FunctionDef , nodes .ClassDef , bases .BoundMethod )
1688+ if not (
1689+ inferred
1690+ and isinstance (
1691+ inferred , (nodes .FunctionDef , nodes .ClassDef , bases .BoundMethod )
1692+ )
16901693 ):
16911694 return
16921695 could_be_used_in_with = (
@@ -2178,12 +2181,12 @@ def _check_unnecessary_dict_index_lookup(
21782181
21792182 # Case where .items is assigned to k,v (i.e., for k, v in d.items())
21802183 if isinstance (value , nodes .Name ):
2181- if (
2182- not isinstance (node .target , nodes .Tuple )
2184+ if not (
2185+ isinstance (node .target , nodes .Tuple )
21832186 # Ignore 1-tuples: for k, in d.items()
2184- or len (node .target .elts ) < 2
2185- or value .name ! = node .target .elts [0 ].name
2186- or iterating_object_name ! = subscript .value .as_string ()
2187+ and len (node .target .elts ) >= 2
2188+ and value .name = = node .target .elts [0 ].name
2189+ and iterating_object_name = = subscript .value .as_string ()
21872190 ):
21882191 continue
21892192
@@ -2213,11 +2216,11 @@ def _check_unnecessary_dict_index_lookup(
22132216
22142217 # Case where .items is assigned to single var (i.e., for item in d.items())
22152218 elif isinstance (value , nodes .Subscript ):
2216- if (
2217- not isinstance (node .target , nodes .AssignName )
2218- or not isinstance (value .value , nodes .Name )
2219- or node .target .name ! = value .value .name
2220- or iterating_object_name ! = subscript .value .as_string ()
2219+ if not (
2220+ isinstance (node .target , nodes .AssignName )
2221+ and isinstance (value .value , nodes .Name )
2222+ and node .target .name = = value .value .name
2223+ and iterating_object_name = = subscript .value .as_string ()
22212224 ):
22222225 continue
22232226
@@ -2234,7 +2237,7 @@ def _check_unnecessary_dict_index_lookup(
22342237
22352238 # check if subscripted by 0 (key)
22362239 inferred = utils .safe_infer (value .slice )
2237- if not isinstance (inferred , nodes .Const ) or inferred .value != 0 :
2240+ if not ( isinstance (inferred , nodes .Const ) and inferred .value == 0 ) :
22382241 continue
22392242
22402243 if has_nested_loops :
@@ -2350,9 +2353,9 @@ def _check_unnecessary_list_index_lookup(
23502353
23512354 index = subscript .slice
23522355 if isinstance (index , nodes .Name ):
2353- if (
2354- index .name ! = name1
2355- or iterating_object_name ! = subscript .value .as_string ()
2356+ if not (
2357+ index .name = = name1
2358+ and iterating_object_name = = subscript .value .as_string ()
23562359 ):
23572360 continue
23582361
0 commit comments