All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.py.rules.python.S134.html Maven / Gradle / Ivy

There is a newer version: 4.23.0.17664
Show newest version

Why is this an issue?

Nested control flow statements if, for, while, try, and with are often key ingredients in creating what’s known as "Spaghetti code". This code smell can make your program difficult to understand and maintain.

When numerous control structures are placed inside one another, the code becomes a tangled, complex web. This significantly reduces the code’s readability and maintainability, and it also complicates the testing process.

How to fix it

Code examples

The following example demonstrates the behavior of the rule with the default threshold of 4 levels of nesting and one of the potential ways to fix the code smell by introducing guard clauses:

Noncompliant code example

if condition1:           # Compliant - depth = 1
  # ...
  if condition2:         # Compliant - depth = 2
    # ...
    for i in range(10):  # Compliant - depth = 3
      # ...
      if condition3:     # Compliant - depth = 4
        if condition4:     # Non-Compliant - depth = 5, which exceeds the limit
          if condition5:   # Depth = 6, exceeding the limit, but issues are only reported on depth = 5
            # ...

Compliant solution

if not condition1:
  return
# ...
if not condition2:
  return
  # ...
  for i in range(10):
    # ...
    if condition3:
      if condition4:
        if condition5:
          # ...

Resources





© 2015 - 2024 Weber Informatics LLC | Privacy Policy