summaryrefslogtreecommitdiffstats
path: root/Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw
diff options
context:
space:
mode:
Diffstat (limited to 'Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw')
-rw-r--r--Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw14
1 files changed, 11 insertions, 3 deletions
diff --git a/Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw b/Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw
index cbc3038..8e9061e 100644
--- a/Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw
+++ b/Other_Tools/DRM_Key_Scripts/Adobe_Digital_Editions/adobekey.pyw
@@ -68,12 +68,20 @@ class SafeUnbuffered:
if self.encoding == None:
self.encoding = "utf-8"
def write(self, data):
- if isinstance(data,unicode):
+ if isinstance(data,str) or isinstance(data,unicode):
+ # str for Python3, unicode for Python2
data = data.encode(self.encoding,"replace")
- self.stream.write(data)
- self.stream.flush()
+ try:
+ buffer = getattr(self.stream, 'buffer', self.stream)
+ # self.stream.buffer for Python3, self.stream for Python2
+ buffer.write(data)
+ buffer.flush()
+ except:
+ # We can do nothing if a write fails
+ raise
def __getattr__(self, attr):
return getattr(self.stream, attr)
+
try:
from calibre.constants import iswindows, isosx