From 3f91c71b99e6bdeecf9dcf171769b8a924065af7 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 24 May 2011 22:42:24 -0700 Subject: writedict: use write_atomic for exceptions Also, fix calling code to handle InvalidLocation exceptions. --- pym/portage/util/__init__.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'pym/portage/util/__init__.py') diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index 0dff25ff8..94e4451ad 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -492,20 +492,14 @@ def grablines(myfilename, recursive=0, remember_source_file=False): def writedict(mydict,myfilename,writekey=True): """Writes out a dict to a file; writekey=0 mode doesn't write out the key and assumes all values are strings, not lists.""" - myfile = None - try: - myfile = atomic_ofstream(myfilename) - if not writekey: - for x in mydict.values(): - myfile.write(x+"\n") - else: - for x in mydict: - myfile.write("%s %s\n" % (x, " ".join(mydict[x]))) - myfile.close() - except IOError: - if myfile is not None: - myfile.abort() - raise + lines = [] + if not writekey: + for v in mydict.values(): + lines.append(v + "\n") + else: + for k, v in mydict.items(): + lines.append("%s %s\n" % (k, " ".join(v))) + write_atomic(myfilename, "".join(lines)) def shlex_split(s): """ -- cgit v1.2.3-1-g7c22