Module refinery.units.formats.archive.xtace
Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from refinery.units.formats.archive import ArchiveUnit
from refinery.lib.thirdparty import acefile
from refinery.lib.structures import MemoryFile
class xtace(ArchiveUnit):
"""
Extract files from an ACE archive.
"""
def unpack(self, data):
ace = acefile.open(MemoryFile(data, read_as_bytes=True))
for member in ace.getmembers():
member: acefile.AceMember
comment = {} if not member.comment else {'comment': member.comment}
yield self._pack(
member.filename,
member.datetime,
lambda a=ace, m=member: a.read(m, pwd=self.args.pwd),
**comment
)
@classmethod
def handles(cls, data: bytearray) -> bool:
return b'**ACE**' in data[:0x100]
Classes
class xtace (*paths, list=False, join_path=False, drop_path=False, fuzzy=0, exact=False, regex=False, path=b'path', date=b'date', pwd=b'')
-
Extract files from an ACE archive.
Expand source code Browse git
class xtace(ArchiveUnit): """ Extract files from an ACE archive. """ def unpack(self, data): ace = acefile.open(MemoryFile(data, read_as_bytes=True)) for member in ace.getmembers(): member: acefile.AceMember comment = {} if not member.comment else {'comment': member.comment} yield self._pack( member.filename, member.datetime, lambda a=ace, m=member: a.read(m, pwd=self.args.pwd), **comment ) @classmethod def handles(cls, data: bytearray) -> bool: return b'**ACE**' in data[:0x100]
Ancestors
Class variables
var required_dependencies
var optional_dependencies
Methods
def unpack(self, data)
-
Expand source code Browse git
def unpack(self, data): ace = acefile.open(MemoryFile(data, read_as_bytes=True)) for member in ace.getmembers(): member: acefile.AceMember comment = {} if not member.comment else {'comment': member.comment} yield self._pack( member.filename, member.datetime, lambda a=ace, m=member: a.read(m, pwd=self.args.pwd), **comment )
Inherited members