[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