From 26fff85a2fcb0fb34e793b22dd432c4a0cd58507 Mon Sep 17 00:00:00 2001 From: Bernardo Decco Date: Tue, 7 Sep 2021 16:25:41 -0300 Subject: [PATCH] Add pylint py3 portability checks for the ptp-notification-armada-app repo A lot of work has gone into making sure that StarlingX is python3 compatible. To ensure future compatibility, enable the python3 portability checks. Disable the checks that are raising errors. Another set of commits will address the offending code. Story: 2006796 Task: 43227 Signed-off-by: Bernardo Decco Change-Id: I77842a7f67c8aba18dcea389890ec15f6adb73ce --- .zuul.yaml | 18 ++++ .../{pytlint.rc => pylint.rc} | 91 ++++++++++++++++++- .../k8sapp_ptp_notification/tox.ini | 4 +- tox.ini | 4 + 4 files changed, 113 insertions(+), 4 deletions(-) rename python-k8sapp-ptp-notification/k8sapp_ptp_notification/{pytlint.rc => pylint.rc} (73%) diff --git a/.zuul.yaml b/.zuul.yaml index a12498c..42d924b 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -7,9 +7,11 @@ check: jobs: - openstack-tox-linters + - k8sapp-ptp-notification-tox-pylint gate: jobs: - openstack-tox-linters + - k8sapp-ptp-notification-tox-pylint post: jobs: - stx-ptp-notification-armada-app-upload-git-mirror @@ -27,6 +29,22 @@ secret: stx-ptp-notification-armada-app-github-secret pass-to-parent: true +- job: + name: k8sapp-ptp-notification-tox-pylint + parent: tox + description: | + Run pylint test for k8sapp-ptp-notification-tox-pylint + required-projects: + - starlingx/config + - starlingx/fault + - starlingx/update + - starlingx/utilities + files: + - python-k8sapp-ptp-notification/* + vars: + tox_envlist: pylint + tox_extra_args: -c python-k8sapp-ptp-notification/k8sapp_ptp_notification/tox.ini + - secret: name: stx-ptp-notification-armada-app-github-secret data: diff --git a/python-k8sapp-ptp-notification/k8sapp_ptp_notification/pytlint.rc b/python-k8sapp-ptp-notification/k8sapp_ptp_notification/pylint.rc similarity index 73% rename from python-k8sapp-ptp-notification/k8sapp_ptp_notification/pytlint.rc rename to python-k8sapp-ptp-notification/k8sapp_ptp_notification/pylint.rc index 6e869c3..42adc7b 100644 --- a/python-k8sapp-ptp-notification/k8sapp_ptp_notification/pytlint.rc +++ b/python-k8sapp-ptp-notification/k8sapp_ptp_notification/pylint.rc @@ -34,7 +34,87 @@ extension-pkg-whitelist=lxml.etree,greenlet # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time. -#enable= +# +# Python3 checker: +# +# E1601: print-statement +# E1602: parameter-unpacking +# E1603: unpacking-in-except +# E1604: old-raise-syntax +# E1605: backtick +# E1606: long-suffix +# E1607: old-ne-operator +# E1608: old-octal-literal +# E1609: import-star-module-level +# E1610: non-ascii-bytes-literal +# E1611: invalid-unicode-literal +# W1601: apply-builtin +# W1602: basestring-builtin +# W1603: buffer-builtin +# W1604: cmp-builtin +# W1605: coerce-builtin +# W1606: execfile-builtin +# W1607: file-builtin +# W1608: long-builtin +# W1609: raw_input-builtin +# W1610: reduce-builtin +# W1611: standarderror-builtin +# W1612: unicode-builtin +# W1613: xrange-builtin +# W1614: coerce-method +# W1615: delslice-method +# W1616: getslice-method +# W1617: setslice-method +# W1618: no-absolute-import +# W1619: old-division +# W1620: dict-iter-method +# W1621: dict-view-method +# W1622: next-method-called +# W1623: metaclass-assignment +# W1624: indexing-exception +# W1625: raising-string +# W1626: reload-builtin +# W1627: oct-method +# W1628: hex-method +# W1629: nonzero-method +# W1630: cmp-method +# W1632: input-builtin +# W1633: round-builtin +# W1634: intern-builtin +# W1635: unichr-builtin +# W1636: map-builtin-not-iterating +# W1637: zip-builtin-not-iterating +# W1638: range-builtin-not-iterating +# W1639: filter-builtin-not-iterating +# W1640: using-cmp-argument +# W1641: eq-without-hash +# W1642: div-method +# W1643: idiv-method +# W1644: rdiv-method +# W1645: exception-message-attribute +# W1646: invalid-str-codec +# W1647: sys-max-int +# W1648: bad-python3-import +# W1649: deprecated-string-function +# W1650: deprecated-str-translate-call +# W1651: deprecated-itertools-function +# W1652: deprecated-types-field +# W1653: next-method-defined +# W1654: dict-items-not-iterating +# W1655: dict-keys-not-iterating +# W1656: dict-values-not-iterating +# W1657: deprecated-operator-function +# W1658: deprecated-urllib-function +# W1659: xreadlines-attribute +# W1660: deprecated-sys-function +# W1661: exception-escape +# W1662: comprehension-escape +enable=E1603,E1609,E1610,E1602,E1606,E1608,E1607,E1605,E1604,E1601,E1611,W1652, + W1651,W1649,W1657,W1660,W1658,W1659,W1623,W1622,W1620,W1621,W1645,W1641, + W1624,W1648,W1625,W1611,W1662,W1661,W1650,W1640,W1630,W1614,W1615,W1642, + W1616,W1628,W1643,W1629,W1627,W1644,W1617,W1601,W1602,W1603,W1604,W1605, + W1654,W1655,W1656,W1619,W1606,W1607,W1639,W1618,W1632,W1634,W1608,W1636, + W1653,W1646,W1638,W1609,W1610,W1626,W1633,W1647,W1635,W1612,W1613,W1637 # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifier separated by comma (,) or put this option @@ -44,7 +124,14 @@ extension-pkg-whitelist=lxml.etree,greenlet # https://pylint.readthedocs.io/en/latest/user_guide # We are disabling (C)onvention # We are disabling (R)efactor -disable=C, R +# W0611: unused-import +# W0107: unnecessary-pass +# W1406: redundant-u-string-prefix +# W1618: no-absolute-import +# E0401: import-error +# E0602: undefined-variable +# E0611: no-name-in-module +disable=C, R, W0611, W0107, W1406, E0401, E0602, E0611, W1618 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs diff --git a/python-k8sapp-ptp-notification/k8sapp_ptp_notification/tox.ini b/python-k8sapp-ptp-notification/k8sapp_ptp_notification/tox.ini index b3f54f1..5677a4b 100644 --- a/python-k8sapp-ptp-notification/k8sapp_ptp_notification/tox.ini +++ b/python-k8sapp-ptp-notification/k8sapp_ptp_notification/tox.ini @@ -21,7 +21,7 @@ sitepackages = True whitelist_externals = bash find -install_command = pip install \ +install_command = pip install --use-deprecated legacy-resolver \ -v -v -v \ -c{toxinidir}/upper-constraints.txt \ -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt} \ @@ -98,7 +98,7 @@ deps = -r{toxinidir}/test-requirements.txt commands = bandit --ini tox.ini -n 5 -r k8sapp_ptp_notification [testenv:pylint] -basepython = python2.7 +basepython = python3 sitepackages = False deps = {[testenv]deps} diff --git a/tox.ini b/tox.ini index 02684f6..d75152d 100644 --- a/tox.ini +++ b/tox.ini @@ -51,3 +51,7 @@ commands = rm -rf api-ref/build sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html whitelist_externals = rm + +[testenv:pylint] +basepython = python3 +description = Dummy environment to allow pylint to be run in subdir tox