OpenJij/OpenJij

View on GitHub

Showing 464 of 464 total issues

Rename function "BinaryPolynomialModel" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def BinaryPolynomialModel(*args, **kwargs):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "_make_BinaryPolynomialModel_from_hubo_from_dict" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def _make_BinaryPolynomialModel_from_hubo_from_dict(polynomial: dict):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "make_ChimeraModel" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_ChimeraModel(linear, quadratic):
Severity: Major
Found in openjij/model/chimera_model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Either merge this branch with the identical one on line "265" or change one of the implementations.
Open

        tts_up_error = 0.0
Severity: Major
Found in openjij/utils/benchmark.py by sonar-python

Having two branches in the same if structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then they should be combined.

Noncompliant Code Example

if 0 <= a < 10:
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
elif 20 <= a < 50:
    do_the_thing()  # Noncompliant; duplicates first condition
else:
    do_the_rest()

b = 4 if a > 12 else 4

Compliant Solution

if (0 <= a < 10) or (20 <= a < 50):
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
else:
    do_the_rest()

b = 4

or

if 0 <= a < 10:
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
elif 20 <= a < 50:
    do_the_third_thing()
else:
    do_the_rest()

b = 8 if a > 12 else 4

Refactor this function to reduce its Cognitive Complexity from 26 to the 15 allowed.
Open

def BinaryQuadraticModel(linear, quadratic, *args, **kwargs):
Severity: Critical
Found in openjij/model/model.py by sonar-python

Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

See

Merge this if statement with the enclosing one.
Open

        if solutions == []:
Severity: Major
Found in openjij/utils/benchmark.py by sonar-python

Merging collapsible if statements increases the code's readability.

Noncompliant Code Example

if condition1:
    if condition2:
        # ...

Compliant Solution

if condition1 and condition2:
    # ...

Function "base_sample_hubo" has 11 parameters, which is greater than the 7 authorized.
Open

    hubo: dict[tuple, float],
    vartype: Optional[str] = None,
    num_sweeps: int = 1000,
    num_reads: int = 1,
    num_threads: int = 1,

A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

Noncompliant Code Example

With a maximum number of 4 parameters:

def do_something(param1, param2, param3, param4, param5):
    ...

Compliant Solution

def do_something(param1, param2, param3, param4):
    ...

Rename function "make_BinaryPolynomialModel" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_BinaryPolynomialModel(polynomial, index_type=None, tuple_size=0):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "make_BinaryPolynomialModel_from_JSON" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_BinaryPolynomialModel_from_JSON(obj):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "make_ChimeraModel_from_JSON" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_ChimeraModel_from_JSON(obj):
Severity: Major
Found in openjij/model/chimera_model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Function "solver_benchmark" has 8 parameters, which is greater than the 7 authorized.
Open

    solver,
    time_list,
    solutions=[],
    args={},
    p_r=0.99,
Severity: Major
Found in openjij/utils/benchmark.py by sonar-python

A long parameter list can indicate that a new structure should be created to wrap the numerous parameters or that the function is doing too many things.

Noncompliant Code Example

With a maximum number of 4 parameters:

def do_something(param1, param2, param3, param4, param5):
    ...

Compliant Solution

def do_something(param1, param2, param3, param4):
    ...

Refactor this function to reduce its Cognitive Complexity from 73 to the 15 allowed.
Open

    def sample(
Severity: Critical
Found in openjij/sampler/sa_sampler.py by sonar-python

Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

See

Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed.
Open

def convert_response(response):
Severity: Critical
Found in openjij/utils/res_convertor.py by sonar-python

Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

See

Rename function "make_BinaryQuadraticModel" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_BinaryQuadraticModel(linear: dict, quadratic: dict, sparse):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "make_BinaryQuadraticModel_from_JSON" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def make_BinaryQuadraticModel_from_JSON(obj: dict):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Rename function "BinaryQuadraticModel" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def BinaryQuadraticModel(linear, quadratic, *args, **kwargs):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Either merge this branch with the identical one on line "238" or change one of the implementations.
Open

        tts_low_error = 0.0
Severity: Major
Found in openjij/utils/benchmark.py by sonar-python

Having two branches in the same if structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then they should be combined.

Noncompliant Code Example

if 0 <= a < 10:
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
elif 20 <= a < 50:
    do_the_thing()  # Noncompliant; duplicates first condition
else:
    do_the_rest()

b = 4 if a > 12 else 4

Compliant Solution

if (0 <= a < 10) or (20 <= a < 50):
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
else:
    do_the_rest()

b = 4

or

if 0 <= a < 10:
    do_the_thing()
elif 10 <= a < 20:
    do_the_other_thing()
elif 20 <= a < 50:
    do_the_third_thing()
else:
    do_the_rest()

b = 8 if a > 12 else 4

Remove this commented out code.
Open

                #schedule,
Severity: Major
Found in openjij/sampler/sa_sampler.py by sonar-python

Programmers should not comment out code as it bloats programs and reduces readability.

Unused code should be deleted and can be retrieved from source control history if required.

See

  • MISRA C:2004, 2.4 - Sections of code should not be "commented out".
  • MISRA C++:2008, 2-7-2 - Sections of code shall not be "commented out" using C-style comments.
  • MISRA C++:2008, 2-7-3 - Sections of code should not be "commented out" using C++ comments.
  • MISRA C:2012, Dir. 4.4 - Sections of code should not be "commented out"

Rename function "_make_BinaryPolynomialModel_from_hising_from_dict" to match the regular expression ^[a-z_][a-z0-9_]{2,}$.
Open

def _make_BinaryPolynomialModel_from_hising_from_dict(polynomial: dict):
Severity: Major
Found in openjij/model/model.py by sonar-python

Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.

Noncompliant Code Example

With the default provided regular expression: ^[a-z_][a-z0-9_]{2,30}$

def MyFunction(a,b):
    ...

Compliant Solution

def my_function(a,b):
    ...

Refactor this function to reduce its Cognitive Complexity from 53 to the 15 allowed.
Open

def make_KingGraph(linear=None, quadratic=None, king_graph=None):
Severity: Critical
Found in openjij/model/king_graph.py by sonar-python

Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

See

Severity
Category
Status
Source
Language