Broncode voor kerapu.command.ShredderCommand

from cleo import Command

from kerapu.shredder.BoomBestandenShredder import BoomBestandenShredder
from kerapu.shredder.ReferentieShredder import ReferentieShredder
from kerapu.style.KerapuStyle import KerapuStyle


[documentatie]class ShredderCommand(Command): """ Converteert XML-bestanden met groupertabellen naar CSV-bestanden kerapu:shredder {XML-bestand : XML-bestand met groupertabellen, b.v. BoomBestanden.xml, Referenties.xml} {folder : Folder waar de CSV-bestanden moeten worden opgeslagen} """ # ------------------------------------------------------------------------------------------------------------------
[documentatie] def handle(self) -> int: """ Executes the command. """ self.output = KerapuStyle(self.input, self.output) filename = self.argument('XML-bestand') folder = self.argument('folder') # Lees de eerste gedeelte van het XML-bestand en bepaal type. with open(filename, 'rt', encoding="ascii", errors="surrogateescape") as handle: kop = handle.read(1024) if '<InlezenBoomBestanden>' in kop: shredder = BoomBestandenShredder(self.output, folder) shredder.shred_xml_file(filename) elif '<InlezenReferenties>' in kop: shredder = ReferentieShredder(self.output, folder) shredder.shred_xml_file(filename) else: raise RuntimeError("Tag <InlezenBoomBestanden> of <InlezenReferenties> niet gevonden in '{}'". format(filename)) return 0
# ----------------------------------------------------------------------------------------------------------------------