(self, to_path)
| 215 | self._archive.printdir(*args, **kwargs) |
| 216 | |
| 217 | def extract(self, to_path): |
| 218 | namelist = self._archive.namelist() |
| 219 | leading = self.has_leading_dir(namelist) |
| 220 | for name in namelist: |
| 221 | data = self._archive.read(name) |
| 222 | info = self._archive.getinfo(name) |
| 223 | if leading: |
| 224 | name = self.split_leading_dir(name)[1] |
| 225 | if not name: |
| 226 | continue |
| 227 | filename = self.target_filename(to_path, name) |
| 228 | if name.endswith(("/", "\\")): |
| 229 | # A directory |
| 230 | os.makedirs(filename, exist_ok=True) |
| 231 | else: |
| 232 | dirname = os.path.dirname(filename) |
| 233 | if dirname: |
| 234 | os.makedirs(dirname, exist_ok=True) |
| 235 | with open(filename, "wb") as outfile: |
| 236 | outfile.write(data) |
| 237 | # Convert ZipInfo.external_attr to mode |
| 238 | mode = info.external_attr >> 16 |
| 239 | self._copy_permissions(mode, filename) |
| 240 | |
| 241 | def close(self): |
| 242 | self._archive.close() |
nothing calls this directly
no test coverage detected