Skip to content

Commit 8d362e5

Browse files
authored
Merge pull request #163 from ghamerly/remove-cgi-escape
remove cgi, which seems to be causing problems
2 parents ff4440a + e94d3a6 commit 8d362e5

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

problemtools/ProblemPlasTeX/ProblemsetMacros.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
import sys
22
import os
33
import os.path
4-
import codecs
5-
import cgi
4+
import io
65
from plasTeX.DOM import Node
76
from plasTeX.Base import Command
87
from plasTeX.Base import DimenCommand
98
from plasTeX.Logging import getLogger
109
import plasTeX.Packages.graphics as graphics
1110

11+
if sys.version_info.major == 2:
12+
import cgi
13+
def plastex_escape(s):
14+
return cgi.escape(s)
15+
else:
16+
def plastex_escape(s):
17+
return s
18+
1219
log = getLogger()
1320
status = getLogger('status')
1421

@@ -46,8 +53,8 @@ class sampletable(Command):
4653
args = 'header1 file1:str header2 file2:str'
4754

4855
def read_sample_file(self, filename):
49-
data = open(filename, 'rb').read().decode('utf8')
50-
data = cgi.escape(data)
56+
data = io.open(filename, 'r', encoding='utf-8').read()
57+
data = plastex_escape(data)
5158
return data
5259

5360
def invoke(self, tex):
@@ -70,7 +77,7 @@ class sampletableinteractive(Command):
7077
args = 'header read write file:str'
7178

7279
def read_sample_interaction(self, filename):
73-
data = open(filename, 'rb').read().decode('utf8')
80+
data = io.open(filename, 'r', encoding='utf-8').read()
7481
messages = []
7582
cur_msg = []
7683
cur_mode = None
@@ -82,12 +89,12 @@ def read_sample_interaction(self, filename):
8289
line = line[1:]
8390
if mode != cur_mode:
8491
if cur_mode: messages.append({'mode': cur_mode,
85-
'data': cgi.escape('\n'.join(cur_msg))})
92+
'data': plastex_escape('\n'.join(cur_msg))})
8693
cur_msg = []
8794
cur_msg.append(line)
8895
cur_mode = mode
8996
if cur_mode: messages.append({'mode': cur_mode,
90-
'data': cgi.escape('\n'.join(cur_msg))})
97+
'data': plastex_escape('\n'.join(cur_msg))})
9198
return messages
9299

93100
def invoke(self, tex):

problemtools/ProblemPlasTeX/listingsutf8.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
from plasTeX.Base import Command
22
from plasTeX.Logging import getLogger
33

4-
import cgi
54
import os
5+
import io
6+
7+
import ProblemsetMacros
68

79
log = getLogger()
810

@@ -13,8 +15,8 @@ class lstinputlisting(Command):
1315
args = '* [ options:dict ] file:str'
1416

1517
def read_file(self, filename):
16-
data = open(filename, 'r').read().decode('utf8')
17-
data = cgi.escape(data)
18+
data = io.open(filename, 'r', encoding='utf-8').read()
19+
data = ProblemsetMacros.plastex_escape(data)
1820
return data
1921

2022
def invoke(self, tex):

problemtools/verifyproblem.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ def __init__(self, problem, datadir, parent=None):
300300
configfile = os.path.join(self._datadir, 'testdata.yaml')
301301
if os.path.isfile(configfile):
302302
try:
303-
self.config = yaml.safe_load(file(configfile))
303+
with open(configfile) as f:
304+
self.config = yaml.safe_load(f)
304305
except Exception as e:
305306
self.error(e)
306307
self.config = {}

0 commit comments

Comments
 (0)