MCPcopy
hub / github.com/django/django / extract

Method extract

django/utils/archive.py:217–239  ·  view source on GitHub ↗
(self, to_path)

Source from the content-addressed store, hash-verified

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()

Callers

nothing calls this directly

Calls 6

has_leading_dirMethod · 0.80
split_leading_dirMethod · 0.80
target_filenameMethod · 0.80
_copy_permissionsMethod · 0.80
readMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected