Commit 727bd0b6 authored by Lars Gustäbel's avatar Lars Gustäbel

Issue #3039: Fix TarFileCompat.writestr() which always raised an

AttributeError since __slots__ were added to zipfile.ZipInfo in
r46967 two years ago.
Add a warning about the removal of TarFileCompat in Python 3.0.
parent aabf404e
......@@ -140,6 +140,10 @@ Some facts and figures:
Constant for a :mod:`gzip` compressed tar archive.
.. deprecated:: 2.6
The :class:`TarFileCompat` class has been deprecated for removal in Python 3.0.
.. exception:: TarError
Base class for all :mod:`tarfile` exceptions.
......
......@@ -2468,6 +2468,9 @@ class TarFileCompat:
ZipFile class.
"""
def __init__(self, file, mode="r", compression=TAR_PLAIN):
from warnings import warnpy3k
warnpy3k("the TarFileCompat class has been removed in Python 3.0",
stacklevel=2)
if compression == TAR_PLAIN:
self.tarfile = TarFile.taropen(file, mode)
elif compression == TAR_GZIPPED:
......@@ -2501,10 +2504,10 @@ class TarFileCompat:
except ImportError:
from StringIO import StringIO
import calendar
zinfo.name = zinfo.filename
zinfo.size = zinfo.file_size
zinfo.mtime = calendar.timegm(zinfo.date_time)
self.tarfile.addfile(zinfo, StringIO(bytes))
tinfo = TarInfo(zinfo.filename)
tinfo.size = len(bytes)
tinfo.mtime = calendar.timegm(zinfo.date_time)
self.tarfile.addfile(tinfo, StringIO(bytes))
def close(self):
self.tarfile.close()
#class TarFileCompat
......
......@@ -38,6 +38,9 @@ Core and Builtins
Library
-------
- Issue #3039: Fix tarfile.TarFileCompat.writestr() which always
raised an AttributeError.
- Issue #2523: Fix quadratic behaviour when read()ing a binary file without
asking for a specific length.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment