summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2000-12-12 23:12:23 (GMT)
committerBarry Warsaw <barry@python.org>2000-12-12 23:12:23 (GMT)
commitc7ed0e3c1301fd27122e336eef7fd233526ccfc1 (patch)
tree73f35a28a24fa2d7cd4451796ef3a1d2eeb0fb6f
parent132dce22469f476f399d1bbc6d1cc2f7ba0110cc (diff)
downloadcpython-c7ed0e3c1301fd27122e336eef7fd233526ccfc1.zip
cpython-c7ed0e3c1301fd27122e336eef7fd233526ccfc1.tar.gz
cpython-c7ed0e3c1301fd27122e336eef7fd233526ccfc1.tar.bz2
Accept Finn Bock's patch #102208 to hardcode EINVAL to 22 when errno
can't be imported. This makes StringIO.py work with Jython. Also, get rid of the string module by converting to string methods. Shorten some lines by using augmented assignment where appropriate.
-rw-r--r--Lib/StringIO.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/Lib/StringIO.py b/Lib/StringIO.py
index 6952b1a..4bfd55f 100644
--- a/Lib/StringIO.py
+++ b/Lib/StringIO.py
@@ -29,8 +29,12 @@ Notes:
- There's a simple test set (see end of this file).
"""
-import errno
-import string
+try:
+ from errno import EINVAL
+except ImportError:
+ EINVAL = 22
+
+EMPTYSTRING = ''
class StringIO:
def __init__(self, buf = ''):
@@ -52,12 +56,12 @@ class StringIO:
if self.closed:
raise ValueError, "I/O operation on closed file"
if self.buflist:
- self.buf = self.buf + string.joinfields(self.buflist, '')
+ self.buf += EMPTYSTRING.join(self.buflist)
self.buflist = []
if mode == 1:
- pos = pos + self.pos
+ pos += self.pos
elif mode == 2:
- pos = pos + self.len
+ pos += self.len
self.pos = max(0, pos)
def tell(self):
if self.closed:
@@ -67,7 +71,7 @@ class StringIO:
if self.closed:
raise ValueError, "I/O operation on closed file"
if self.buflist:
- self.buf = self.buf + string.joinfields(self.buflist, '')
+ self.buf += EMPTYSTRING.join(self.buflist)
self.buflist = []
if n < 0:
newpos = self.len
@@ -80,9 +84,9 @@ class StringIO:
if self.closed:
raise ValueError, "I/O operation on closed file"
if self.buflist:
- self.buf = self.buf + string.joinfields(self.buflist, '')
+ self.buf += EMPTYSTRING.join(self.buflist)
self.buflist = []
- i = string.find(self.buf, '\n', self.pos)
+ i = self.buf.find('\n', self.pos)
if i < 0:
newpos = self.len
else:
@@ -110,8 +114,7 @@ class StringIO:
if size is None:
size = self.pos
elif size < 0:
- raise IOError(errno.EINVAL,
- "Negative size not allowed")
+ raise IOError(EINVAL, "Negative size not allowed")
elif size < self.pos:
self.pos = size
self.buf = self.getvalue()[:size]
@@ -125,7 +128,7 @@ class StringIO:
newpos = self.pos + len(s)
if self.pos < self.len:
if self.buflist:
- self.buf = self.buf + string.joinfields(self.buflist, '')
+ self.buf += EMPTYSTRING.join(self.buflist)
self.buflist = []
self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]]
self.buf = ''
@@ -136,13 +139,13 @@ class StringIO:
self.len = newpos
self.pos = newpos
def writelines(self, list):
- self.write(string.joinfields(list, ''))
+ self.write(EMPTYSTRING.join(list))
def flush(self):
if self.closed:
raise ValueError, "I/O operation on closed file"
def getvalue(self):
if self.buflist:
- self.buf = self.buf + string.joinfields(self.buflist, '')
+ self.buf += EMPTYSTRING.join(self.buflist)
self.buflist = []
return self.buf