Commit ee0217c
committed
Fix pyright-on-Windows: resolve POSIX-only attributes by name
The windows-latest typecheck job still failed: pyright with Windows
stubs rejects EVERY direct reference to os.killpg / signal.SIGKILL /
os.set_blocking (the attributes do not exist in the stubs at all), so
the runtime _IS_POSIX guard and even an assert could not satisfy it.
Resolve the POSIX-only attributes by NAME via getattr(os, "killpg") —
statically opaque, dynamically identical. This also keeps
mock.patch("os.killpg") interception working in tests because the
lookup happens at call time. B009 (getattr with a constant) is
ignored in ruff config with an explanatory comment.
POSIX behavior unchanged: same killpg calls, same signals, same
non-blocking pipe mode; all 1031 tests pass.1 parent f8bc144 commit ee0217c
2 files changed
Lines changed: 17 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
79 | 84 | | |
80 | 85 | | |
81 | 86 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | | - | |
69 | | - | |
| 71 | + | |
70 | 72 | | |
71 | 73 | | |
72 | 74 | | |
| |||
77 | 79 | | |
78 | 80 | | |
79 | 81 | | |
| 82 | + | |
| 83 | + | |
80 | 84 | | |
81 | | - | |
| 85 | + | |
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
| |||
161 | 165 | | |
162 | 166 | | |
163 | 167 | | |
164 | | - | |
| 168 | + | |
| 169 | + | |
165 | 170 | | |
166 | 171 | | |
167 | 172 | | |
| |||
0 commit comments