Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit bd1c68c

Browse filesBrowse files
committed
Patch #1303: Adapt str8 constructor to bytes (now buffer) one.
1 parent 97f9d4f commit bd1c68c
Copy full SHA for bd1c68c

15 files changed

+215-75Lines changed: 215 additions & 75 deletions
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎Lib/modulefinder.py‎

Copy file name to clipboardExpand all lines: Lib/modulefinder.py
+6-6Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
READ_MODE = "r"
1818

1919
# XXX Clean up once str8's cstor matches bytes.
20-
LOAD_CONST = str8(chr(dis.opname.index('LOAD_CONST')))
21-
IMPORT_NAME = str8(chr(dis.opname.index('IMPORT_NAME')))
22-
STORE_NAME = str8(chr(dis.opname.index('STORE_NAME')))
23-
STORE_GLOBAL = str8(chr(dis.opname.index('STORE_GLOBAL')))
20+
LOAD_CONST = str8([dis.opname.index('LOAD_CONST')])
21+
IMPORT_NAME = str8([dis.opname.index('IMPORT_NAME')])
22+
STORE_NAME = str8([dis.opname.index('STORE_NAME')])
23+
STORE_GLOBAL = str8([dis.opname.index('STORE_GLOBAL')])
2424
STORE_OPS = [STORE_NAME, STORE_GLOBAL]
25-
HAVE_ARGUMENT = str8(chr(dis.HAVE_ARGUMENT))
25+
HAVE_ARGUMENT = str8([dis.HAVE_ARGUMENT])
2626

