mirror of
https://github.com/grpc/grpc.git
synced 2026-01-24 10:53:30 +08:00
- Regen requirements.bazel.lock with Python 3.9 - bump isort to 6.0.1 (except in pylint, which needs to be updated separately) - fix python version specifiers for black, isort and pylint, typeguard - fix default ignore patterns for isort and pylint - consistent debug info: python version, pip list - consistent virtualenv naming: `.venv-ci-*` - bazel: bump typeguard to 4.4.2 - bazel: bumped gevent to `25.9.1`, greenlet to `3.2.4` to support Python 3.13, closes #40685 - bazel: bump pyyaml for python 3.14 support - bazel: take care of temporary pins to support 3.8-based CIs Bazel RBE CIs upgraded in the following changelists, and currently run Python 3.10: - cl/845778848 - cl/845816768 Relevant testing was done in #41239. Closes #40323 PiperOrigin-RevId: 846423001
139 lines
5.3 KiB
Plaintext
139 lines
5.3 KiB
Plaintext
[MAIN]
|
|
py-version = 3.9
|
|
load-plugins=
|
|
pylint.extensions.no_self_use,
|
|
pylint.extensions.comparison_placement,
|
|
pylint.extensions.redefined_variable_type,
|
|
|
|
ignore=
|
|
src/python/grpcio/grpc/beta,
|
|
src/python/grpcio/grpc/framework,
|
|
src/python/grpcio/grpc/framework/common,
|
|
src/python/grpcio/grpc/framework/foundation,
|
|
src/python/grpcio/grpc/framework/interfaces,
|
|
ignore-patterns=
|
|
.*pb2\.py,
|
|
.*pb2_grpc\.py,
|
|
|
|
[VARIABLES]
|
|
|
|
# TODO(https://github.com/PyCQA/pylint/issues/1345): How does the inspection
|
|
# not include "unused_" and "ignored_" by default?
|
|
dummy-variables-rgx=^ignored_|^unused_
|
|
|
|
[DESIGN]
|
|
|
|
# NOTE(nathaniel): Not particularly attached to this value; it just seems to
|
|
# be what works for us at the moment (excepting the dead-code-walking Beta
|
|
# API).
|
|
max-args=6
|
|
|
|
[MISCELLANEOUS]
|
|
|
|
# NOTE(nathaniel): We are big fans of "TODO(<issue link>): " and
|
|
# "NOTE(<username or issue link>): ". We do not allow "TODO:",
|
|
# "TODO(<username>):", "FIXME:", or anything else.
|
|
notes=FIXME,XXX
|
|
|
|
[MESSAGES CONTROL]
|
|
|
|
disable=
|
|
# -- START OF EXAMPLE-SPECIFIC SUPPRESSIONS --
|
|
no-self-use,
|
|
unused-argument,
|
|
unused-variable,
|
|
# -- END OF EXAMPLE-SPECIFIC SUPPRESSIONS --
|
|
|
|
# TODO(https://github.com/PyCQA/pylint/issues/59#issuecomment-283774279):
|
|
# Enable cyclic-import after a 1.7-or-later pylint release that
|
|
# recognizes our disable=cyclic-import suppressions.
|
|
cyclic-import,
|
|
# TODO(https://github.com/grpc/grpc/issues/8622): Enable this after the
|
|
# Beta API is removed.
|
|
duplicate-code,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Doesn't seem to
|
|
# understand enum and concurrent.futures; look into this later with the
|
|
# latest pylint version.
|
|
import-error,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Enable this one.
|
|
# Should take a little configuration but not much.
|
|
invalid-name,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): This doesn't seem to
|
|
# work for now? Try with a later pylint?
|
|
locally-disabled,
|
|
# NOTE(nathaniel): We don't write doc strings for most private code
|
|
# elements.
|
|
missing-docstring,
|
|
# NOTE(nathaniel): In numeric comparisons it is better to have the
|
|
# lesser (or lesser-or-equal-to) quantity on the left when the
|
|
# expression is true than it is to worry about which is an identifier
|
|
# and which a literal value.
|
|
misplaced-comparison-constant,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Doesn't yet play
|
|
# nicely with some of our code being implemented in Cython. Maybe in a
|
|
# later version?
|
|
no-name-in-module,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Suppress these where
|
|
# the odd shape of the authentication portion of the API forces them on
|
|
# us and enable everywhere else.
|
|
protected-access,
|
|
# NOTE(nathaniel): Pylint and I will probably never agree on this.
|
|
too-few-public-methods,
|
|
# NOTE(nathaniel): Pylint and I will probably never agree on this for
|
|
# private classes. For public classes maybe?
|
|
too-many-instance-attributes,
|
|
# NOTE(nathaniel): Some of our modules have a lot of lines... of
|
|
# specification and documentation. Maybe if this were
|
|
# lines-of-code-based we would use it.
|
|
too-many-lines,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Maybe we could have
|
|
# this one if we extracted just a few more helper functions...
|
|
too-many-nested-blocks,
|
|
# TODO(https://github.com/grpc/grpc/issues/261): Disable unnecessary
|
|
# super-init requirement for abstract class implementations for now.
|
|
super-init-not-called,
|
|
# NOTE(nathaniel): A single statement that always returns program
|
|
# control is better than two statements the first of which sometimes
|
|
# returns program control and the second of which always returns
|
|
# program control. Probably generally, but definitely in the cases of
|
|
# if:/else: and for:/else:.
|
|
useless-else-on-loop,
|
|
no-else-return,
|
|
# NOTE(lidiz): Python 3 make object inheritance default, but not PY2
|
|
useless-object-inheritance,
|
|
# NOTE(lidiz): the import order will be enforced by isort instead
|
|
wrong-import-order,
|
|
# TODO(https://github.com/PyCQA/pylint/issues/3882): Upgrade Pylint
|
|
unsubscriptable-object,
|
|
# NOTE(rbellevi): Pylint doesn't understand .pyi files.
|
|
no-member,
|
|
|
|
# NOTE(sergiitk): From here: just to make it work with pylint==2.17.7
|
|
# Pylint will be replaced with ruff anyway.
|
|
# Not enforced by ruff:
|
|
consider-using-f-string,
|
|
invalid-overridden-method, # not found in main
|
|
# Expect to be caught (and fixed) by ruff.
|
|
# https://github.com/astral-sh/ruff/issues/970
|
|
# pylint | ruff |
|
|
# ----------------------------------- | ------------- |
|
|
super-with-arguments, # UP008
|
|
raise-missing-from, # B904
|
|
unspecified-encoding, # PLW1514
|
|
# Found in examples, but not in main:
|
|
consider-using-with, # SIM115
|
|
# Found in main, but not in examples:
|
|
# f-string-without-interpolation, # F541
|
|
# format-string-without-interpolation, # F541
|
|
# no-else-raise, # RET506
|
|
# no-else-continue, # RET507
|
|
# unnecessary-lambda-assignment, # E731
|
|
# unnecessary-dunder-call, # PLC2801
|
|
# import-outside-toplevel, # PLC0415
|
|
# broad-exception-raised, # TRY002
|
|
# no-self-use, # PLR6301
|
|
# inconsistent-return-statements, # RET501, RET502
|
|
# consider-using-dict-items, # PLC0206
|
|
# use-dict-literal, # C406
|
|
# consider-iterating-dictionary, # SIM118
|