Pylint compliance


#1

Each release of pylint adds a small selection of new checks and diagnostics. The version of pylint installed in the docker images is not pinned. Hence pylint behaviour can vary between local builds and CI builds.

At the time of writing the TVM code base is clean for pylint==1.9.4 but generates a number of diagnostics for more recent versions of pylint.

For reference, at pylint==2.2.2 (the most recent) the code base contains the following diagnostics:
no-else-return
consider-using-in
consider-using-get
unused-import
chained-comparison
subprocess-popen-prexec-fn

In order to work with more recent pylint version my inclination would be to post patches to address these diagnostics (or disable the diagnostic on a case by case basis where appropriate).

Does TVM have a policy in place on dealing with new pylint diagnostics?

Does TVM prefer to take patches to disable such diagnostics rather than address them?

Thanks
/Marcus


#2

Great question. We try to fix lint problem as much as we can, so yes patches are welcomed to fix the lint problems. However, pylint can sometimes be too pedantic in certain cases, and we also can disable reasonable ones(many cases are naming conventions)


#3

Thanks for the input, Ill propose patches for the 6 classes of pylint diagnostic listed above in the next day or two…