summaryrefslogtreecommitdiff
path: root/coverage/misc.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-10-31 12:02:49 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-10-31 12:02:49 -0400
commit4c19e2aee48069568020d4e923ba85a4ea599d15 (patch)
tree57a8d3e73ef0174524bbf8fde4fbc86ed6667faa /coverage/misc.py
parente6f0a4e607e1f70315957034db4ac672421ae263 (diff)
downloadpython-coveragepy-git-4c19e2aee48069568020d4e923ba85a4ea599d15.tar.gz
Try a different strategy for setting and testing output encodings
Diffstat (limited to 'coverage/misc.py')
-rw-r--r--coverage/misc.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/coverage/misc.py b/coverage/misc.py
index 36e4fe9c..db6298b6 100644
--- a/coverage/misc.py
+++ b/coverage/misc.py
@@ -6,7 +6,9 @@
import errno
import hashlib
import inspect
+import locale
import os
+import sys
import types
from coverage import env
@@ -149,6 +151,18 @@ def file_be_gone(path):
raise
+def output_encoding(outfile=None):
+ """Determine the encoding to use for output written to `outfile` or stdout."""
+ if outfile is None:
+ outfile = sys.stdout
+ encoding = (
+ getattr(outfile, "encoding", None) or
+ getattr(sys.__stdout__, "encoding", None) or
+ locale.getpreferredencoding()
+ )
+ return encoding
+
+
class Hasher(object):
"""Hashes Python data into md5."""
def __init__(self):