[PATCH v3 1/5] patman: Drop unnecessary import in gitutil

The checkpatch module is not used, so drop it.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Stefan Bosch stefan_b@posteo.net ---
Changes in v3: - Split out the gitutil change into a separate patch
Changes in v2: None
tools/patman/gitutil.py | 1 - 1 file changed, 1 deletion(-)
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py index 770a0510142..844f8759dec 100644 --- a/tools/patman/gitutil.py +++ b/tools/patman/gitutil.py @@ -7,7 +7,6 @@ import os import subprocess import sys
-from patman import checkpatch from patman import command from patman import series from patman import settings

This seems to cause problems in some cases. Split the dependency by copying the code to command.
Reported-by: Stefan Bosch stefan_b@posteo.net Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v3: None Changes in v2: None
tools/patman/command.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/patman/command.py b/tools/patman/command.py index e67ac159e5a..bf8ea6c8c3c 100644 --- a/tools/patman/command.py +++ b/tools/patman/command.py @@ -5,7 +5,6 @@ import os
from patman import cros_subprocess -from patman import tools
"""Shell command ease-ups for Python."""
@@ -35,9 +34,9 @@ class CommandResult:
def ToOutput(self, binary): if not binary: - self.stdout = tools.ToString(self.stdout) - self.stderr = tools.ToString(self.stderr) - self.combined = tools.ToString(self.combined) + self.stdout = self.stdout.decode('utf-8') + self.stderr = self.stderr.decode('utf-8') + self.combined = self.combined.decode('utf-8') return self

