mirror of
https://github.com/servo/servo.git
synced 2025-06-12 18:34:39 +00:00
fix zip extraction for python 3
This commit is contained in:
parent
c67b3d71e2
commit
4dec35ca87
1 changed files with 15 additions and 0 deletions
|
@ -187,6 +187,21 @@ class ZipFileWithUnixPermissions(zipfile.ZipFile):
|
|||
os.chmod(extracted, mode)
|
||||
return extracted
|
||||
|
||||
# For Python 3.x
|
||||
def _extract_member(self, member, targetpath, pwd):
|
||||
if sys.version_info[0] >= 3:
|
||||
if not isinstance(member, zipfile.ZipInfo):
|
||||
member = self.getinfo(member)
|
||||
|
||||
targetpath = super()._extract_member(member, targetpath, pwd)
|
||||
|
||||
attr = member.external_attr >> 16
|
||||
if attr != 0:
|
||||
os.chmod(targetpath, attr)
|
||||
return targetpath
|
||||
else:
|
||||
return super(ZipFileWithUnixPermissions, self)._extract_member(member, targetpath, pwd)
|
||||
|
||||
|
||||
def extract(src, dst, movedir=None, remove=True):
|
||||
assert src.endswith(".zip")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue