# encoding, the following digits-1 bytes are a big-endian
# representation. This allows values up to (256**(digits-1))-1.
if 0 <= n < 8 ** (digits - 1):
- s = bytes("%0*o" % (digits - 1, n)) + NUL
+ s = bytes("%0*o" % (digits - 1, n), "ascii") + NUL
else:
if format != GNU_FORMAT or n >= 256 ** (digits - 1):
raise ValueError("overflow in number field")
def getcomptype(self):
if self.buf.startswith(b"\037\213\010"):
return "gz"
- if self.buf.startswith("BZh91"):
+ if self.buf.startswith(b"BZh91"):
return "bz2"
return "tar"
buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts))
chksum = calc_chksums(buf[-BLOCKSIZE:])[0]
- buf = buf[:-364] + bytes("%06o\0" % chksum) + buf[-357:]
+ buf = buf[:-364] + bytes("%06o\0" % chksum, "ascii") + buf[-357:]
return buf
@staticmethod
if n == p:
break
p = n
- records += bytes(str(p)) + b" " + keyword + b"=" + value + b"\n"
+ records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n"
# We use a hardcoded "././@PaxHeader" name like star does
# instead of the one that POSIX recommends.
tar = tarfile.open(tmpname, self.mode)
path = os.path.join(TEMPDIR, "file")
fobj = open(path, "wb")
- fobj.write("aaa")
+ fobj.write(b"aaa")
fobj.close()
tar.add(path)
tar.close()
self.assertEqual(tarinfo.size, 0)
fobj = open(path, "wb")
- fobj.write("aaa")
+ fobj.write(b"aaa")
fobj.close()
tarinfo = tar.gettarinfo(path)
self.assertEqual(tarinfo.size, 3)
data = fobj.read()
fobj.close()
- self.assert_(data.count("\0") == tarfile.RECORDSIZE,
+ self.assert_(data.count(b"\0") == tarfile.RECORDSIZE,
"incorrect zero padding")
self.bar = os.path.join(TEMPDIR, "bar")
fobj = open(self.foo, "wb")
- fobj.write("foo")
+ fobj.write(b"foo")
fobj.close()
os.link(self.foo, self.bar)