Only a few members of this class are used and only in a test. To avoid importing the module, convert the test to use a dict.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Stefan Bosch stefan_b@posteo.net ---
Changes in v3: None Changes in v2: None
tools/patman/gitutil.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py index 844f8759dec..0bac9824811 100644 --- a/tools/patman/gitutil.py +++ b/tools/patman/gitutil.py @@ -8,7 +8,6 @@ import subprocess import sys
from patman import command -from patman import series from patman import settings from patman import terminal from patman import tools @@ -366,9 +365,9 @@ def EmailPatches(series, cover_fname, args, dry_run, raise_on_error, cc_fname, >>> alias['boys'] = ['fred', ' john'] >>> alias['all'] = ['fred ', 'john', ' mary '] >>> alias[os.getenv('USER')] = ['this-is-me@me.com'] - >>> series = series.Series() - >>> series.to = ['fred'] - >>> series.cc = ['mary'] + >>> series = {} + >>> series['to'] = ['fred'] + >>> series['cc'] = ['mary'] >>> EmailPatches(series, 'cover', ['p1', 'p2'], True, True, 'cc-fname', \ False, alias) 'git send-email --annotate --to "f.bloggs@napier.co.nz" --cc \ @@ -377,7 +376,7 @@ def EmailPatches(series, cover_fname, args, dry_run, raise_on_error, cc_fname, alias) 'git send-email --annotate --to "f.bloggs@napier.co.nz" --cc \ "m.poppins@cloud.net" --cc-cmd "./patman --cc-cmd cc-fname" p1' - >>> series.cc = ['all'] + >>> series['cc'] = ['all'] >>> EmailPatches(series, 'cover', ['p1', 'p2'], True, True, 'cc-fname', \ True, alias) 'git send-email --annotate --to "this-is-me@me.com" --cc-cmd "./patman \

Adjust the get_maintainer module to accept a list of directories to search for the script. This avoids needing to import gitutil.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Stefan Bosch stefan_b@posteo.net ---
Changes in v3: None Changes in v2: None
tools/patman/get_maintainer.py | 14 +++++++------- tools/patman/series.py | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py index 473f0feebf4..af4ba15bcdd 100644 --- a/tools/patman/get_maintainer.py +++ b/tools/patman/get_maintainer.py @@ -5,17 +5,16 @@ import os
from patman import command -from patman import gitutil
-def FindGetMaintainer(): +def FindGetMaintainer(try_list): """Look for the get_maintainer.pl script.
+ Args: + try_list: List of directories to try for the get_maintainer.pl script + Returns: If the script is found we'll return a path to it; else None. """ - try_list = [ - os.path.join(gitutil.GetTopLevel(), 'scripts'), - ] # Look in the list for path in try_list: fname = os.path.join(path, 'get_maintainer.pl') @@ -24,7 +23,7 @@ def FindGetMaintainer():
return None
-def GetMaintainer(fname, verbose=False): +def GetMaintainer(dir_list, fname, verbose=False): """Run get_maintainer.pl on a file if we find it.
We look for get_maintainer.pl in the 'scripts' directory at the top of @@ -32,12 +31,13 @@ def GetMaintainer(fname, verbose=False): then we fail silently.
Args: + dir_list: List of directories to try for the get_maintainer.pl script fname: Path to the patch file to run get_maintainer.pl on.
Returns: A list of email addresses to CC to. """ - get_maintainer = FindGetMaintainer() + get_maintainer = FindGetMaintainer(dir_list) if not get_maintainer: if verbose: print("WARNING: Couldn't find get_maintainer.pl") diff --git a/tools/patman/series.py b/tools/patman/series.py index e5e28cebdf5..e6c72a9317b 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -233,7 +233,8 @@ class Series(dict): if type(add_maintainers) == type(cc): cc += add_maintainers elif add_maintainers: - cc += get_maintainer.GetMaintainer(commit.patch) + dir_list = [os.path.join(gitutil.GetTopLevel(), 'scripts')] + cc += get_maintainer.GetMaintainer(dir_list, commit.patch) for x in set(cc) & set(settings.bounces): print(col.Color(col.YELLOW, 'Skipping "%s"' % x)) cc = set(cc) - set(settings.bounces)

Pass this module in so that settings does not need to import it.
Signed-off-by: Simon Glass sjg@chromium.org Reported-by: Stefan Bosch stefan_b@posteo.net ---
Changes in v3: - Add more patches based on testing on a dusty Ubuntu 14.04
Changes in v2: - Update gitutil as well
tools/patman/main.py | 2 +- tools/patman/settings.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/tools/patman/main.py b/tools/patman/main.py index f3d9c0c4348..c5f247ed514 100755 --- a/tools/patman/main.py +++ b/tools/patman/main.py @@ -77,7 +77,7 @@ specified by tags you place in the commits. Use -n to do a dry run first.""" # Parse options twice: first to get the project and second to handle # defaults properly (which depends on project). (options, args) = parser.parse_args() -settings.Setup(parser, options.project, '') +settings.Setup(gitutil, parser, options.project, '') (options, args) = parser.parse_args()
if __name__ != "__main__": diff --git a/tools/patman/settings.py b/tools/patman/settings.py index ca74fc611ff..635561ac056 100644 --- a/tools/patman/settings.py +++ b/tools/patman/settings.py @@ -11,7 +11,6 @@ import os import re
from patman import command -from patman import gitutil from patman import tools
"""Default settings per-project. @@ -185,7 +184,7 @@ def ReadGitAliases(fname):
fd.close()
-def CreatePatmanConfigFile(config_fname): +def CreatePatmanConfigFile(gitutil, config_fname): """Creates a config file under $(HOME)/.patman if it can't find one.
Args: @@ -301,7 +300,7 @@ def GetItems(config, section): except: raise
-def Setup(parser, project_name, config_fname=''): +def Setup(gitutil, parser, project_name, config_fname=''): """Set up the settings module by reading config files.
Args: @@ -318,7 +317,7 @@ def Setup(parser, project_name, config_fname=''):
if not os.path.exists(config_fname): print("No config file found ~/.patman\nCreating one...\n") - CreatePatmanConfigFile(config_fname) + CreatePatmanConfigFile(gitutil, config_fname)
config.read(config_fname)
participants (1)
-
Simon Glass