Skip to content

Commit e2fb491

Browse files
committed
More fixes for Python 3 compatibility.
1 parent 9014c1b commit e2fb491

File tree

5 files changed

+24
-16
lines changed

5 files changed

+24
-16
lines changed

rdflib/graph.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,12 @@
145145
from md5 import md5
146146

147147
try:
148-
from cStringIO import StringIO
148+
from io import BytesIO
149149
except ImportError:
150-
from StringIO import StringIO
150+
try:
151+
from cStringIO import StringIO as BytesIO
152+
except ImportError:
153+
from StringIO import StringIO as BytesIO
151154

152155
# # Can't use this approach any longer, this function will raise an ImportError
153156
# # because the sparql module has been moved to the RDFExtras package.
@@ -742,7 +745,7 @@ def serialize(
742745
"""
743746
serializer = plugin.get(format, Serializer)(self)
744747
if destination is None:
745-
stream = StringIO()
748+
stream = BytesIO()
746749
serializer.serialize(stream, base=base, encoding=encoding, **args)
747750
return stream.getvalue()
748751
if hasattr(destination, "write"):

rdflib/plugins/parsers/notation3.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -902,22 +902,22 @@ def feed(self, octets):
902902
parser, it should be straightforward to recover."""
903903

904904
if not isinstance(octets, unicode):
905-
str = octets.decode('utf-8')
905+
s = octets.decode('utf-8')
906906
# NB already decoded, so \ufeff
907-
if len(str) > 0 and str[0] == codecs.BOM_UTF8.decode('utf-8'):
908-
str = str[1:]
907+
if len(s) > 0 and s[0] == codecs.BOM_UTF8.decode('utf-8'):
908+
s = s[1:]
909909
else:
910-
str=octets
910+
s=octets
911911

912912
i = 0
913913
while i >= 0:
914-
j = self.skipSpace(str, i)
914+
j = self.skipSpace(s, i)
915915
if j<0: return
916916

917-
i = self.directiveOrStatement(str,j)
917+
i = self.directiveOrStatement(s,j)
918918
if i<0:
919-
print "# next char: ", `str[j]`
920-
raise BadSyntax(self._thisDoc, self.lines, str, j,
919+
print "# next char: ", `s[j]`
920+
raise BadSyntax(self._thisDoc, self.lines, s, j,
921921
"expected directive or statement")
922922

923923
def directiveOrStatement(self, str,h):

rdflib/plugins/parsers/rdfxml.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ def convert(self, name, qname, attrs):
249249

250250
def document_element_start(self, name, qname, attrs):
251251
if name[0] and URIRef("".join(name)) == RDF.RDF:
252-
next = self.next
252+
# Cheap hack so 2to3 doesn't turn it into __next__
253+
next = getattr(self, 'next')
253254
next.start = self.node_element_start
254255
next.end = self.node_element_end
255256
else:
@@ -263,7 +264,9 @@ def node_element_start(self, name, qname, attrs):
263264
name, atts = self.convert(name, qname, attrs)
264265
current = self.current
265266
absolutize = self.absolutize
266-
next = self.next
267+
268+
# Cheap hack so 2to3 doesn't turn it into __next__
269+
next = getattr(self, 'next')
267270
next.start = self.property_element_start
268271
next.end = self.property_element_end
269272

@@ -339,7 +342,9 @@ def property_element_start(self, name, qname, attrs):
339342
name, atts = self.convert(name, qname, attrs)
340343
current = self.current
341344
absolutize = self.absolutize
342-
next = self.next
345+
346+
# Cheap hack so 2to3 doesn't turn it into __next__
347+
next = getattr(self, 'next')
343348
object = None
344349
current.data = None
345350
current.list = None

rdflib/plugins/serializers/turtle.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def serialize(self, stream, base=None, encoding=None, spacious=None, **args):
181181
self.write('\n')
182182

183183
self.endDocument()
184-
stream.write("\n")
184+
stream.write(u"\n".encode('ascii'))
185185

186186
def preprocessTriple(self, triple):
187187
super(TurtleSerializer, self).preprocessTriple(triple)

test/test_graph.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ def do_GET(self):
350350

351351
self.send_header("Content-type",rct)
352352
self.end_headers()
353-
self.wfile.write(content)
353+
self.wfile.write(content.encode('utf-8'))
354354

355355
def log_message(self, *args):
356356
pass

0 commit comments

Comments
 (0)