/** * Built-in python profile (phase 167, T2) — pytest-style test functions * scanned with the `indentation-delimited` strategy (`./strategies.ts`). * * Opener convention (pytest's real convention, documented per the T2 draft * action): a test "opener" is any `def test_(...):` — module-level or * a method indented under any class (the enclosing class's own name is not * inspected; only the `test_` prefix on the `def` matters, since the * indentation strategy resolves each method's body relative to its own * line's indent regardless of what encloses it). A function whose name does * not start with `test_` (e.g. `def helper():`) is never treated as an * opener at all — pytest itself would not collect it either. * * String table order matters: `mask.ts` tries longer `open` delimiters * first, so Python's triple-quoted forms (`"""`, `'''`) are masked as a * single (already-multi-character) delimiter pair before the single-quote * forms are tried — `StringDelimiter.open`/`close` already support * multi-character delimiters (confirmed against T1's own * `coverage-profiles-engine.test.ts` indentation fixture, which uses the * same `"""`/`'''` forms), so docstrings mask their entire contents * (including embedded `#`, quotes, and assertion-looking text) without any * change to `mask.ts`/`types.ts`. * * Known best-effort edges (documented, not closed — false-negative-safe): * a signature with nested parens in a default argument (e.g. * `def test_x(a=dict(x=1)):`) does not match as an opener at all, since * `[^)]*` is not paren-depth-aware — this under-reports rather than * mis-bounds. A genuinely unclosed paren (a `SyntaxError` in real Python, * only reachable via a transiently mid-edit file) can merge two unrelated * functions into one span; this is a structural risk of any depth-unaware * opener scan, not unique to this profile. The same caveat applies to the * optional return-type annotation group: `[^:\n]+` is not bracket-depth-aware * either, so a return type containing a bare `:` (not a realistic Python * type expression) would under-match rather than mis-bound. */ import type { LanguageProfile } from './types.js'; export declare const pythonProfile: LanguageProfile; //# sourceMappingURL=python.d.ts.map