mercurial/archival.py
changeset 2168 dd4ec4576cc8
parent 2112 2b03c6733efa
child 2169 4564794b6f55
equal deleted inserted replaced
2165:d821918e3bee 2168:dd4ec4576cc8
    78     '''write archive to zip file or stream.  can write uncompressed,
    78     '''write archive to zip file or stream.  can write uncompressed,
    79     or compressed with deflate.'''
    79     or compressed with deflate.'''
    80 
    80 
    81     def __init__(self, dest, prefix, compress=True):
    81     def __init__(self, dest, prefix, compress=True):
    82         self.prefix = tidyprefix(dest, prefix, ('.zip',))
    82         self.prefix = tidyprefix(dest, prefix, ('.zip',))
    83         if not isinstance(dest, str) and not hasattr(dest, 'tell'):
    83         if not isinstance(dest, str):
    84             dest = tellable(dest)
    84             try:
       
    85                 dest.tell()
       
    86             except AttributeError:
       
    87                 dest = tellable(dest)
       
    88             except IOError:
       
    89                 dest = tellable(dest)
    85         self.z = zipfile.ZipFile(dest, 'w',
    90         self.z = zipfile.ZipFile(dest, 'w',
    86                                  compress and zipfile.ZIP_DEFLATED or
    91                                  compress and zipfile.ZIP_DEFLATED or
    87                                  zipfile.ZIP_STORED)
    92                                  zipfile.ZIP_STORED)
    88         self.date_time = time.gmtime(time.time())[:6]
    93         self.date_time = time.gmtime(time.time())[:6]
    89 
    94