Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump Pylint to 2.17 #351

Closed
wants to merge 13 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions azdev/config/cli.flake8
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@
max-line-length = 120
max-complexity = 10
ignore =
E501, # line too long, it is covered by pylint
E722, # bare except, bad practice, to be removed in the future
F401, # imported but unused, too many violations, to be removed in the future
F811, # redefinition of unused, to be removed in the future
C901 # code flow is too complex, too many violations, to be removed in the future
W503 # line break before binary operator
W504 # line break after binary operator effect on readability is subjective
# line too long, it is covered by pylint
E501,
# bare except, bad practice, to be removed in the future
E722,
# imported but unused, too many violations, to be removed in the future
F401,
# redefinition of unused, to be removed in the future
F811,
# code flow is too complex, too many violations, to be removed in the future
C901,
# line break before binary operator
W503,
# line break after binary operator effect on readability is subjective
W504
Copy link
Contributor Author

@bebound bebound Feb 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix ValueError: Error code '#' supplied to 'ignore' option does not match '^[A-Z]{1,3}[0-9]{0,3}$'
Flake8 does not support inline comments for any of the keys, so comments should be put in newline.
Related issue: PyCQA/flake8#1750

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When pylint==2.11.1, it installs mccabe 0.6.1. flake8 also requires mccabe, and only 4.0.1 meet the version constraint.

  - pylint [required: ==2.11.1, installed: 2.11.1]
    - astroid [required: >=2.8.0,<2.9, installed: 2.8.6]
      - lazy-object-proxy [required: >=1.4.0, installed: 1.9.0]
      - setuptools [required: >=20.0, installed: 63.2.0]
      - wrapt [required: >=1.11,<1.14, installed: 1.13.3]
    - isort [required: >=4.2.5,<6, installed: 5.12.0]
    - mccabe [required: >=0.6,<0.7, installed: 0.6.1]
    - platformdirs [required: >=2.2.0, installed: 2.6.2]
    - toml [required: >=0.7.1, installed: 0.10.2]
 
- flake8 [required: Any, installed: 4.0.1]
    - mccabe [required: >=0.6.0,<0.7.0, installed: 0.6.1]
    - pycodestyle [required: >=2.8.0,<2.9.0, installed: 2.8.0]
    - pyflakes [required: >=2.4.0,<2.5.0, installed: 2.4.0]

After upgrading PyLint 2.16.1, mccabe becomes [required: >=0.6,<0.8, installed: 0.7.0], and flake8 becomes 6.0.0.

Copy link
Member

@jiasli jiasli Jul 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this issue still exist in pylint 2.17.4? https://pypi.org/project/pylint/

exclude =
azure_cli_bdist_wheel.py
build
Expand Down
20 changes: 10 additions & 10 deletions azdev/config/cli_pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ min-similarity-lines=10
# The invalid-name checker must be **enabled** for these hints to be used.
include-naming-hint=yes

module-name-hint=lowercase (keep short; underscores are discouraged)
const-name-hint=UPPER_CASE_WITH_UNDERSCORES
class-name-hint=CapitalizedWords
class-attribute-name-hint=lower_case_with_underscores
attr-name-hint=lower_case_with_underscores
method-name-hint=lower_case_with_underscores
function-name-hint=lower_case_with_underscores
argument-name-hint=lower_case_with_underscores
variable-name-hint=lower_case_with_underscores
inlinevar-name-hint=lower_case_with_underscores (short is OK)
module-naming-style=snake_case
const-naming-style=UPPER_CASE
class-naming-style=PascalCase
class-attribute-naming-style=snake_case
attr-naming-style=snake_case
method-naming-style=snake_case
function-naming-style=snake_case
argument-naming-style=snake_case
variable-naming-style=snake_case
inlinevar-naming-style=snake_case
21 changes: 14 additions & 7 deletions azdev/config/ext.flake8
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@
max-line-length = 120
max-complexity = 10
ignore =
E501, # line too long, it is covered by pylint
E722, # bare except, bad practice, to be removed in the future
F401, # imported but unused, too many violations, to be removed in the future
F811, # redefinition of unused, to be removed in the future
C901 # code flow is too complex, too many violations, to be removed in the future
W503 # line break before binary operator
W504 # line break after binary operator effect on readability is subjective
# line too long, it is covered by pylint
E501,
# bare except, bad practice, to be removed in the future
E722,
# imported but unused, too many violations, to be removed in the future
F401,
# redefinition of unused, to be removed in the future
F811,
# code flow is too complex, too many violations, to be removed in the future
C901,
# line break before binary operator
W503,
# line break after binary operator effect on readability is subjective
W504
exclude =
*/vendored_sdks
docs
Expand Down
21 changes: 11 additions & 10 deletions azdev/config/ext_pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,14 @@ min-similarity-lines=10
# The invalid-name checker must be **enabled** for these hints to be used.
include-naming-hint=yes

module-name-hint=lowercase (keep short; underscores are discouraged)
const-name-hint=UPPER_CASE_WITH_UNDERSCORES
class-name-hint=CapitalizedWords
class-attribute-name-hint=lower_case_with_underscores
attr-name-hint=lower_case_with_underscores
method-name-hint=lower_case_with_underscores
function-name-hint=lower_case_with_underscores
argument-name-hint=lower_case_with_underscores
variable-name-hint=lower_case_with_underscores
inlinevar-name-hint=lower_case_with_underscores (short is OK)
module-naming-style=snake_case
const-naming-style=UPPER_CASE
class-naming-style=PascalCase
class-attribute-naming-style=snake_case
attr-naming-style=snake_case
method-naming-style=snake_case
function-naming-style=snake_case
argument-naming-style=snake_case
variable-naming-style=snake_case
inlinevar-naming-style=snake_case

