emergelog: use string format op for time.time()
authorZac Medico <zmedico@gentoo.org>
Tue, 12 Jul 2011 22:04:16 +0000 (15:04 -0700)
committerZac Medico <zmedico@gentoo.org>
Tue, 12 Jul 2011 22:04:16 +0000 (15:04 -0700)
pym/_emerge/emergelog.py

index bc4d9d34c5f9d3740e196c8243056b06620cdb70..d6ef1b4dfe3011ae9780763d4eef7fa7d9cf72f6 100644 (file)
@@ -20,15 +20,19 @@ from portage.output import xtermTitle
 _disable = True
 _emerge_log_dir = '/var/log'
 
+# Coerce to unicode, in order to prevent TypeError when writing
+# raw bytes to TextIOWrapper with python2.
+_log_fmt = _unicode_decode("%.0f: %s\n")
+
 def emergelog(xterm_titles, mystr, short_msg=None):
 
        if _disable:
                return
 
-       mystr = portage._unicode_decode(mystr)
+       mystr = _unicode_decode(mystr)
 
        if short_msg is not None:
-               short_msg = portage._unicode_decode(short_msg)
+               short_msg = _unicode_decode(short_msg)
 
        if xterm_titles and short_msg:
                if "HOSTNAME" in os.environ:
@@ -48,8 +52,7 @@ def emergelog(xterm_titles, mystr, short_msg=None):
                mylock = None
                try:
                        mylock = portage.locks.lockfile(mylogfile)
-                       mylogfile.write(_unicode_decode(
-                               str(time.time())[:10]+": "+mystr+"\n"))
+                       mylogfile.write(_log_fmt % (time.time(), mystr))
                        mylogfile.flush()
                finally:
                        if mylock: