From patchwork Sat Aug 31 17:35:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D6780: statprof: use context manager for file when writing flame graph From: phabricator X-Patchwork-Id: 41448 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Sat, 31 Aug 2019 17:35:18 +0000 martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6780 AFFECTED FILES mercurial/statprof.py CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-devel diff --git a/mercurial/statprof.py b/mercurial/statprof.py --- a/mercurial/statprof.py +++ b/mercurial/statprof.py @@ -729,10 +729,6 @@ fp.write(b'get it here: https://github.com/brendangregg/FlameGraph\n') return - fd, path = pycompat.mkstemp() - - file = open(path, "w+") - lines = {} for sample in data.samples: sites = [s.function for s in sample.stack] @@ -743,10 +739,11 @@ else: lines[line] = 1 - for line, count in lines.iteritems(): - file.write("%s %d\n" % (line, count)) + fd, path = pycompat.mkstemp() - file.close() + with open(path, "w+") as file: + for line, count in lines.iteritems(): + file.write("%s %d\n" % (line, count)) if outputfile is None: outputfile = '~/flamegraph.svg'