Umut CAN and Claude Opus 5.5
efa1ea8182
fix(understand): a truncated DXF is refused by the snapshot, not left hanging
...
ezdxf's tag reader raises StopIteration on a file that ends early, for example
after an interrupted save or a partial copy. read_snapshot caught only OSError
and DXFError, so the StopIteration escaped. asyncio.to_thread cannot hand
StopIteration back to an awaiting caller, so every track H tool reading such
a file would have hung instead of refusing it.
The review of drawing_diff found this in its own reader. The snapshot now
does the same: every parse or walk failure except MemoryError becomes the
existing "is not a readable DXF file" refusal. A new test checks this both
directly and through a worker thread with a 10 s timeout. It failed with
StopIteration before this change and passes after it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
2026-09-24 12:22:23 +03:00
..
2026-09-23 23:20:05 +03:00
2026-09-24 11:42:09 +03:00
2026-04-27 12:20:57 +03:00
2026-09-22 19:49:28 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 22:35:44 +03:00
2026-09-23 22:35:44 +03:00
2026-09-23 23:20:05 +03:00
2026-09-23 23:00:05 +03:00
2026-09-23 23:00:05 +03:00
2026-09-23 22:33:37 +03:00
2026-09-23 22:27:00 +03:00
2026-09-23 22:27:00 +03:00
2026-09-23 22:51:41 +03:00
2026-09-23 22:33:37 +03:00
2026-09-23 22:48:36 +03:00
2026-09-23 22:56:05 +03:00
2026-09-23 22:56:05 +03:00
2026-09-23 23:20:05 +03:00
2026-09-23 22:51:41 +03:00
2026-09-23 22:42:42 +03:00
2026-09-23 22:42:42 +03:00
2026-09-23 23:09:03 +03:00
2026-09-23 22:46:39 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:47:05 +03:00
2026-07-23 15:14:51 +03:00
2026-07-17 15:08:15 +03:00
2026-07-17 15:48:43 +03:00
2026-09-16 13:06:52 +03:00
2026-09-23 23:35:46 +03:00
2026-09-23 23:35:46 +03:00
2026-09-23 23:35:46 +03:00
2026-09-18 00:11:38 +03:00
2026-08-06 09:45:20 +03:00
2026-09-15 13:21:16 +03:00
2026-09-15 13:34:47 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:46:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 11:35:00 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 23:35:46 +03:00
2026-09-22 12:25:11 +03:00
2026-09-21 21:46:08 +03:00
2026-07-23 15:15:45 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 23:07:50 +03:00
2026-07-07 11:03:08 +03:00
2026-09-23 13:30:02 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 13:07:31 +03:00
2026-09-21 22:04:22 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-23 13:30:02 +03:00
2026-07-23 15:14:51 +03:00
2026-04-27 12:20:57 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:34:26 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-07 11:03:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 14:28:35 +03:00
2026-04-27 12:20:57 +03:00
2026-09-22 13:07:31 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 15:08:50 +03:00
2026-09-22 19:15:33 +03:00
2026-09-22 19:07:53 +03:00
2026-09-23 12:48:44 +03:00
2026-09-22 23:04:25 +03:00
2026-09-23 13:30:02 +03:00
2026-09-22 19:07:53 +03:00
2026-09-22 19:48:00 +03:00
2026-09-22 20:12:11 +03:00
2026-09-22 17:04:59 +03:00
2026-09-22 18:52:39 +03:00
2026-09-22 17:04:59 +03:00
2026-09-22 22:16:47 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 20:02:06 +03:00
2026-09-22 20:02:06 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 21:40:29 +03:00
2026-09-22 17:04:59 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-22 13:07:31 +03:00
2026-09-24 11:38:59 +03:00
2026-09-21 16:55:05 +03:00
2026-08-06 09:45:20 +03:00
2026-09-16 12:01:37 +03:00
2026-09-21 22:44:35 +03:00
2026-09-21 21:46:08 +03:00
2026-09-23 13:30:02 +03:00
2026-09-15 16:44:06 +03:00
2026-09-22 13:07:31 +03:00
2026-09-22 11:06:04 +03:00
2026-09-16 12:42:54 +03:00
2026-09-15 23:48:35 +03:00
2026-09-15 13:27:59 +03:00
2026-09-15 15:04:01 +03:00
2026-09-24 11:42:09 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 23:35:44 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-07 11:03:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 23:07:50 +03:00
2026-07-17 15:48:43 +03:00
2026-08-06 23:07:50 +03:00
2026-09-17 10:14:05 +03:00
2026-09-23 13:30:02 +03:00
2026-09-22 23:03:57 +03:00
2026-09-22 19:49:28 +03:00
2026-09-22 22:39:10 +03:00
2026-09-22 19:49:28 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:22:49 +03:00
2026-08-06 09:45:20 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-21 16:48:20 +03:00
2026-09-22 13:07:31 +03:00
2026-09-22 12:25:11 +03:00
2026-09-22 12:25:11 +03:00
2026-09-23 22:56:05 +03:00
2026-09-21 22:48:31 +03:00
2026-09-23 23:35:46 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 23:20:05 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 23:20:05 +03:00
2026-09-22 13:07:31 +03:00
2026-09-24 11:38:59 +03:00
2026-09-24 12:22:23 +03:00
2026-09-24 11:38:59 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 16:48:19 +03:00
2026-09-15 14:49:43 +03:00