From 8b1965873ad632e056af59bb253b375d75361a5c Mon Sep 17 00:00:00 2001 From: Xiangkun Liu Date: Fri, 25 Aug 2023 17:38:31 +0800 Subject: [PATCH 1/2] fix KeyError when rId is None --- pyxlsb/workbook.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyxlsb/workbook.py b/pyxlsb/workbook.py index 5879d79..7cb638b 100644 --- a/pyxlsb/workbook.py +++ b/pyxlsb/workbook.py @@ -42,7 +42,10 @@ def _parse(self): reader = BIFF12Reader(fp=temp, debug=self._debug) for item in reader: if item[0] == biff12.SHEET: - self._sheets.append((item[1].name, rels[item[1].rId])) + name = item[1].name + rId = item[1].rId + if rId: + self._sheets.append((name, rels[rId])) elif item[0] == biff12.SHEETS_END: break From ffffb35adeba2b0daedffa9344ae1727371bcb52 Mon Sep 17 00:00:00 2001 From: Sourcery AI <> Date: Sun, 27 Aug 2023 07:23:15 +0000 Subject: [PATCH 2/2] 'Refactored by Sourcery' --- pyxlsb/workbook.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pyxlsb/workbook.py b/pyxlsb/workbook.py index 7cb638b..73ec94c 100644 --- a/pyxlsb/workbook.py +++ b/pyxlsb/workbook.py @@ -43,8 +43,7 @@ def _parse(self): for item in reader: if item[0] == biff12.SHEET: name = item[1].name - rId = item[1].rId - if rId: + if rId := item[1].rId: self._sheets.append((name, rels[rId])) elif item[0] == biff12.SHEETS_END: break @@ -71,13 +70,13 @@ def get_sheet(self, idx, rels=False): target = self._sheets[idx - 1][1].split('/') temp = TemporaryFile() - with self._zf.open('xl/{}/{}'.format(target[0], target[-1]), 'r') as zf: + with self._zf.open(f'xl/{target[0]}/{target[-1]}', 'r') as zf: temp.write(zf.read()) temp.seek(0, os.SEEK_SET) if rels: rels_temp = TemporaryFile() - with self._zf.open('xl/{}/_rels/{}.rels'.format(target[0], target[-1]), 'r') as zf: + with self._zf.open(f'xl/{target[0]}/_rels/{target[-1]}.rels', 'r') as zf: rels_temp.write(zf.read()) rels_temp.seek(0, os.SEEK_SET) else: