Not every code convention violation in your code is something that you would want to take an action on. Take an example from Python —
mark_safe, a function that considers all input passed as valid, would open security vulnerabilities in a view that deals with user input. But it makes complete sense if used in an environment where the user input is guaranteed to be trusted. Administrator views are a perfect example of this. DeepSource raises an issue for this violation, regardless of the context it is used in.
In the latest release, we have introduced a new keyword that you can add to your code as a comment. This will allows you to silence one or more issues in that line of code permanently.
skipcq (which stands for skip continuous quality)— a unified way to silence issues from source code that works across all analyzers available on DeepSource. This special keyword can be used as part of a comment in the same line or surrounding lines where the violation has occurred to silence it.
skipcq as a comment with the issue’s short-code at the end of the line, or one the line above it to silence the issue.
input = 10 # skipcq: PYL-W0622
# skipcq: PYL-W0622 input = 10
Doing so will suppress
PYL-W0622 on this line, which is raised because the inbuilt function
input has been redefined.
To silence multiple issues on a line, add a comma separated list of issue short-codes after the
def function(input, an_argument_not_used): # skipcq: PYL-W0622, PYL-W0613 pass
# skipcq: PYL-W0622, PYL-W0613 def function(input, an_argument_not_used): pass
To silence all issues that could be raised on a line, simply use the keyword
skipcq in the comment corresponding to the line.
except Exception: # skipcq pass
# skipcq except Exception: pass
A word of caution, though — this would prevent all issues from being raised on this line, which is probably not something you want. We recommend using the keyword explicitly for the issues you want to suppress.
Great question! Just add
skipcq at the end of your comment for the line.
class Klass: def __init__(self): pass def func(self, x): # This function does not use `self`. Hence an issue will be raised. Lets ignore it. skipcq return x ** 2
In case the
skipcq comment is placed above the line, you can place as many comments or newlines above the concerned line.
class Klass: def __init__(self): pass # skipcq # This function does not use `self`. # Hence an issue will be raised. Lets ignore it. def func(self, x): return x ** 2
We’re super thrilled about this release and we hope it helps reduce false-positives and enables you tweak DeepSource’s results to suit your context easily, so you can do what you do best — ship good code.
Got feedback? Tweet to us @DeepSourceHQ.