django/django

View on GitHub
django/db/models/lookups.py

Summary

Maintainability
D
2 days
Test Coverage

File lookups.py has 599 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import itertools
import math
import warnings

from django.core.exceptions import EmptyResultSet, FullResultSet
Severity: Major
Found in django/db/models/lookups.py - About 1 day to fix

    Lookup has 21 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class Lookup(Expression):
        lookup_name = None
        prepare_rhs = True
        can_use_none_as_rhs = False
    
    
    Severity: Minor
    Found in django/db/models/lookups.py - About 2 hrs to fix

      Function as_sql has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
      Open

          def as_sql(self, compiler, connection):
              if not isinstance(self.rhs, bool):
                  raise ValueError(
                      "The QuerySet value for an isnull lookup must be True or False."
                  )
      Severity: Minor
      Found in django/db/models/lookups.py - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function process_rhs has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def process_rhs(self, compiler, connection):
              value = self.rhs
              if self.bilateral_transforms:
                  if self.rhs_is_direct_value():
                      # Do not call get_db_prep_lookup here as the value will be
      Severity: Minor
      Found in django/db/models/lookups.py - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function resolve_expression has 5 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def resolve_expression(
      Severity: Minor
      Found in django/db/models/lookups.py - About 35 mins to fix

        Function get_prep_lookup has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_prep_lookup(self):
                from django.db.models.sql.query import Query  # avoid circular import
        
                if isinstance(self.rhs, Query):
                    if self.rhs.has_limit_one():
        Severity: Minor
        Found in django/db/models/lookups.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function process_rhs has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

            def process_rhs(self, compiler, connection):
                db_rhs = getattr(self.rhs, "_db", None)
                if db_rhs is not None and db_rhs != connection.alias:
                    raise ValueError(
                        "Subqueries aren't allowed across different databases. Force "
        Severity: Minor
        Found in django/db/models/lookups.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_prep_lookup has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_prep_lookup(self):
                if not self.prepare_rhs or hasattr(self.rhs, "resolve_expression"):
                    return self.rhs
                if hasattr(self.lhs, "output_field"):
                    if hasattr(self.lhs.output_field, "get_prep_value"):
        Severity: Minor
        Found in django/db/models/lookups.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_prep_lookup has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_prep_lookup(self):
                if hasattr(self.rhs, "resolve_expression"):
                    return self.rhs
                prepared_values = []
                for rhs_value in self.rhs:
        Severity: Minor
        Found in django/db/models/lookups.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_refs has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_refs(self):
                refs = super().get_refs()
                if self.rhs_is_direct_value():
                    for rhs in self.rhs:
                        if get_rhs_refs := getattr(rhs, "get_refs", None):
        Severity: Minor
        Found in django/db/models/lookups.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        There are no issues that match your filters.

        Category
        Status