summaryrefslogtreecommitdiff
path: root/lib/spack/llnl/util/tty/log.py
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2017-03-07 14:25:48 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2017-03-31 13:40:41 -0700
commit1d1a14dbe9cfc512cedff7430b694df87b2cd5ee (patch)
tree0736128966d347b5cf84a9f9781562b5ec3a17bf /lib/spack/llnl/util/tty/log.py
parent0331b08c64abbc3d7c185d9650007be1de238cfc (diff)
downloadspack-1d1a14dbe9cfc512cedff7430b694df87b2cd5ee.tar.gz
spack-1d1a14dbe9cfc512cedff7430b694df87b2cd5ee.tar.bz2
spack-1d1a14dbe9cfc512cedff7430b694df87b2cd5ee.tar.xz
spack-1d1a14dbe9cfc512cedff7430b694df87b2cd5ee.zip
Convert Python 2 idioms to Python 2/3-compatible ones.
- convert print, StringIO, except as, octals, izip - convert print statement to print function - convert StringIO to six.StringIO - remove usage of csv reader in Spec, in favor of simple regex - csv reader only does byte strings - convert 0755 octal literals to 0o755 - convert `except Foo, e` to `except Foo as e` - fix a few places `str` is used. - may need to switch everything to str later. - convert iteritems usages to use six.iteritems - fix urllib and HTMLParser - port metaclasses to use six.with_metaclass - More octal literal conversions for Python 2/3 - Fix a new octal literal. - Convert `basestring` to `six.string_types` - Convert xrange -> range - Fix various issues with encoding, iteritems, and Python3 semantics. - Convert contextlib.nested to explicitly nexted context managers. - Convert use of filter() to list comprehensions. - Replace reduce() with list comprehensions. - Clean up composite: replace inspect.ismethod() with callable() - Python 3 doesn't have "method" objects; inspect.ismethod returns False. - Need to use callable in Composite to make it work. - Update colify to use future division. - Fix zip() usages that need to be lists. - Python3: Use line-buffered logging instead of unbuffered. - Python3 raises an error with unbuffered I/O - See https://bugs.python.org/issue17404
Diffstat (limited to 'lib/spack/llnl/util/tty/log.py')
-rw-r--r--lib/spack/llnl/util/tty/log.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/spack/llnl/util/tty/log.py b/lib/spack/llnl/util/tty/log.py
index b1d45214ab..50e07c0b97 100644
--- a/lib/spack/llnl/util/tty/log.py
+++ b/lib/spack/llnl/util/tty/log.py
@@ -165,8 +165,12 @@ class log_output(object):
self.p.join(60.0) # 1 minute to join the child
def _spawn_writing_daemon(self, read, input_stream):
- # Parent: read from child, skip the with block.
- read_file = os.fdopen(read, 'r', 0)
+ # This is the Parent: read from child, skip the with block.
+
+ # Use line buffering (3rd param = 1) since Python 3 has a bug
+ # that prevents unbuffered text I/O.
+ read_file = os.fdopen(read, 'r', 1)
+
with open(self.filename, 'w') as log_file:
with keyboard_input(input_stream):
while True: