From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ua1-f50.google.com (mail-ua1-f50.google.com [209.85.222.50]) by mx.groups.io with SMTP id smtpd.web09.182.1624909660110798166 for ; Mon, 28 Jun 2021 12:47:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20161025 header.b=oKpLYItT; spf=pass (domain: gmail.com, ip: 209.85.222.50, mailfrom: alex.kanavin@gmail.com) Received: by mail-ua1-f50.google.com with SMTP id r9so7444446ual.7 for ; Mon, 28 Jun 2021 12:47:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Xf/h4D1pX4DNDlzxsS4A9VZgvoqq3QYjBwD7HktyNO0=; b=oKpLYItTn5qfy/8Ms8DE75AOTmX2lIOTaZ2KZCRJWhn/DgVr0+Fc+BlF91rlFILpKT gGYEgSK1rQT1viX1/VkUtm1wDcfckgBlRC9Cd6FmXbBLW4TcAf6S4HxTlUQ/FglYQG61 FMpHqLI3FabMDJ0ghdt9A9ci02upA7k86l918eOF4SGlL7nQ2xbFxqhBRXQsSQpSDn4d G2eujNzNLO35270jufz4RKA0E46Q5sYDNgqXskC4fjPjZzCRlhY//jIuCt8rkj3MGefR Wf7XRcCoZsmLoFNhii4Ymdf2VQqc0c9tsWtxFkobv3mLrEJyU0z62wNlWI/S/9eGJes7 W5JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Xf/h4D1pX4DNDlzxsS4A9VZgvoqq3QYjBwD7HktyNO0=; b=OybE5Yr4w82j3XO7Ia9g1VwWiqXqslKZVcM6iccQMynM3cl81QasgcOhDQ/GOC0CLG gdWPbNy1wTJphhP4oopUIcIqjSAMXc17dZcjBtdgU1IaEw5EU0spAsWeH2mdxT390HOJ Qd53pmtGrcUCIFloWqqIYLI6Hj+oV+1jX5kgCnKrnZiD7TnowrN79G6wE7Xz1Wmp4Vz8 odKAkV3k9d74iwKh/vLyCWN+ZUItXs5DIEIBL2P8EnTYbVTwHd5evciBL7LZd3MKnIEl oeDvnRlUOHobg0fQOl2KlDIp7sjkPAhBVH/dDJWhTS5hzXbWplD9t7basmzCIFAmmgis qr7w== X-Gm-Message-State: AOAM531ZKEzMNSL+nJsv8Bd+AlIDh3fUNBqoLth3fS/FAwRbY7T/VhpT WdhZOh7h3sDie3pno3MIMWEEXf2ypz+V02OLWGU= X-Google-Smtp-Source: ABdhPJz8GW29xSRaDUt6NLvxw0Ik5w37ql94A7uIDluUgXvrB83W4jlA2p1p/xLXyxmqKkOoRb4V63TqwvgkyNkVnYs= X-Received: by 2002:ab0:290a:: with SMTP id v10mr17029027uap.22.1624909659182; Mon, 28 Jun 2021 12:47:39 -0700 (PDT) MIME-Version: 1.0 References: <20210628055915.1107-1-raj.khem@gmail.com> <1709447933.2675529.1624908347132@mail.yahoo.com> In-Reply-To: From: "Alexander Kanavin" Date: Mon, 28 Jun 2021 21:47:27 +0200 Message-ID: Subject: Re: [OE-core] [PATCH 1/8] PEP8 double aggressive E401 To: Khem Raj Cc: Persian Prince , OE-core Content-Type: multipart/alternative; boundary="000000000000071bda05c5d8c3ec" --000000000000071bda05c5d8c3ec Content-Type: text/plain; charset="UTF-8" I just generally disagree with the idea that changing a = b to a=b, or import a,b to import a\nimport b helps readability or reduces confusion. I'm reading a lot of python code all the time, and never once have been confused by inconsistent whitespace. Can the linter fix anything else, which has actual benefit? Alex On Mon, 28 Jun 2021 at 21:41, Khem Raj wrote: > On Mon, Jun 28, 2021 at 12:25 PM Persian Prince > wrote: > > > > When we can follow PEP8 we should as it's how developers could follow a > common coding style and avoid creating different files. > > > > In "Safe PEP8" PRs some PEP8 codes carefully added so it won't change > tabs to spaces but makes the code cleaner in a safe way. PEP8 also fixes > some small problems (won't do huge changes like futurize) which is good and > sometime we miss them by mistake. > > > > We at https://github.com/OpenVisionE2 , https://github.com/oe-alliance > and https://github.com/OpenPLi applied safe PEP8 changes to so many > repositories and we're using it via PEP8.sh on GitHub Actions as an online > cleaner tool. (PEP8.sh: > https://github.com/OpenVisionE2/enigma2-openvision/blob/develop/CI/PEP8.sh > ) > > > > Also applied before on https://github.com/openembedded/meta-openembedded > which is why that repo is clean and won't need a PR (for now), keep in mind > that these are common standards so even if we don't like them that much > still they help for having a good common style and less mistakes. > > > > If you needed more assistance from me please don't hesitate to ask, I'm > all in. > > > can you improve the commit msgs in pull request as asked. > > > > > Regards, > > Persian Prince > > > > On Monday, June 28, 2021, 10:56:40 AM GMT+4:30, Alexander Kanavin < > alex.kanavin@gmail.com> wrote: > > > > > > Right, but can you please write something more descriptive than "PEP8 > double aggressive W291 ~ W293 and W391" ? > > > > Also I'm not sure fiddling about with whitespace or whether imports all > need their own line really helps. > > > > Alex > > > > On Mon, 28 Jun 2021 at 08:16, Khem Raj wrote: > > > > On Sun, Jun 27, 2021 at 11:13 PM Alexander Kanavin > > wrote: > > > > > > Wait, what is this patchset all about? > > > > > > > its fixes for python linter (pylint) found issues. > > > > > Alex > > > > > > On Mon, 28 Jun 2021 at 07:59, Khem Raj wrote: > > >> > > >> From: persianpros > > >> > > >> Signed-off-by: Khem Raj > > >> --- > > >> meta/lib/oe/package.py | 9 +++++++-- > > >> meta/lib/oe/qa.py | 4 +++- > > >> meta/lib/oe/utils.py | 6 ++++-- > > >> meta/lib/oeqa/oetest.py | 4 +++- > > >> meta/lib/oeqa/sdk/case.py | 3 ++- > > >> meta/lib/oeqa/sdk/cases/buildlzip.py | 5 ++++- > > >> meta/lib/oeqa/sdk/cases/python.py | 3 ++- > > >> meta/lib/oeqa/sdk/testsdk.py | 3 ++- > > >> meta/lib/oeqa/selftest/cases/oelib/path.py | 3 ++- > > >> meta/lib/oeqa/selftest/cases/package.py | 7 +++++-- > > >> meta/lib/oeqa/selftest/cases/runtime_test.py | 3 ++- > > >> meta/lib/oeqa/utils/testexport.py | 6 +++++- > > >> .../texinfo-dummy-native/texinfo-dummy/template.py | 4 +++- > > >> scripts/combo-layer | 3 ++- > > >> scripts/contrib/patchreview.py | 11 > ++++++++--- > > >> scripts/lnr | 3 ++- > > >> scripts/oe-pkgdata-browser | 5 ++++- > > >> .../pybootchartgui/tests/parser_test.py | 7 ++++++- > > >> scripts/send-error-report | 3 ++- > > >> scripts/verify-bashisms | 9 +++++++-- > > >> 20 files changed, 75 insertions(+), 26 deletions(-) > > >> > > >> diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py > > >> index dd700cbb0c..fc5408d5f8 100644 > > >> --- a/meta/lib/oe/package.py > > >> +++ b/meta/lib/oe/package.py > > >> @@ -107,7 +107,10 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, > base_libdir, d, qa_already_stripp > > >> :param qa_already_stripped: Set to True if already-stripped' in > ${INSANE_SKIP} > > >> This is for proper logging and messages only. > > >> """ > > >> - import stat, errno, oe.path, oe.utils > > >> + import stat > > >> + import errno > > >> + import oe.path > > >> + import oe.utils > > >> > > >> elffiles = {} > > >> inodes = {} > > >> @@ -187,7 +190,9 @@ def file_translate(file): > > >> return ft > > >> > > >> def filedeprunner(arg): > > >> - import re, subprocess, shlex > > >> + import re > > >> + import subprocess > > >> + import shlex > > >> > > >> (pkg, pkgfiles, rpmdeps, pkgdest) = arg > > >> provides = {} > > >> diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py > > >> index e8a854a302..38c2e0cc1c 100644 > > >> --- a/meta/lib/oe/qa.py > > >> +++ b/meta/lib/oe/qa.py > > >> @@ -2,7 +2,9 @@ > > >> # SPDX-License-Identifier: GPL-2.0-only > > >> # > > >> > > >> -import os, struct, mmap > > >> +import os > > >> +import struct > > >> +import mmap > > >> > > >> class NotELFFileError(Exception): > > >> pass > > >> diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py > > >> index a84039f585..789bad33f6 100644 > > >> --- a/meta/lib/oe/utils.py > > >> +++ b/meta/lib/oe/utils.py > > >> @@ -376,7 +376,8 @@ def format_pkg_list(pkg_dict, ret_format=None): > > >> # Helper function to get the host compiler version > > >> # Do not assume the compiler is gcc > > >> def get_host_compiler_version(d, taskcontextonly=False): > > >> - import re, subprocess > > >> + import re > > >> + import subprocess > > >> > > >> if taskcontextonly and d.getVar('BB_WORKERCONTEXT') != '1': > > >> return > > >> @@ -404,7 +405,8 @@ def get_host_compiler_version(d, > taskcontextonly=False): > > >> > > >> > > >> def host_gcc_version(d, taskcontextonly=False): > > >> - import re, subprocess > > >> + import re > > >> + import subprocess > > >> > > >> if taskcontextonly and d.getVar('BB_WORKERCONTEXT') != '1': > > >> return > > >> diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py > > >> index 9c84466dd0..3136ac2ce5 100644 > > >> --- a/meta/lib/oeqa/oetest.py > > >> +++ b/meta/lib/oeqa/oetest.py > > >> @@ -9,7 +9,9 @@ > > >> > > >> # It also has some helper functions and it's responsible for > actually starting the tests > > >> > > >> -import os, re, sys > > >> +import os > > >> +import re > > >> +import sys > > >> import unittest > > >> import inspect > > >> import subprocess > > >> diff --git a/meta/lib/oeqa/sdk/case.py b/meta/lib/oeqa/sdk/case.py > > >> index c45882689c..86ac199197 100644 > > >> --- a/meta/lib/oeqa/sdk/case.py > > >> +++ b/meta/lib/oeqa/sdk/case.py > > >> @@ -35,7 +35,8 @@ class OESDKTestCase(OETestCase): > > >> OS/architecture, or if not specified the currently > configured MACHINE's > > >> OS/architecture. > > >> """ > > >> - import oe.qa, oe.elf > > >> + import oe.qa > > >> + import oe.elf > > >> > > >> if not target_os or not target_arch: > > >> output = self._run("echo > $OECORE_TARGET_OS:$OECORE_TARGET_ARCH") > > >> diff --git a/meta/lib/oeqa/sdk/cases/buildlzip.py > b/meta/lib/oeqa/sdk/cases/buildlzip.py > > >> index 49ae756bf3..04c4a0ec16 100644 > > >> --- a/meta/lib/oeqa/sdk/cases/buildlzip.py > > >> +++ b/meta/lib/oeqa/sdk/cases/buildlzip.py > > >> @@ -2,7 +2,10 @@ > > >> # SPDX-License-Identifier: MIT > > >> # > > >> > > >> -import os, tempfile, subprocess, unittest > > >> +import os > > >> +import tempfile > > >> +import subprocess > > >> +import unittest > > >> from oeqa.sdk.case import OESDKTestCase > > >> from oeqa.utils.subprocesstweak import errors_have_output > > >> errors_have_output() > > >> diff --git a/meta/lib/oeqa/sdk/cases/python.py > b/meta/lib/oeqa/sdk/cases/python.py > > >> index a334abce5f..2848481f33 100644 > > >> --- a/meta/lib/oeqa/sdk/cases/python.py > > >> +++ b/meta/lib/oeqa/sdk/cases/python.py > > >> @@ -2,7 +2,8 @@ > > >> # SPDX-License-Identifier: MIT > > >> # > > >> > > >> -import subprocess, unittest > > >> +import subprocess > > >> +import unittest > > >> from oeqa.sdk.case import OESDKTestCase > > >> > > >> from oeqa.utils.subprocesstweak import errors_have_output > > >> diff --git a/meta/lib/oeqa/sdk/testsdk.py > b/meta/lib/oeqa/sdk/testsdk.py > > >> index 35e40187bc..18e03cb8ef 100644 > > >> --- a/meta/lib/oeqa/sdk/testsdk.py > > >> +++ b/meta/lib/oeqa/sdk/testsdk.py > > >> @@ -95,7 +95,8 @@ class TestSDK(TestSDKBase): > > >> processes = d.getVar("TESTIMAGE_NUMBER_THREADS") or > d.getVar("BB_NUMBER_THREADS") > > >> if processes: > > >> try: > > >> - import testtools, subunit > > >> + import testtools > > >> + import subunit > > >> except ImportError: > > >> bb.warn("Failed to import testtools or subunit, the > testcases will run serially") > > >> processes = None > > >> diff --git a/meta/lib/oeqa/selftest/cases/oelib/path.py > b/meta/lib/oeqa/selftest/cases/oelib/path.py > > >> index a1cfa08c09..098734fa5d 100644 > > >> --- a/meta/lib/oeqa/selftest/cases/oelib/path.py > > >> +++ b/meta/lib/oeqa/selftest/cases/oelib/path.py > > >> @@ -3,7 +3,8 @@ > > >> # > > >> > > >> from unittest.case import TestCase > > >> -import oe, oe.path > > >> +import oe > > >> +import oe.path > > >> import tempfile > > >> import os > > >> import errno > > >> diff --git a/meta/lib/oeqa/selftest/cases/package.py > b/meta/lib/oeqa/selftest/cases/package.py > > >> index 7166c3991f..82aa1bde1c 100644 > > >> --- a/meta/lib/oeqa/selftest/cases/package.py > > >> +++ b/meta/lib/oeqa/selftest/cases/package.py > > >> @@ -5,7 +5,8 @@ > > >> from oeqa.selftest.case import OESelftestTestCase > > >> from oeqa.utils.commands import bitbake, get_bb_vars, get_bb_var, > runqemu > > >> import stat > > >> -import subprocess, os > > >> +import subprocess > > >> +import os > > >> import oe.path > > >> import re > > >> > > >> @@ -150,7 +151,9 @@ class PackageTests(OESelftestTestCase): > > >> self.fail('GDB %s failed' % binary) > > >> > > >> def test_preserve_ownership(self): > > >> - import os, stat, oe.cachedpath > > >> + import os > > >> + import stat > > >> + import oe.cachedpath > > >> features = 'IMAGE_INSTALL_append = " selftest-chown"\n' > > >> self.write_config(features) > > >> bitbake("core-image-minimal") > > >> diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py > b/meta/lib/oeqa/selftest/cases/runtime_test.py > > >> index d0c2440722..54a80dfdc0 100644 > > >> --- a/meta/lib/oeqa/selftest/cases/runtime_test.py > > >> +++ b/meta/lib/oeqa/selftest/cases/runtime_test.py > > >> @@ -211,7 +211,8 @@ class TestImage(OESelftestTestCase): > > >> Product: oe-core > > >> Author: Alexander Kanavin > > >> """ > > >> - import subprocess, os > > >> + import subprocess > > >> + import os > > >> try: > > >> content = os.listdir("/dev/dri") > > >> if len([i for i in content if i.startswith('render')]) > == 0: > > >> diff --git a/meta/lib/oeqa/utils/testexport.py > b/meta/lib/oeqa/utils/testexport.py > > >> index e89d130a9c..383e57a6b2 100644 > > >> --- a/meta/lib/oeqa/utils/testexport.py > > >> +++ b/meta/lib/oeqa/utils/testexport.py > > >> @@ -6,7 +6,11 @@ > > >> > > >> # Provides functions to help with exporting binaries obtained from > built targets > > >> > > >> -import os, re, glob as g, shutil as sh,sys > > >> +import os > > >> +import re > > >> +import glob as g > > >> +import shutil as sh > > >> +import sys > > >> from time import sleep > > >> from .commands import runCmd > > >> from difflib import SequenceMatcher as SM > > >> diff --git > a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py > b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py > > >> index 86c7c1811a..75c01b83bf 100644 > > >> --- > a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py > > >> +++ > b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py > > >> @@ -28,7 +28,9 @@ > > >> # of the executable from argv[0] and emulate the corresponding > program, so > > >> # multiple copies of this script will exist under different names. > > >> > > >> -import sys, os, argparse > > >> +import sys > > >> +import os > > >> +import argparse > > >> > > >> > > >> this_binary = sys.argv[0].split("/")[-1] > > >> diff --git a/scripts/combo-layer b/scripts/combo-layer > > >> index 045de65642..835a6bcd09 100755 > > >> --- a/scripts/combo-layer > > >> +++ b/scripts/combo-layer > > >> @@ -11,7 +11,8 @@ > > >> # > > >> > > >> import fnmatch > > >> -import os, sys > > >> +import os > > >> +import sys > > >> import optparse > > >> import logging > > >> import subprocess > > >> diff --git a/scripts/contrib/patchreview.py > b/scripts/contrib/patchreview.py > > >> index 62c509f51c..744dcfb49e 100755 > > >> --- a/scripts/contrib/patchreview.py > > >> +++ b/scripts/contrib/patchreview.py > > >> @@ -40,7 +40,8 @@ def blame_patch(patch): > > >> "--", > patch)).decode("utf-8").splitlines() > > >> > > >> def patchreview(path, patches): > > >> - import re, os.path > > >> + import re > > >> + import os.path > > >> > > >> # General pattern: start of line, optional whitespace, tag with > optional > > >> # hyphen or spaces, maybe a colon, some whitespace, then the > value, all case > > >> @@ -198,7 +199,9 @@ def histogram(results): > > >> > > >> > > >> if __name__ == "__main__": > > >> - import argparse, subprocess, os > > >> + import argparse > > >> + import subprocess > > >> + import os > > >> > > >> args = argparse.ArgumentParser(description="Patch Review Tool") > > >> args.add_argument("-b", "--blame", action="store_true", > help="show blame for malformed patches") > > >> @@ -213,7 +216,9 @@ if __name__ == "__main__": > > >> analyse(results, want_blame=args.blame, verbose=args.verbose) > > >> > > >> if args.json: > > >> - import json, os.path, collections > > >> + import json > > >> + import os.path > > >> + import collections > > >> if os.path.isfile(args.json): > > >> data = json.load(open(args.json)) > > >> else: > > >> diff --git a/scripts/lnr b/scripts/lnr > > >> index a2ac4fec0f..e223b1e0e6 100755 > > >> --- a/scripts/lnr > > >> +++ b/scripts/lnr > > >> @@ -6,7 +6,8 @@ > > >> # Create a *relative* symlink, just like ln --relative does but > without needing > > >> # coreutils 8.16. > > >> > > >> -import sys, os > > >> +import sys > > >> +import os > > >> > > >> if len(sys.argv) != 3: > > >> print("$ lnr TARGET LINK_NAME") > > >> diff --git a/scripts/oe-pkgdata-browser b/scripts/oe-pkgdata-browser > > >> index 8d223185a4..5834f59845 100755 > > >> --- a/scripts/oe-pkgdata-browser > > >> +++ b/scripts/oe-pkgdata-browser > > >> @@ -1,6 +1,9 @@ > > >> #! /usr/bin/env python3 > > >> > > >> -import os, sys, enum, ast > > >> +import os > > >> +import sys > > >> +import enum > > >> +import ast > > >> > > >> scripts_path = os.path.dirname(os.path.realpath(__file__)) > > >> lib_path = scripts_path + '/lib' > > >> diff --git > a/scripts/pybootchartgui/pybootchartgui/tests/parser_test.py > b/scripts/pybootchartgui/pybootchartgui/tests/parser_test.py > > >> index 00fb3bf797..c005cf341f 100644 > > >> --- a/scripts/pybootchartgui/pybootchartgui/tests/parser_test.py > > >> +++ b/scripts/pybootchartgui/pybootchartgui/tests/parser_test.py > > >> @@ -1,4 +1,9 @@ > > >> -import sys, os, re, struct, operator, math > > >> +import sys > > >> +import os > > >> +import re > > >> +import struct > > >> +import operator > > >> +import math > > >> from collections import defaultdict > > >> import unittest > > >> > > >> diff --git a/scripts/send-error-report b/scripts/send-error-report > > >> index cfbcaa52cb..ffa0a199b1 100755 > > >> --- a/scripts/send-error-report > > >> +++ b/scripts/send-error-report > > >> @@ -10,7 +10,8 @@ > > >> # SPDX-License-Identifier: GPL-2.0-only > > >> # > > >> > > >> -import urllib.request, urllib.error > > >> +import urllib.request > > >> +import urllib.error > > >> import sys > > >> import json > > >> import os > > >> diff --git a/scripts/verify-bashisms b/scripts/verify-bashisms > > >> index 14d8c298e9..a63f6c8115 100755 > > >> --- a/scripts/verify-bashisms > > >> +++ b/scripts/verify-bashisms > > >> @@ -3,7 +3,11 @@ > > >> # SPDX-License-Identifier: GPL-2.0-only > > >> # > > >> > > >> -import sys, os, subprocess, re, shutil > > >> +import sys > > >> +import os > > >> +import subprocess > > >> +import re > > >> +import shutil > > >> > > >> whitelist = ( > > >> # type is supported by dash > > >> @@ -92,7 +96,8 @@ def get_tinfoil(): > > >> return tinfoil > > >> > > >> if __name__=='__main__': > > >> - import argparse, shutil > > >> + import argparse > > >> + import shutil > > >> > > >> parser = argparse.ArgumentParser(description='Bashim detector > for shell fragments in recipes.') > > >> parser.add_argument("recipes", metavar="RECIPE", nargs="*", > help="recipes to check (if not specified, all will be checked)") > > >> -- > > >> 2.32.0 > > >> > > >> > > >> > > >> > --000000000000071bda05c5d8c3ec Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I just generally disagree with the idea that changing= a =3D b to a=3Db, or import a,b to import a\nimport b helps readability or= reduces confusion.

I'm reading a lot of p= ython code all the time, and never once have been confused by inconsistent = whitespace.

Can the linter fix anything else,= which has actual benefit?

Alex
On Mon, 2= 8 Jun 2021 at 21:41, Khem Raj <raj= .khem@gmail.com> wrote:
On Mon, Jun 28, 2021 at 12:25 PM Persian Prince <persianpros@yahoo.com<= /a>> wrote:
>
> When we can follow PEP8 we should as it's how developers could fo= llow a common coding style and avoid creating different files.
>
> In "Safe PEP8" PRs some PEP8 codes carefully added so it wo= n't change tabs to spaces but makes the code cleaner in a safe way. PEP= 8 also fixes some small problems (won't do huge changes like futurize) = which is good and sometime we miss them by mistake.
>
> We at
https://github.com/OpenVisionE2 , https://github= .com/oe-alliance and https://github.com/OpenPLi applied safe PEP8 = changes to so many repositories and we're using it via PEP8.sh on GitHu= b Actions as an online cleaner tool. (PEP8.sh: https://github.com/OpenVisionE2/enigma2-openvision/blo= b/develop/CI/PEP8.sh)
>
> Also applied before on https://github.com/ope= nembedded/meta-openembedded which is why that repo is clean and won'= ;t need a PR (for now), keep in mind that these are common standards so eve= n if we don't like them that much still they help for having a good com= mon style and less mistakes.
>
> If you needed more assistance from me please don't hesitate to as= k, I'm all in.