2 changes: 1 addition & 1 deletion azdev/operations/extensions/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def get_whl_from_url(url, filename, tmp_dir, whl_cache=None):
if url in whl_cache:
return whl_cache[url]
import requests
r = requests.get(url, stream=True)
r = requests.get(url, stream=True) # pylint: disable=missing-timeout
try:
assert r.status_code == 200, "Request to {} failed with {}".format(url, r.status_code)
except AssertionError:
Expand Down
2 changes: 1 addition & 1 deletion azdev/operations/help/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ def _get_whl_from_url(url, filename, tmp_dir, whl_cache=None):
if url in whl_cache:
return whl_cache[url]
import requests
r = requests.get(url, stream=True)
r = requests.get(url, stream=True) # pylint: disable=missing-timeout
assert r.status_code == 200, "Request to {} failed with {}".format(url, r.status_code)
ext_file = os.path.join(tmp_dir, filename)
with open(ext_file, 'wb') as f:
Expand Down
14 changes: 7 additions & 7 deletions azdev/operations/help/refdoc/common/directives.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ def handle_signature(self, sig, signode):
signode += addnodes.desc_addname(sig, sig)
return sig

def needs_arglist(self): # pylint: disable=no-self-use
def needs_arglist(self):
return False

def add_target_and_index(self, name, sig, signode):
signode['ids'].append(name)

def get_index_text(self, modname, name): # pylint: disable=unused-argument, no-self-use
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise it raises azdev/operations/help/refdoc/common/directives.py:46:0: R0022: Useless option value for 'disable', 'no-self-use' was moved to an optional extension, see https://pylint.pycqa.org/en/latest/whatsnew/2/2.14/summary.html#removed-checkers. (useless-option-value)

def get_index_text(self, modname, name): # pylint: disable=unused-argument
return name


Expand All @@ -53,7 +53,7 @@ class CliGroupDirective(CliBaseDirective):
Field('docsource', label='Doc Source', has_arg=False,
names=('docsource', 'documentsource')),
Field('deprecated', label='Deprecated', has_arg=False,
names=('deprecated'))
names=('deprecated',))
Copy link
Contributor Author

@bebound bebound Feb 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

])


Expand All @@ -63,23 +63,23 @@ class CliCommandDirective(CliBaseDirective):
Field('docsource', label='Doc Source', has_arg=False,
names=('docsource', 'documentsource')),
Field('deprecated', label='Deprecated', has_arg=False,
names=('deprecated'))
names=('deprecated',))
])


class CliArgumentDirective(CliBaseDirective):
doc_field_types = copy.copy(_CLI_FIELD_TYPES)
doc_field_types.extend([
Field('required', label='Required', has_arg=False,
names=('required')),
names=('required',)),
Field('values', label='Allowed values', has_arg=False,
names=('values', 'choices', 'options')),
Field('default', label='Default value', has_arg=False,
names=('default')),
names=('default',)),
Field('source', label='Values from', has_arg=False,
names=('source', 'sources')),
Field('deprecated', label='Deprecated', has_arg=False,
names=('deprecated'))
names=('deprecated',))
])


Expand Down
2 changes: 1 addition & 1 deletion azdev/operations/performance.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ def _benchmark_cmd_staticstic(time_series: list):
avg_time = sum(time_series) / size

std_deviation = sqrt(
sum([(t - avg_time) * (t - avg_time) for t in time_series]) / size
sum((t - avg_time) * (t - avg_time) for t in time_series) / size
)

return {
Expand Down
2 changes: 1 addition & 1 deletion azdev/operations/pypi.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import re
import sys

from distutils.version import LooseVersion # pylint:disable=import-error,no-name-in-module
from distutils.version import LooseVersion # pylint:disable=import-error,no-name-in-module,deprecated-module
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temporally disable this warning.
I will create another PR to fix this like Azure/azure-cli#17667

from docutils import core, io

from knack.log import get_logger
Expand Down
2 changes: 1 addition & 1 deletion azdev/operations/tests/test_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def test_statistic_ok(self):
max_num = round(rands[-1], 4)
min_num = round(rands[0], 4)
avg_num = round(sum(rands) / len(rands), 4)
std_num = round(sqrt(sum([(t - avg_num) ** 2 for t in rands]) / len(rands)), 4)
std_num = round(sqrt(sum((t - avg_num) ** 2 for t in rands) / len(rands)), 4)

stats = _benchmark_cmd_staticstic(rands)

Expand Down
2 changes: 1 addition & 1 deletion azdev/operations/testtool/tests/test_profile_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ def test_unsupported_profile(self):
def test_raise_inner_exception(self):
with self.assertRaises(Exception):
with ProfileContext('latest'):
raise Exception('inner Exception')
raise Exception('inner Exception') # pylint: disable=broad-exception-raised
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
'gitpython',
'jinja2',
'knack',
'pylint==2.11.1',
'pylint==2.17.0',
'pytest-xdist', # depends on pytest-forked
'pytest-forked',
'pytest>=5.0.0',
Expand Down