New Issues:
10 new issues have been added to the Python analyzer. Here are the issues with examples:
Bad async magic method (PTC-W0045):
class BadClass: async def __lt__(self, other): Unit test class with no tests (PTC-W0046):
import unittest def Tests(unittest.TestCase): def my_test(self, arg1, arg2): self.assertEquals(arg1, arg2) Empty block of code (PTC-W0047):
for _ in range(10): pass if statements can be merged (PTC-W0048):
if condition1: if condition2: dosomething() Function/method with an empty body (PTC-W0049):
def my_func(foo="Noncompliant"): pass class MyClass: def mymethod1(self, foo="Noncompliant"): pass Duplicate elements during set declaration (PTC-W0050):
my_set = {"one", "two", "one"} def myfunc(a, b, c): my_set = {a, b, a, c} Abstract method does not raise NotImplementedError (PTC-W0053):
import abc class Vehicle: __metaclass__ = abc.ABCMeta @abc.abstractmethod def method_to_implement(self, input): return Special method should return NotImplemented (PTC-W0054):
class A: def __init__(self, val): self.val = val def __add__(self, other): raise NotImplementedError class B: def __init__(self, val): self.val = val def __add__(self, other): return self.val + other.val def __radd__(self, other): return self.val + other.val A(1) + B(1) # This will raise `NotImplementedError` Audit Issue: Unverified server certificate (PTC-W6001):
import ssl context = ssl.create_default_context() ctx3.verify_mode = ssl.CERT_NONE # Setting this won't verify the certificate Audit Issue: Unverified server hostname (PTC-W6002):
import ssl context = ssl._create_stdlib_context() # by default hostname verification is not done Autofix Additions:
The Python analyzer can now automatically fix 6 more issues.
PTC-W0043:
This fixer removes the unnecessary
delstatement from the local scope.
PTC-W0044:
This changes the use of
len(seq) - 1to get the last element.
So, an occurrence likeseq[len(seq)-1]would be changed toseq[-1].
PTC-W0045:
This fixer converts the
asyncmagic method into a regular method.
PTC-W0050:
This fixer removes duplicate elements during a
setdeclaration
PTC-W9006:
Provide
blank=Truefor a field withnull=Trueto Django fields that allownullbut notblank.
PTC-W9007:
Remove redundant
default=Nonefrom Django fields.