can you improve the commit msgs in pull request as asked.

>
> Regards,
> Persian Prince
>
> On Monday, June 28, 2021, 10:56:40 AM GMT+4:30, Alexander Kanavin <= ;alex.kanavin@g= mail.com> wrote:
>
>
> Right, but can you please write something more descriptive than "= ;PEP8 double aggressive W291 ~ W293 and W391" ?
>
> Also I'm not sure fiddling about with whitespace or whether impor= ts all need their own line really helps.
>
> Alex
>
> On Mon, 28 Jun 2021 at 08:16, Khem Raj <raj.khem@gmail.com> wrote:
>
> On Sun, Jun 27, 2021 at 11:13 PM Alexander Kanavin
> <alex.= kanavin@gmail.com> wrote:
> >
> > Wait, what is this patchset all about?
> >
>
> its fixes for python linter (pylint) found issues.
>
> > Alex
> >
> > On Mon, 28 Jun 2021 at 07:59, Khem Raj <raj.khem@gmail.com> wrote:
> >>
> >> From: persianpros <persianpros@yahoo.com>
> >>
> >> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> >> ---
> >>=C2=A0 meta/lib/oe/package.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = = =C2=A0 |=C2=A0 9 +++++++--
> >>=C2=A0 meta/lib/oe/qa.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 4 +++-
> >>=C2=A0 meta/lib/oe/utils.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 |=C2=A0 6 ++++--
> >>=C2=A0 meta/lib/oeqa/oetest.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= = =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = = =C2=A0|=C2=A0 4 +++-
> >>=C2=A0 meta/lib/oeqa/sdk/case.py=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 3 ++-
> >>=C2=A0 meta/lib/oeqa/sdk/cases/buildlzip.py=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 5 ++++-
> >>=C2=A0 meta/lib/oeqa/sdk/cases/python.py=C2=A0 =C2=A0 =C2=A0 = = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 3 ++-
> >>=C2=A0 meta/lib/oeqa/sdk/testsdk.py=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0= 3 ++-
> >>=C2=A0 meta/lib/oeqa/selftest/cases/oelib/path.py=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 3 ++-
> >>=C2=A0 meta/lib/oeqa/selftest/cases/package.py=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 7 +++++--
> >>=C2=A0 meta/lib/oeqa/selftest/cases/runtime_test.py=C2=A0 =C2= = =A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 3 ++-
> >>=C2=A0 meta/lib/oeqa/utils/testexport.py=C2=A0 =C2=A0 =C2=A0 = = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 6 +++++- > >>=C2=A0 .../texinfo-dummy-native/texinfo-dummy/template.py=C2= =A0 =C2=A0 |=C2=A0 4 +++-
> >>=C2=A0 scripts/combo-layer=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0|=C2=A0 3 ++-
> >>=C2=A0 scripts/contrib/patchreview.py=C2=A0 =C2=A0 =C2=A0 =C2= = =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 11 ++++++++-= --
> >>=C2=A0 scripts/lnr=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 3 ++-
> >>=C2=A0 scripts/oe-pkgdata-browser=C2=A0 =C2=A0 =C2=A0 =C2=A0 = = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2= = =A0 5 ++++-
> >>=C2=A0 .../pybootchartgui/tests/parser_test.py=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 7 ++++++-
> >>=C2=A0 scripts/send-error-report=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0|=C2=A0 3 ++-
> >>=C2=A0 scripts/verify-bashisms=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= = =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = = =C2=A0|=C2=A0 9 +++++++--
> >>=C2=A0 20 files changed, 75 insertions(+), 26 deletions(-) > >>
> >> diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py=
> >> index dd700cbb0c..fc5408d5f8 100644
> >> --- a/meta/lib/oe/package.py
> >> +++ b/meta/lib/oe/package.py
> >> @@ -107,7 +107,10 @@ def strip_execs(pn, dstdir, strip_cmd, = libdir, base_libdir, d, qa_already_stripp
> >>=C2=A0 =C2=A0 =C2=A0 :param qa_already_stripped: Set to True = if already-stripped' in ${INSANE_SKIP}
> >>=C2=A0 =C2=A0 =C2=A0 This is for proper logging and messages = only.
> >>=C2=A0 =C2=A0 =C2=A0 """
> >> -=C2=A0 =C2=A0 import stat, errno, oe.path, oe.utils
> >> +=C2=A0 =C2=A0 import stat
> >> +=C2=A0 =C2=A0 import errno
> >> +=C2=A0 =C2=A0 import oe.path
> >> +=C2=A0 =C2=A0 import oe.utils
> >>
> >>=C2=A0 =C2=A0 =C2=A0 elffiles =3D {}
> >>=C2=A0 =C2=A0 =C2=A0 inodes =3D {}
> >> @@ -187,7 +190,9 @@ def file_translate(file):
> >>=C2=A0 =C2=A0 =C2=A0 return ft
> >>
> >>=C2=A0 def filedeprunner(arg):
> >> -=C2=A0 =C2=A0 import re, subprocess, shlex
> >> +=C2=A0 =C2=A0 import re
> >> +=C2=A0 =C2=A0 import subprocess
> >> +=C2=A0 =C2=A0 import shlex
> >>
> >>=C2=A0 =C2=A0 =C2=A0 (pkg, pkgfiles, rpmdeps, pkgdest) =3D ar= g
> >>=C2=A0 =C2=A0 =C2=A0 provides =3D {}
> >> diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py
> >> index e8a854a302..38c2e0cc1c 100644
> >> --- a/meta/lib/oe/qa.py
> >> +++ b/meta/lib/oe/qa.py
> >> @@ -2,7 +2,9 @@
> >>=C2=A0 # SPDX-License-Identifier: GPL-2.0-only
> >>=C2=A0 #
> >>
> >> -import os, struct, mmap
> >> +import os
> >> +import struct
> >> +import mmap
> >>
> >>=C2=A0 class NotELFFileError(Exception):
> >>=C2=A0 =C2=A0 =C2=A0 pass
> >> diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
> >> index a84039f585..789bad33f6 100644
> >> --- a/meta/lib/oe/utils.py
> >> +++ b/meta/lib/oe/utils.py
> >> @@ -376,7 +376,8 @@ def format_pkg_list(pkg_dict, ret_format= = =3DNone):
> >>=C2=A0 # Helper function to get the host compiler version
> >>=C2=A0 # Do not assume the compiler is gcc
> >>=C2=A0 def get_host_compiler_version(d, taskcontextonly=3DFal= se):
> >> -=C2=A0 =C2=A0 import re, subprocess
> >> +=C2=A0 =C2=A0 import re
> >> +=C2=A0 =C2=A0 import subprocess
> >>
> >>=C2=A0 =C2=A0 =C2=A0 if taskcontextonly and d.getVar('BB_= WORKERCONTEXT') !=3D '1':
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return
> >> @@ -404,7 +405,8 @@ def get_host_compiler_version(d, taskcon= textonly=3DFalse):
> >>
> >>
> >>=C2=A0 def host_gcc_version(d, taskcontextonly=3DFalse):
> >> -=C2=A0 =C2=A0 import re, subprocess
> >> +=C2=A0 =C2=A0 import re
> >> +=C2=A0 =C2=A0 import subprocess
> >>
> >>=C2=A0 =C2=A0 =C2=A0 if taskcontextonly and d.getVar('BB_= WORKERCONTEXT') !=3D '1':
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return
> >> diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.= py
> >> index 9c84466dd0..3136ac2ce5 100644
> >> --- a/meta/lib/oeqa/oetest.py
> >> +++ b/meta/lib/oeqa/oetest.py
> >> @@ -9,7 +9,9 @@
> >>
> >>=C2=A0 # It also has some helper functions and it's respo= nsible for actually starting the tests
> >>
> >> -import os, re, sys
> >> +import os
> >> +import re
> >> +import sys
> >>=C2=A0 import unittest
> >>=C2=A0 import inspect
> >>=C2=A0 import subprocess
> >> diff --git a/meta/lib/oeqa/sdk/case.py b/meta/lib/oeqa/sdk/c= ase.py
> >> index c45882689c..86ac199197 100644
> >> --- a/meta/lib/oeqa/sdk/case.py
> >> +++ b/meta/lib/oeqa/sdk/case.py
> >> @@ -35,7 +35,8 @@ class OESDKTestCase(OETestCase):
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 OS/architecture, or if not= specified the currently configured MACHINE's
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 OS/architecture.
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 """
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 import oe.qa, oe.elf
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import oe.qa
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import oe.elf
> >>
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if not target_os or not ta= rget_arch:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 output =3D s= elf._run("echo $OECORE_TARGET_OS:$OECORE_TARGET_ARCH")
> >> diff --git a/meta/lib/oeqa/sdk/cases/buildlzip.py b/meta/lib= /oeqa/sdk/cases/buildlzip.py
> >> index 49ae756bf3..04c4a0ec16 100644
> >> --- a/meta/lib/oeqa/sdk/cases/buildlzip.py
> >> +++ b/meta/lib/oeqa/sdk/cases/buildlzip.py
> >> @@ -2,7 +2,10 @@
> >>=C2=A0 # SPDX-License-Identifier: MIT
> >>=C2=A0 #
> >>
> >> -import os, tempfile, subprocess, unittest
> >> +import os
> >> +import tempfile
> >> +import subprocess
> >> +import unittest
> >>=C2=A0 from oeqa.sdk.case import OESDKTestCase
> >>=C2=A0 from oeqa.utils.subprocesstweak import errors_have_out= put
> >>=C2=A0 errors_have_output()
> >> diff --git a/meta/lib/oeqa/sdk/cases/python.py b/meta/lib/oe= qa/sdk/cases/python.py
> >> index a334abce5f..2848481f33 100644
> >> --- a/meta/lib/oeqa/sdk/cases/python.py
> >> +++ b/meta/lib/oeqa/sdk/cases/python.py
> >> @@ -2,7 +2,8 @@
> >>=C2=A0 # SPDX-License-Identifier: MIT
> >>=C2=A0 #
> >>
> >> -import subprocess, unittest
> >> +import subprocess
> >> +import unittest
> >>=C2=A0 from oeqa.sdk.case import OESDKTestCase
> >>
> >>=C2=A0 from oeqa.utils.subprocesstweak import errors_have_out= put
> >> diff --git a/meta/lib/oeqa/sdk/testsdk.py b/meta/lib/oeqa/sd= k/testsdk.py
> >> index 35e40187bc..18e03cb8ef 100644
> >> --- a/meta/lib/oeqa/sdk/testsdk.py
> >> +++ b/meta/lib/oeqa/sdk/testsdk.py
> >> @@ -95,7 +95,8 @@ class TestSDK(TestSDKBase):
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 processes =3D d.getVar(&qu= ot;TESTIMAGE_NUMBER_THREADS") or d.getVar("BB_NUMBER_THREADS"= ;)
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if processes:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 try:
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 imp= ort testtools, subunit
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 imp= ort testtools
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 imp= ort subunit
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 except Impor= tError:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 bb.warn("Failed to import testtools or subunit, the testcases wil= l run serially")
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 processes =3D None
> >> diff --git a/meta/lib/oeqa/selftest/cases/oelib/path.py b/me= ta/lib/oeqa/selftest/cases/oelib/path.py
> >> index a1cfa08c09..098734fa5d 100644
> >> --- a/meta/lib/oeqa/selftest/cases/oelib/path.py
> >> +++ b/meta/lib/oeqa/selftest/cases/oelib/path.py
> >> @@ -3,7 +3,8 @@
> >>=C2=A0 #
> >>
> >>=C2=A0 from unittest.case import TestCase
> >> -import oe, oe.path
> >> +import oe
> >> +import oe.path
> >>=C2=A0 import tempfile
> >>=C2=A0 import os
> >>=C2=A0 import errno
> >> diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/= lib/oeqa/selftest/cases/package.py
> >> index 7166c3991f..82aa1bde1c 100644
> >> --- a/meta/lib/oeqa/selftest/cases/package.py
> >> +++ b/meta/lib/oeqa/selftest/cases/package.py
> >> @@ -5,7 +5,8 @@
> >>=C2=A0 from oeqa.selftest.case import OESelftestTestCase
> >>=C2=A0 from oeqa.utils.commands import bitbake, get_bb_vars, = get_bb_var, runqemu
> >>=C2=A0 import stat
> >> -import subprocess, os
> >> +import subprocess
> >> +import os
> >>=C2=A0 import oe.path
> >>=C2=A0 import re
> >>
> >> @@ -150,7 +151,9 @@ class PackageTests(OESelftestTestCase):<= br> > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 self.fail('GDB %s failed' % binary)
> >>
> >>=C2=A0 =C2=A0 =C2=A0 def test_preserve_ownership(self):
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 import os, stat, oe.cachedpath<= br> > >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import os
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import stat
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import oe.cachedpath
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 features =3D 'IMAGE_IN= STALL_append =3D " selftest-chown"\n'
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 self.write_config(features= )
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bitbake("core-image-m= inimal")
> >> diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/= meta/lib/oeqa/selftest/cases/runtime_test.py
> >> index d0c2440722..54a80dfdc0 100644
> >> --- a/meta/lib/oeqa/selftest/cases/runtime_test.py
> >> +++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
> >> @@ -211,7 +211,8 @@ class TestImage(OESelftestTestCase):
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Product: oe-core
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Author: Alexander Kanavin = <alex.kanavi= n@gmail.com>
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 """
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 import subprocess, os
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import subprocess
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import os
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 try:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 content =3D = os.listdir("/dev/dri")
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if len([i fo= r i in content if i.startswith('render')]) =3D=3D 0:
> >> diff --git a/meta/lib/oeqa/utils/testexport.py b/meta/lib/oe= qa/utils/testexport.py
> >> index e89d130a9c..383e57a6b2 100644
> >> --- a/meta/lib/oeqa/utils/testexport.py
> >> +++ b/meta/lib/oeqa/utils/testexport.py
> >> @@ -6,7 +6,11 @@
> >>
> >>=C2=A0 # Provides functions to help with exporting binaries o= btained from built targets
> >>
> >> -import os, re, glob as g, shutil as sh,sys
> >> +import os
> >> +import re
> >> +import glob as g
> >> +import shutil as sh
> >> +import sys
> >>=C2=A0 from time import sleep
> >>=C2=A0 from .commands import runCmd
> >>=C2=A0 from difflib import SequenceMatcher as SM
> >> diff --git a/meta/recipes-extended/texinfo-dummy-native/texi= nfo-dummy/template.py b/meta/recipes-extended/texinfo-dummy-native/texinfo-= dummy/template.py
> >> index 86c7c1811a..75c01b83bf 100644
> >> --- a/meta/recipes-extended/texinfo-dummy-native/texinfo-dum= my/template.py
> >> +++ b/meta/recipes-extended/texinfo-dummy-native/texinfo-dum= my/template.py
> >> @@ -28,7 +28,9 @@
> >>=C2=A0 # of the executable from argv[0] and emulate the corre= sponding program, so
> >>=C2=A0 # multiple copies of this script will exist under diff= erent names.
> >>
> >> -import sys, os, argparse
> >> +import sys
> >> +import os
> >> +import argparse
> >>
> >>
> >>=C2=A0 this_binary =3D sys.argv[0].split("/")[-1] > >> diff --git a/scripts/combo-layer b/scripts/combo-layer
> >> index 045de65642..835a6bcd09 100755
> >> --- a/scripts/combo-layer
> >> +++ b/scripts/combo-layer
> >> @@ -11,7 +11,8 @@
> >>=C2=A0 #
> >>
> >>=C2=A0 import fnmatch
> >> -import os, sys
> >> +import os
> >> +import sys
> >>=C2=A0 import optparse
> >>=C2=A0 import logging
> >>=C2=A0 import subprocess
> >> diff --git a/scripts/contrib/patchreview.py b/scripts/contri= b/patchreview.py
> >> index 62c509f51c..744dcfb49e 100755
> >> --- a/scripts/contrib/patchreview.py
> >> +++ b/scripts/contrib/patchreview.py
> >> @@ -40,7 +40,8 @@ def blame_patch(patch):
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = "--", patch)).decode("utf-8").splitlines()
> >>
> >>=C2=A0 def patchreview(path, patches):
> >> -=C2=A0 =C2=A0 import re, os.path
> >> +=C2=A0 =C2=A0 import re
> >> +=C2=A0 =C2=A0 import os.path
> >>
> >>=C2=A0 =C2=A0 =C2=A0 # General pattern: start of line, option= al whitespace, tag with optional
> >>=C2=A0 =C2=A0 =C2=A0 # hyphen or spaces, maybe a colon, some = whitespace, then the value, all case
> >> @@ -198,7 +199,9 @@ def histogram(results):
> >>
> >>
> >>=C2=A0 if __name__ =3D=3D "__main__":
> >> -=C2=A0 =C2=A0 import argparse, subprocess, os
> >> +=C2=A0 =C2=A0 import argparse
> >> +=C2=A0 =C2=A0 import subprocess
> >> +=C2=A0 =C2=A0 import os
> >>
> >>=C2=A0 =C2=A0 =C2=A0 args =3D argparse.ArgumentParser(descrip= tion=3D"Patch Review Tool")
> >>=C2=A0 =C2=A0 =C2=A0 args.add_argument("-b", "= --blame", action=3D"store_true", help=3D"show blame for= malformed patches")
> >> @@ -213,7 +216,9 @@ if __name__ =3D=3D "__main__":=
> >>=C2=A0 =C2=A0 =C2=A0 analyse(results, want_blame=3Dargs.blame= , verbose=3Dargs.verbose)
> >>
> >>=C2=A0 =C2=A0 =C2=A0 if args.json:
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 import json, os.path, collectio= ns
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import json
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import os.path
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 import collections
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if os.path.isfile(args.jso= n):
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 data =3D jso= n.load(open(args.json))
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 else:
> >> diff --git a/scripts/lnr b/scripts/lnr
> >> index a2ac4fec0f..e223b1e0e6 100755
> >> --- a/scripts/lnr
> >> +++ b/scripts/lnr
> >> @@ -6,7 +6,8 @@
> >>=C2=A0 # Create a *relative* symlink, just like ln --relative= does but without needing
> >>=C2=A0 # coreutils 8.16.
> >>
> >> -import sys, os
> >> +import sys
> >> +import os
> >>
> >>=C2=A0 if len(sys.argv) !=3D 3:
> >>=C2=A0 =C2=A0 =C2=A0print("$ lnr TARGET LINK_NAME")=
> >> diff --git a/scripts/oe-pkgdata-browser b/scripts/oe-pkgdata= -browser
> >> index 8d223185a4..5834f59845 100755
> >> --- a/scripts/oe-pkgdata-browser
> >> +++ b/scripts/oe-pkgdata-browser
> >> @@ -1,6 +1,9 @@
> >>=C2=A0 #! /usr/bin/env python3
> >>
> >> -import os, sys, enum, ast
> >> +import os
> >> +import sys
> >> +import enum
> >> +import ast
> >>
> >>=C2=A0 scripts_path =3D os.path.dirname(os.path.realpath(__fi= le__))
> >>=C2=A0 lib_path =3D scripts_path + '/lib'
> >> diff --git a/scripts/pybootchartgui/pybootchartgui/tests/par= ser_test.py b/scripts/pybootchartgui/pybootchartgui/tests/parser_test.py > >> index 00fb3bf797..c005cf341f 100644
> >> --- a/scripts/pybootchartgui/pybootchartgui/tests/parser_tes= t.py
> >> +++ b/scripts/pybootchartgui/pybootchartgui/tests/parser_tes= t.py
> >> @@ -1,4 +1,9 @@
> >> -import sys, os, re, struct, operator, math
> >> +import sys
> >> +import os
> >> +import re
> >> +import struct
> >> +import operator
> >> +import math
> >>=C2=A0 from collections import defaultdict
> >>=C2=A0 import unittest
> >>
> >> diff --git a/scripts/send-error-report b/scripts/send-error-= report
> >> index cfbcaa52cb..ffa0a199b1 100755
> >> --- a/scripts/send-error-report
> >> +++ b/scripts/send-error-report
> >> @@ -10,7 +10,8 @@
> >>=C2=A0 # SPDX-License-Identifier: GPL-2.0-only
> >>=C2=A0 #
> >>
> >> -import urllib.request, urllib.error
> >> +import urllib.request
> >> +import urllib.error
> >>=C2=A0 import sys
> >>=C2=A0 import json
> >>=C2=A0 import os
> >> diff --git a/scripts/verify-bashisms b/scripts/verify-bashis= ms
> >> index 14d8c298e9..a63f6c8115 100755
> >> --- a/scripts/verify-bashisms
> >> +++ b/scripts/verify-bashisms
> >> @@ -3,7 +3,11 @@
> >>=C2=A0 # SPDX-License-Identifier: GPL-2.0-only
> >>=C2=A0 #
> >>
> >> -import sys, os, subprocess, re, shutil
> >> +import sys
> >> +import os
> >> +import subprocess
> >> +import re
> >> +import shutil
> >>
> >>=C2=A0 whitelist =3D (
> >>=C2=A0 =C2=A0 =C2=A0 # type is supported by dash
> >> @@ -92,7 +96,8 @@ def get_tinfoil():
> >>=C2=A0 =C2=A0 =C2=A0 return tinfoil
> >>
> >>=C2=A0 if __name__=3D=3D'__main__':
> >> -=C2=A0 =C2=A0 import argparse, shutil
> >> +=C2=A0 =C2=A0 import argparse
> >> +=C2=A0 =C2=A0 import shutil
> >>
> >>=C2=A0 =C2=A0 =C2=A0 parser =3D argparse.ArgumentParser(descr= iption=3D'Bashim detector for shell fragments in recipes.')
> >>=C2=A0 =C2=A0 =C2=A0 parser.add_argument("recipes",= metavar=3D"RECIPE", nargs=3D"*", help=3D"recipes = to check (if not specified, all will be checked)")
> >> --
> >> 2.32.0
> >>
> >>
> >>
> >>
--000000000000071bda05c5d8c3ec--