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.
This commit is contained in:
Lars Gustäbel 2008-08-02 11:26:39 +00:00
parent aabf404ecc
commit 727bd0b687
3 changed files with 14 additions and 4 deletions

View File

@ -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.

View File

@ -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

View File

@ -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.