Commit 8dedf69
Keep tracking modules that are still initializing
A module is in sys.modules while its body runs, so lazy_modules_add()
counted it as loaded and skipped recording the name. If the body then
raises, the module is removed from sys.modules again and the lazy
import is left pending under no name at all.
Check __spec__._initializing so such a module does not count as loaded.
A name added while a module initializes is still discarded once the
import completes, since _set_lazy_attributes() runs after the body.1 parent aab59a0 commit 8dedf69
4 files changed
Lines changed: 37 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1354 | 1354 | | |
1355 | 1355 | | |
1356 | 1356 | | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
1357 | 1375 | | |
1358 | 1376 | | |
1359 | 1377 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4390 | 4390 | | |
4391 | 4391 | | |
4392 | 4392 | | |
| 4393 | + | |
| 4394 | + | |
| 4395 | + | |
| 4396 | + | |
| 4397 | + | |
| 4398 | + | |
| 4399 | + | |
| 4400 | + | |
| 4401 | + | |
| 4402 | + | |
| 4403 | + | |
| 4404 | + | |
| 4405 | + | |
| 4406 | + | |
4393 | 4407 | | |
4394 | 4408 | | |
4395 | 4409 | | |
| |||
0 commit comments