garrytan and capy-ai[bot]
b78fe8c597
fix(pregate): keep Python import scanning linear and conservative
...
Review of #3201 on the integrated tree found two quadratic paths on
untrusted Python source and three ways a test could be left unselected:
- The from-import module spec let two repetitions share a dot, so a
failed match on a long run of dots backtracked quadratically. The spec
is now dots followed by an optional word-led name.
- Dotted literals and imports resolved every prefix with repeated
split/join. Names are capped at 32 segments, deeper than any module path.
- A literal that also named a repo file skipped its mock.patch reading;
both readings now add edges.
- A package and a same-named module both map (Python loads the package).
- Imports after `;` or a compound statement's `:` are recognised.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-17 17:15:11 +00:00
..
2026-10-01 11:57:48 -07:00
2026-10-17 01:14:35 +00:00
2026-10-17 16:47:50 +00:00
2026-10-16 22:00:32 +00:00
2026-10-17 17:15:11 +00:00
2026-10-17 03:32:16 +00:00
2026-10-17 03:32:16 +00:00
2026-10-05 01:29:54 +00:00
2026-10-14 17:36:39 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-13 15:17:39 +00:00
2026-09-22 14:57:52 -04:00
2026-10-16 23:09:23 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-13 15:17:39 +00:00
2026-10-17 02:40:45 +00:00
2026-10-10 23:26:08 +00:00
2026-10-11 03:10:06 +00:00
2026-10-04 07:58:41 -07:00
2026-10-17 03:32:16 +00:00
2026-10-02 11:11:00 -07:00
2026-09-06 08:54:25 -07:00
2026-10-11 19:09:12 +00:00
2026-09-14 14:32:45 -07:00
2026-10-08 08:00:08 +00:00
2026-10-16 22:00:32 +00:00
2026-10-11 18:16:33 +00:00
2026-10-07 23:29:05 +00:00
2026-06-14 11:40:57 -07:00
2026-08-15 11:42:19 -07:00
2026-10-11 03:10:06 +00:00
2026-10-17 02:40:45 +00:00
2026-09-08 22:40:22 -07:00
2026-09-08 22:40:22 -07:00
2026-10-01 13:55:16 -07:00
2026-10-17 02:40:45 +00:00
2026-09-08 22:40:22 -07:00
2026-09-08 22:40:22 -07:00
2026-10-17 02:10:12 +00:00
2026-10-17 02:10:12 +00:00
2026-10-01 11:57:48 -07:00
2026-09-06 08:54:25 -07:00
2026-09-25 12:06:45 -04:00
2026-10-17 02:40:45 +00:00
2026-10-17 02:40:45 +00:00
2026-10-11 03:10:06 +00:00
2026-09-08 22:40:22 -07:00
2026-09-14 15:14:58 -07:00
2026-08-24 08:55:58 -07:00
2026-10-17 02:40:45 +00:00
2026-10-11 19:09:12 +00:00
2026-10-16 22:00:32 +00:00
2026-08-16 19:34:41 -07:00
2026-10-04 07:58:41 -07:00
2026-10-01 11:57:48 -07:00
2026-10-04 07:58:41 -07:00
2026-08-15 22:20:30 -07:00
2026-10-07 23:29:05 +00:00
2026-06-08 06:20:58 -07:00
2026-10-01 11:57:48 -07:00
2026-10-02 11:11:00 -07:00
2026-10-07 23:29:05 +00:00
2026-10-17 03:32:16 +00:00
2026-10-17 02:40:45 +00:00
2026-06-14 11:40:57 -07:00
2026-10-16 23:09:23 +00:00
2026-08-15 09:37:04 -07:00
2026-10-11 03:10:06 +00:00
2026-10-04 07:58:41 -07:00
2026-10-11 19:09:12 +00:00
2026-10-12 13:17:02 -07:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-08 08:00:08 +00:00
2026-10-11 00:32:15 +00:00
2026-10-11 19:09:12 +00:00
2026-10-11 18:16:33 +00:00
2026-10-11 00:32:15 +00:00
2026-10-11 00:32:15 +00:00
2026-10-14 17:36:39 +00:00
2026-10-11 16:48:11 +00:00
2026-10-16 23:09:23 +00:00
2026-10-13 21:31:07 +00:00
2026-10-17 02:10:12 +00:00
2026-10-04 07:58:41 -07:00
2026-10-01 11:57:48 -07:00
2026-10-16 22:00:32 +00:00
2026-10-17 00:06:43 +00:00
2026-10-17 17:06:18 +00:00
2026-10-02 11:11:00 -07:00
2026-10-17 03:32:16 +00:00
2026-10-17 17:06:18 +00:00
2026-10-17 03:32:16 +00:00
2026-10-10 23:26:08 +00:00
2026-10-17 00:41:41 +00:00
2026-10-16 22:00:32 +00:00
2026-10-17 04:36:00 +00:00
2026-10-13 15:38:41 +00:00
2026-10-17 03:32:16 +00:00
2026-10-17 03:32:16 +00:00
2026-10-17 03:32:16 +00:00
2026-10-17 03:32:16 +00:00
2026-10-13 15:17:39 +00:00
2026-10-11 00:32:15 +00:00
2026-10-17 02:40:45 +00:00
2026-06-07 06:51:10 -07:00
2026-10-17 03:32:16 +00:00
2026-10-03 18:49:34 -07:00
2026-08-16 09:53:31 -07:00
2026-10-03 18:49:34 -07:00
2026-10-13 15:38:41 +00:00
2026-10-04 07:58:41 -07:00
2026-08-15 09:37:04 -07:00