diff --git a/src/wikiq/__init__.py b/src/wikiq/__init__.py index db18d83..2012e83 100755 --- a/src/wikiq/__init__.py +++ b/src/wikiq/__init__.py @@ -52,7 +52,7 @@ async def diff_async(differ, last_text, text): return differ.inline_json_diff(last_text, text) try: result = await asyncio.wait_for(_diff(), DIFF_TIMEOUT) - except asyncio.TimeoutError as e: + except TimeoutError as e: raise e return result @@ -676,11 +676,11 @@ class WikiqParser: if self.diff: last_text = last_rev_text new_diffs = [] - for text in row_buffer["text"]: + for i, text in enumerate(row_buffer["text"]): try: diff = asyncio.run(diff_async(differ, last_text, text)) - except asyncio.TimeoutError: - print(f"WARNING! wikidiff2 timeout for rev: {row_buffer['revid']}. Falling back to default limits.", file=sys.stderr) + except TimeoutError: + print(f"WARNING! wikidiff2 timeout for rev: {row_buffer['revid'][i]}. Falling back to default limits.", file=sys.stderr) diff = fast_differ.inline_json_diff(last_text, text) new_diffs.append(diff) last_text = text @@ -711,7 +711,11 @@ class WikiqParser: "Done: %s revisions and %s pages." % (rev_count, page_count), file=sys.stderr, ) - writer.close() + if self.partition_namespaces is True: + for writer in pq_writers.values(): + writer.close() + else: + writer.close() def match_archive_suffix(input_filename):