q-optimize/c3

View on GitHub

Showing 303 of 330 total issues

Method "__init__" has 10 parameters, which is greater than the 7 authorized.
Open

        self,
        eval_func,
        pmap,
        algorithm,
        dir_path=None,
Severity: Major
Found in c3/optimizers/calibration.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):
    ...

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

def g_LL_prime(exp_values, sim_values, exp_stds, shots):
Severity: Major
Found in c3/libraries/estimators.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 "375" or change one of the implementations.
Open

        return data
Severity: Major
Found in c3/c3objs.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
Severity
Category
Status
Source
Language