Mercurial > ~astiob > upreckon > hgweb
comparison 2.00/files.py @ 31:fe1463e7e24d
Clean up try-except clauses
More try-except-else goodness (with the stress on else).
Bug fix: compat.py now creates zip_longest in Python 2.5 instead of raising an exception.
author | Oleg Oshmyan <chortos@inbox.lv> |
---|---|
date | Thu, 25 Nov 2010 00:03:29 +0000 |
parents | c1f52b5d80d6 |
children | 8fec38b0dd6e |
comparison
equal
deleted
inserted
replaced
30:f17f19d9eb0a | 31:fe1463e7e24d |
---|---|
53 def __del__(self): | 53 def __del__(self): |
54 del self.file | 54 del self.file |
55 | 55 |
56 try: | 56 try: |
57 import tarfile | 57 import tarfile |
58 | 58 except ImportError: |
59 TarArchive = None | |
60 else: | |
59 class TarArchive(Archive): | 61 class TarArchive(Archive): |
60 __slots__ = '__namelist' | 62 __slots__ = '__namelist' |
61 | 63 |
62 def __init__(self, path): | 64 def __init__(self, path): |
63 self.file = tarfile.open(path) | 65 self.file = tarfile.open(path) |
97 if not self.file._extfileobj: | 99 if not self.file._extfileobj: |
98 self.file.fileobj.close() | 100 self.file.fileobj.close() |
99 self.file.closed = True | 101 self.file.closed = True |
100 | 102 |
101 formats['tar'] = formats['tgz'] = formats['tar.gz'] = formats['tbz2'] = formats['tar.bz2'] = TarArchive | 103 formats['tar'] = formats['tgz'] = formats['tar.gz'] = formats['tbz2'] = formats['tar.bz2'] = TarArchive |
102 except ImportError: | |
103 TarArchive = None | |
104 | 104 |
105 try: | 105 try: |
106 import zipfile | 106 import zipfile |
107 | 107 except ImportError: |
108 ZipArchive = None | |
109 else: | |
108 class ZipArchive(Archive): | 110 class ZipArchive(Archive): |
109 __slots__ = '__namelist' | 111 __slots__ = '__namelist' |
110 | 112 |
111 def __init__(self, path): | 113 def __init__(self, path): |
112 self.file = zipfile.ZipFile(path) | 114 self.file = zipfile.ZipFile(path) |
148 return self.file.__exit__(exc_type, exc_value, traceback) | 150 return self.file.__exit__(exc_type, exc_value, traceback) |
149 else: | 151 else: |
150 return self.file.close() | 152 return self.file.close() |
151 | 153 |
152 formats['zip'] = ZipArchive | 154 formats['zip'] = ZipArchive |
153 except ImportError: | |
154 ZipArchive = None | |
155 | 155 |
156 # Remove unsupported archive formats and replace full stops | 156 # Remove unsupported archive formats and replace full stops |
157 # with the platform-dependent file name extension separator | 157 # with the platform-dependent file name extension separator |
158 def issupported(filename, formats=formats): | 158 def issupported(filename, formats=formats): |
159 ext = filename.partition('.')[2] | 159 ext = filename.partition('.')[2] |