Skip to content

Commit 642f3ec

Browse files
committed
Always specify encoding when opening text files
1 parent f984ce6 commit 642f3ec

24 files changed

+47
-46
lines changed

webware/Admin/View.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ def defaultAction(self):
2424
self.writeError('File cannot be viewed!')
2525

2626
def writeError(self, message):
27-
self.writeln(
28-
f'<h3 style="color:red">Error</h3><p>{message}</p>')
27+
self.writeln(f'<h3 style="color:red">Error</h3><p>{message}</p>')
2928

3029
def writeContent(self):
3130
filename = self.request().field('filename', None)
@@ -41,7 +40,7 @@ def writeContent(self):
4140
self._type = 'text/' + (
4241
'html' if splitext(filename)[1] in ('.htm', '.html') else 'plain')
4342
try:
44-
with open(filename) as f:
43+
with open(filename, encoding='utf-8') as f:
4544
self._data = f.read()
4645
except Exception:
4746
self.writeError(f'The requested file {filename!r} cannot be read.')

webware/Application.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ def __init__(self, path=None, settings=None, development=None):
221221
if '/' not in filename:
222222
filename = os.path.join(self._logDir, filename)
223223
# pylint: disable=consider-using-with
224-
sys.stderr = sys.stdout = open(filename, 'a', buffering=1)
224+
sys.stderr = sys.stdout = open(
225+
filename, 'a', encoding='utf-8', buffering=1)
225226

226227
self.initErrorPage()
227228
self.printStartUpMessage()
@@ -267,7 +268,7 @@ def initErrorPage(self):
267268
os.path.dirname(os.path.abspath(__file__))):
268269
error404file = os.path.join(path, 'error404.html')
269270
try:
270-
with open(error404file) as f:
271+
with open(error404file, encoding='utf-8') as f:
271272
self._error404 = f.read()
272273
except Exception:
273274
continue
@@ -611,7 +612,7 @@ def writeActivityLog(self, trans):
611612
filename = os.path.join(self._logDir, filename)
612613
filename = self.serverSidePath(filename)
613614
mode = 'a' if os.path.exists(filename) else 'w'
614-
with open(filename, mode) as f:
615+
with open(filename, mode, encoding='utf-8') as f:
615616
if mode == 'w':
616617
f.write(','.join(self.setting('ActivityLogColumns')) + '\n')
617618
values = []

webware/Examples/Colorize.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def respond(self, transaction):
5454
filename = req.field('filename')
5555
filename = self.request().serverSidePath(os.path.basename(filename))
5656
try:
57-
with open(filename) as f:
57+
with open(filename, encoding='utf-8') as f:
5858
source = f.read()
5959
except IOError:
6060
source = None

webware/Examples/DBUtilsDemo.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ class DBUtilsDemo(ExamplePage):
4444
# Initialize the buttons
4545
_actions = []
4646
_buttons = []
47-
for action in (
48-
'create tables', 'list seminars', 'list attendees',
49-
'add seminar', 'add attendee'):
47+
for action in ('create tables', 'list seminars', 'list attendees',
48+
'add seminar', 'add attendee'):
5049
value = action.capitalize()
5150
action = action.split()
5251
action[1] = action[1].capitalize()

webware/ExceptionHandler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ def saveErrorPage(self, html):
421421
filename = os.path.join(
422422
self._app._errorMessagesDir, self.errorPageFilename())
423423
try:
424-
with open(filename, 'w') as f:
424+
with open(filename, 'w', encoding='utf-8') as f:
425425
f.write(html)
426426
except IOError:
427427
sys.stderr.write(
@@ -473,10 +473,10 @@ def fixElement(element):
473473
filename = self._app.setting('ErrorLogFilename')
474474
try:
475475
if os.path.exists(filename):
476-
with open(filename, 'a') as f:
476+
with open(filename, 'a', encoding='utf-8') as f:
477477
f.write(logLine)
478478
else:
479-
with open(filename, 'w') as f:
479+
with open(filename, 'w', encoding='utf-8') as f:
480480
f.write(
481481
'time,filename,pathname,exception name,'
482482
'exception data,error report filename\n')

webware/HTTPRequest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def __init__(self, requestDict=None):
7171

7272
# Debugging
7373
if debug:
74-
with open('env.text', 'a') as f:
74+
with open('env.text', 'a', encoding='utf-8') as f:
7575
f.write('>> env for request:\n')
7676
for key in sorted(env):
7777
f.write(f'{key}: {env[key]!r}\n')

webware/MiscUtils/DataTable.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,8 +507,8 @@ def strip(x):
507507
def save(self):
508508
self.writeFileNamed(self._filename)
509509

510-
def writeFileNamed(self, filename):
511-
with open(filename, 'w') as f:
510+
def writeFileNamed(self, filename, encoding='utf-8'):
511+
with open(filename, 'w', encoding=encoding) as f:
512512
self.writeFile(f)
513513

514514
def writeFile(self, file):

webware/MiscUtils/PickleCache.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def read(self, filename,
9292
if not os.path.exists(filename):
9393
if v:
9494
print(f'Cannot find {filename!r}.')
95-
open(filename) # to get a properly constructed IOError
95+
open(filename, 'rb') # to get a properly constructed IOError
9696

9797
shouldDeletePickle = False
9898
data = None

webware/MiscUtils/PropertiesObject.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def loadValues(self, *args, **kwargs):
7171

7272
def readFileNamed(self, filename):
7373
results = {}
74-
with open(filename) as f:
74+
with open(filename, encoding='utf-8') as f:
7575
exec(f.read(), results)
7676
self.update(results)
7777
self.cleanPrivateItems()

webware/MiscUtils/Tests/BenchCSVParser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ def _main(self):
4444
print("Benchmark using", name, "...")
4545
self.benchFileNamed(name)
4646

47-
def benchFileNamed(self, name):
48-
with open(name) as f:
47+
def benchFileNamed(self, name, encoding='utf-8'):
48+
with open(name, encoding=encoding) as f:
4949
lines = f.readlines()
5050
for line in lines:
5151
for _iteration in range(self._iterations):

0 commit comments

Comments
 (0)