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
commitf3c5a81b391030a5bca0e5de3cea6efd36cc35cf (patch)
tree5fb1463a52088f95de79fc2a5112fc75a6b970d5 /coverage/misc.py
parent2cd23e5f721fa693c4f5643062b074681cc4df9a (diff)
downloadpython-coveragepy-f3c5a81b391030a5bca0e5de3cea6efd36cc35cf.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 36e4fe9..db6298b 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):