tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit a79e2c2975f478045c1a3a6fdd34d22d355cce8b
parent 3f303c102a3adea24d8a3f513c8528eb417d5283
Author: Nick Mathewson <nickm@torproject.org>
Date:   Tue, 30 Jul 2019 11:54:05 -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.

Diffstat:
Mscripts/maint/practracker/practracker.py | 9+++++----
Mscripts/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 @@ -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 @@ -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