[tor-commits] [tor/master] practracker: better warning/regen handling
dgoulet at torproject.org
dgoulet at torproject.org
Thu Aug 1 14:20:44 UTC 2019
commit a79e2c2975f478045c1a3a6fdd34d22d355cce8b
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue Jul 30 11:54:05 2019 -0400
practracker: better warning/regen handling
Now that there is only one toplevel place where we print problems,
we can redirect just that one print to a file when we are
regenerating the exceptions.txt file. Previously we redirected
sys.stdout, which is naughty, and forced us to send warnings (and
warnings alone) to stderr.
---
scripts/maint/practracker/practracker.py | 9 +++++----
scripts/maint/practracker/problem.py | 4 ----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/scripts/maint/practracker/practracker.py b/scripts/maint/practracker/practracker.py
index fb6649bdc..a60b0a842 100755
--- a/scripts/maint/practracker/practracker.py
+++ b/scripts/maint/practracker/practracker.py
@@ -192,11 +192,11 @@ def main(argv):
if args.regen:
tmpname = exceptions_file + ".tmp"
tmpfile = open(tmpname, "w")
- sys.stdout = tmpfile
- sys.stdout.write(HEADER)
+ problem_file = tmpfile
ProblemVault = problem.ProblemVault()
else:
ProblemVault = problem.ProblemVault(exceptions_file)
+ problem_file = sys.stdout
# 2.1) Adjust the exceptions so that we warn only about small problems,
# and produce errors on big ones.
@@ -208,10 +208,11 @@ def main(argv):
for item in filt.filter(consider_all_metrics(files_list)):
status = ProblemVault.register_problem(item)
if status == problem.STATUS_ERR:
- print(item)
+ print(item, file=problem_file)
found_new_issues += 1
elif status == problem.STATUS_WARN:
- item.warn()
+ # warnings always go to stdout.
+ print("(warning) {}".format(item))
if args.regen:
tmpfile.close()
diff --git a/scripts/maint/practracker/problem.py b/scripts/maint/practracker/problem.py
index d162e19ef..d09e94151 100644
--- a/scripts/maint/practracker/problem.py
+++ b/scripts/maint/practracker/problem.py
@@ -145,10 +145,6 @@ class Item(object):
else:
return STATUS_OK
- def warn(self):
- """Warn about this problem on stderr only."""
- print("(warning) {}".format(self), file=sys.stderr)
-
def key(self):
"""Generate a unique key that describes this problem that can be used as a dictionary key"""
# Item location is a filesystem path, so we need to normalize this
More information about the tor-commits
mailing list