2727
# Modulefinder does a good job at simulating Python's, but it can not
2828
# handle __path__ modifications packages make at runtime. Therefore there
@@ -368,7 +368,7 @@ def scan_opcodes_25(self, co,
368368
consts = co.co_consts
369369
LOAD_LOAD_AND_IMPORT = LOAD_CONST + LOAD_CONST + IMPORT_NAME
370370
while code:
371-
c = str8(chr(code[0]))
371+
c = str8([code[0]])
372372
if c in STORE_OPS:
373373
oparg, = unpack('<H', code[1:3])
374374
yield "store", (names[oparg],)
Collapse file

‎Lib/pickletools.py‎

Copy file name to clipboardExpand all lines: Lib/pickletools.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1978,7 +1978,7 @@ def __init__(self, value):
19781978

19791979
_dis_test = r"""
19801980
>>> import pickle
1981-
>>> x = [1, 2, (3, 4), {str8('abc'): "def"}]
1981+
>>> x = [1, 2, (3, 4), {str8(b'abc'): "def"}]
19821982
>>> pkl = pickle.dumps(x, 0)
19831983
>>> dis(pkl)
19841984
0: ( MARK
Collapse file

‎Lib/struct.py‎

Copy file name to clipboardExpand all lines: Lib/struct.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
class Struct(_Struct):
3737
def __init__(self, fmt):
3838
if isinstance(fmt, str):
39-
fmt = str8(fmt)
39+
fmt = str8(fmt, 'latin1')
4040
_Struct.__init__(self, fmt)
4141

4242
_MAXCACHE = 100
Collapse file

‎Lib/test/test_builtin.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_builtin.py
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,8 @@ def test_hash(self):
580580
self.assertEqual(hash(1), hash(1))
581581
self.assertEqual(hash(1), hash(1.0))
582582
hash('spam')
583-
self.assertEqual(hash('spam'), hash(str8('spam')))
583+
self.assertEqual(hash('spam'), hash(str8(b'spam'))) # remove str8()
584+
# when b"" is immutable
584585
hash((0,1,2,3))
585586
def f(): pass
586587
self.assertRaises(TypeError, hash, [])
Collapse file

‎Lib/test/test_bytes.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_bytes.py
+31-31Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -103,33 +103,33 @@ def test_compare(self):
103103
self.failIf(b3 <= b2)
104104

105105
def test_compare_to_str(self):
106-
self.assertEqual(b"abc" == str8("abc"), True)
107-
self.assertEqual(b"ab" != str8("abc"), True)
108-
self.assertEqual(b"ab" <= str8("abc"), True)
109-
self.assertEqual(b"ab" < str8("abc"), True)
110-
self.assertEqual(b"abc" >= str8("ab"), True)
111-
self.assertEqual(b"abc" > str8("ab"), True)
112-
113-
self.assertEqual(b"abc" != str8("abc"), False)
114-
self.assertEqual(b"ab" == str8("abc"), False)
115-
self.assertEqual(b"ab" > str8("abc"), False)
116-
self.assertEqual(b"ab" >= str8("abc"), False)
117-
self.assertEqual(b"abc" < str8("ab"), False)
118-
self.assertEqual(b"abc" <= str8("ab"), False)
119-
120-
self.assertEqual(str8("abc") == b"abc", True)
121-
self.assertEqual(str8("ab") != b"abc", True)
122-
self.assertEqual(str8("ab") <= b"abc", True)
123-
self.assertEqual(str8("ab") < b"abc", True)
124-
self.assertEqual(str8("abc") >= b"ab", True)
125-
self.assertEqual(str8("abc") > b"ab", True)
126-
127-
self.assertEqual(str8("abc") != b"abc", False)
128-
self.assertEqual(str8("ab") == b"abc", False)
129-
self.assertEqual(str8("ab") > b"abc", False)
130-
self.assertEqual(str8("ab") >= b"abc", False)
131-
self.assertEqual(str8("abc") < b"ab", False)
132-
self.assertEqual(str8("abc") <= b"ab", False)
106+
self.assertEqual(b"abc" == str8(b"abc"), True)
107+
self.assertEqual(b"ab" != str8(b"abc"), True)
108+
self.assertEqual(b"ab" <= str8(b"abc"), True)
109+
self.assertEqual(b"ab" < str8(b"abc"), True)
110+
self.assertEqual(b"abc" >= str8(b"ab"), True)
111+
self.assertEqual(b"abc" > str8(b"ab"), True)
112+
113+
self.assertEqual(b"abc" != str8(b"abc"), False)
114+
self.assertEqual(b"ab" == str8(b"abc"), False)
115+
self.assertEqual(b"ab" > str8(b"abc"), False)
116+
self.assertEqual(b"ab" >= str8(b"abc"), False)
117+
self.assertEqual(b"abc" < str8(b"ab"), False)
118+
self.assertEqual(b"abc" <= str8(b"ab"), False)
119+
120+
self.assertEqual(str8(b"abc") == b"abc", True)
121+
self.assertEqual(str8(b"ab") != b"abc", True)
122+
self.assertEqual(str8(b"ab") <= b"abc", True)
123+
self.assertEqual(str8(b"ab") < b"abc", True)
124+
self.assertEqual(str8(b"abc") >= b"ab", True)
125+
self.assertEqual(str8(b"abc") > b"ab", True)
126+
127+
self.assertEqual(str8(b"abc") != b"abc", False)
128+
self.assertEqual(str8(b"ab") == b"abc", False)
129+
self.assertEqual(str8(b"ab") > b"abc", False)
130+
self.assertEqual(str8(b"ab") >= b"abc", False)
131+
self.assertEqual(str8(b"abc") < b"ab", False)
132+
self.assertEqual(str8(b"abc") <= b"ab", False)
133133

134134
# Byte comparisons with unicode should always fail!
135135
# Test this for all expected byte orders and Unicode character sizes
@@ -345,7 +345,7 @@ def test_decode(self):
345345
self.assertEqual(b.decode("utf8", "ignore"), "Hello world\n")
346346

347347
def test_from_buffer(self):
348-
sample = str8("Hello world\n\x80\x81\xfe\xff")
348+
sample = str8(b"Hello world\n\x80\x81\xfe\xff")
349349
buf = memoryview(sample)
350350
b = bytes(buf)
351351
self.assertEqual(b, bytes(sample))
@@ -367,8 +367,8 @@ def test_concat(self):
367367
b1 = b"abc"
368368
b2 = b"def"
369369
self.assertEqual(b1 + b2, b"abcdef")
370-
self.assertEqual(b1 + str8("def"), b"abcdef")
371-
self.assertEqual(str8("def") + b1, b"defabc")
370+
self.assertEqual(b1 + str8(b"def"), b"abcdef")
371+
self.assertEqual(str8(b"def") + b1, b"defabc")
372372
self.assertRaises(TypeError, lambda: b1 + "def")
373373
self.assertRaises(TypeError, lambda: "abc" + b2)
374374

@@ -391,7 +391,7 @@ def test_iconcat(self):
391391
self.assertEqual(b, b"abcdef")
392392
self.assertEqual(b, b1)
393393
self.failUnless(b is b1)
394-
b += str8("xyz")
394+
b += str8(b"xyz")
395395
self.assertEqual(b, b"abcdefxyz")
396396
try:
397397
b += ""
Collapse file

‎Lib/test/test_codeccallbacks.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_codeccallbacks.py
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,15 @@ def test_charmapencode(self):
181181
# mapped through the encoding again. This means, that
182182
# to be able to use e.g. the "replace" handler, the
183183
# charmap has to have a mapping for "?".
184-
charmap = dict((ord(c), str8(2*c.upper())) for c in "abcdefgh")
184+
charmap = dict((ord(c), str8(2*c.upper(), 'ascii')) for c in "abcdefgh")
185185
sin = "abc"
186186
sout = b"AABBCC"
187187
self.assertEquals(codecs.charmap_encode(sin, "strict", charmap)[0], sout)
188188

189189
sin = "abcA"
190190
self.assertRaises(UnicodeError, codecs.charmap_encode, sin, "strict", charmap)
191191

192-
charmap[ord("?")] = str8("XYZ")
192+
charmap[ord("?")] = str8(b"XYZ")
193193
sin = "abcDEF"
194194
sout = b"AABBCCXYZXYZXYZ"
195195
self.assertEquals(codecs.charmap_encode(sin, "replace", charmap)[0], sout)
@@ -309,7 +309,7 @@ def check_exceptionobjectargs(self, exctype, args, msg):
309309
# check with one argument too much
310310
self.assertRaises(TypeError, exctype, *(args + ["too much"]))
311311
# check with one argument of the wrong type
312-
wrongargs = [ "spam", str8("eggs"), b"spam", 42, 1.0, None ]
312+
wrongargs = [ "spam", str8(b"eggs"), b"spam", 42, 1.0, None ]
313313
for i in range(len(args)):
314314
for wrongarg in wrongargs:
315315
if type(wrongarg) is type(args[i]):
Collapse file

‎Lib/test/test_compile.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_compile.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def test_leading_newlines(self):
157157
s256 = "".join(["\n"] * 256 + ["spam"])
158158
co = compile(s256, 'fn', 'exec')
159159
self.assertEqual(co.co_firstlineno, 257)
160-
self.assertEqual(co.co_lnotab, str8(''))
160+
self.assertEqual(co.co_lnotab, str8())
161161

162162
def test_literals_with_leading_zeroes(self):
163163
for arg in ["077787", "0xj", "0x.", "0e", "090000000000000",
Collapse file

‎Lib/test/test_io.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_io.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def write_ops(self, f):
8888
self.assertEqual(f.tell(), 6)
8989
self.assertEqual(f.seek(-1, 1), 5)
9090
self.assertEqual(f.tell(), 5)
91-
self.assertEqual(f.write(str8(" world\n\n\n")), 9)
91+
self.assertEqual(f.write(str8(b" world\n\n\n")), 9)
9292
self.assertEqual(f.seek(0), 0)
9393
self.assertEqual(f.write(b"h"), 1)
9494
self.assertEqual(f.seek(-1, 2), 13)
Collapse file

‎Lib/test/test_locale.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_locale.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def testformat(formatstr, value, grouping = 0, output=None, func=locale.format):
8282

8383
# Test BSD Rune locale's bug for isctype functions.
8484
def teststrop(s, method, output):
85-
s = str8(s)
85+
s = str8(s, 'latin1') # XXX
8686
if verbose:
8787
print("%s.%s() =? %s ..." % (repr(s), method, repr(output)), end=' ')
8888
result = getattr(s, method)()
Collapse file

‎Lib/test/test_struct.py‎

Copy file name to clipboardExpand all lines: Lib/test/test_struct.py
+22-18Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def deprecated_err(func, *args):
101101
simple_err(struct.unpack, 'iii', s)
102102
simple_err(struct.unpack, 'i', s)
103103

104-
c = str8('a')
104+
c = str8(b'a')
105105
b = 1
106106
h = 255
107107
i = 65535
@@ -186,7 +186,7 @@ def deprecated_err(func, *args):
186186
if isinstance(arg, str):
187187
# Strings are returned as str8 since you can't know the encoding of
188188
# the string when packed.
189-
arg = str8(arg)
189+
arg = str8(arg, 'latin1')
190190
if rev != arg and not asy:
191191
raise TestFailed("unpack(%r, %r) -> (%r,) # expected (%r,)" % (
192192
fmt, res, rev, arg))
@@ -428,14 +428,14 @@ def run(self):
428428

429429
def test_p_code():
430430
for code, input, expected, expectedback in [
431-
('p','abc', '\x00', str8('')),
432-
('1p', 'abc', '\x00', str8('')),
433-
('2p', 'abc', '\x01a', str8('a')),
434-
('3p', 'abc', '\x02ab', str8('ab')),
435-
('4p', 'abc', '\x03abc', str8('abc')),
436-
('5p', 'abc', '\x03abc\x00', str8('abc')),
437-
('6p', 'abc', '\x03abc\x00\x00', str8('abc')),
438-
('1000p', 'x'*1000, '\xff' + 'x'*999, str8('x'*255))]:
431+
('p','abc', '\x00', str8()),
432+
('1p', 'abc', '\x00', str8()),
433+
('2p', 'abc', '\x01a', str8(b'a')),
434+
('3p', 'abc', '\x02ab', str8(b'ab')),
435+
('4p', 'abc', '\x03abc', str8(b'abc')),
436+
('5p', 'abc', '\x03abc\x00', str8(b'abc')),
437+
('6p', 'abc', '\x03abc\x00\x00', str8(b'abc')),
438+
('1000p', 'x'*1000, '\xff' + 'x'*999, str8(b'x'*255))]:
439439
expected = bytes(expected, "latin-1")
440440
got = struct.pack(code, input)
441441
if got != expected:
@@ -564,20 +564,24 @@ def test_unpack_from():
564564
if verbose:
565565
print("test_unpack_from using", cls.__name__)
566566
data = cls(test_string)
567-
vereq(s.unpack_from(data), (str8('abcd'),))
568-
vereq(s.unpack_from(data, 2), (str8('cd01'),))
569-
vereq(s.unpack_from(data, 4), (str8('0123'),))
567+
if not isinstance(data, (str8, bytes)):
568+
bytes_data = str8(data, 'latin1')
569+
else:
570+
bytes_data = data
571+
vereq(s.unpack_from(data), (str8(b'abcd'),))
572+
vereq(s.unpack_from(data, 2), (str8(b'cd01'),))
573+
vereq(s.unpack_from(data, 4), (str8(b'0123'),))
570574
for i in range(6):
571-
vereq(s.unpack_from(data, i), (str8(data[i:i+4]),))
575+
vereq(s.unpack_from(data, i), (bytes_data[i:i+4],))
572576
for i in range(6, len(test_string) + 1):
573577
simple_err(s.unpack_from, data, i)
574578
for cls in (str, str8, bytes): # XXX + memoryview
575579
data = cls(test_string)
576-
vereq(struct.unpack_from(fmt, data), (str8('abcd'),))
577-
vereq(struct.unpack_from(fmt, data, 2), (str8('cd01'),))
578-
vereq(struct.unpack_from(fmt, data, 4), (str8('0123'),))
580+
vereq(struct.unpack_from(fmt, data), (str8(b'abcd'),))
581+
vereq(struct.unpack_from(fmt, data, 2), (str8(b'cd01'),))
582+
vereq(struct.unpack_from(fmt, data, 4), (str8(b'0123'),))
579583
for i in range(6):
580-
vereq(struct.unpack_from(fmt, data, i), (str8(data[i:i+4]),))
584+
vereq(struct.unpack_from(fmt, data, i), (bytes_data[i:i+4],))
581585
for i in range(6, len(test_string) + 1):
582586
simple_err(struct.unpack_from, fmt, data, i)
583587

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.