gh-102567: Add -X importtime=2 for logging an importtime message for already-loaded modules#118655
Conversation
|
Hello!
|
Thanks for the quick feedback. I've committed a first pass of 1-3. As for tests: there appear to be no Thanks again! |
Yes, it would be sufficient :) |
|
Also, there's a merge conflict. Can you resolve it? (I can do it myself, but it seems like you have turned off this option) |
Done, just added tests as well |
|
@Eclips4 who should I ping to get final review? Is it alright if I @ the blamed reviewers? |
I guess @vstinner is the right person to review this 😄 |
The same applies for the |
|
All checks except for mypy should pass. The issue reported by mypy is the following idiom try:
import posix
except ImportError:
posix = NoneSince this is used pretty widely throughout the standard library, I figured it should be left as is and the warning ignored. I could suppress the warning instead. Update: woah, I lied, something has changed since my last push. I'll fix these failures today. |
You can |
|
@AA-Turner merged your changes, happy to do anything else necessary, apologies for the inconvenience of the organization branch. Not sure where your comment went (I saw it in my email), but thanks for helping push this through. |
|
Thanks @noahbkim, no worries! Are you able to make the changes to We also recently changed our CLA bot, please can you click on the red 'not signed' and ensure everything is up to date? A |
|
I think I've messed up my branch, I'm going to attempt to squash everything so I can overwrite my commit email correctly. |
|
Ok, please ping for a review when you've sorted the branch out! If it's easier, feel free to just open a new PR, but a force push here should also work. A |
|
@AA-Turner I've squashed my changes and given everything a second pass. It looks like I caused some kind of regression in Zeroing I have about 6 tests failing locally, one of which prevents me from compiling with |
Lib/_pyrepl/windows_console.py
Outdated
| import nt | ||
| return nt._supports_virtual_terminal() | ||
| except (ImportError, AttributeError): | ||
| nt._supports_virtual_terminal() |
There was a problem hiding this comment.
| nt._supports_virtual_terminal() | |
| return nt._supports_virtual_terminal() |
This is missing a return and would never enable virtual terminal anymore.
|
@noahbkim I've pushed a series of commits to the
When these changes are addressed, we can run the buildbots on this PR and check that everything looks alright. Thanks! A |
|
ping @noahbkim (feature freeze is tomorrow) |
`-X importtime=2` feedback (Thanks so much, @AA-Turner)
|
@AA-Turner I am incredibly grateful for the work you've done to get this over the finish line. Thanks again, I'll have an eye on Github/my email all day in case you need anything else. |
|
🤖 New build scheduled with the buildbot fleet by @AA-Turner for commit 6d50b0c 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F118655%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
|
Buildbots show leaks in |
| -X importtime[=2]: show how long each import takes; use -X importtime=2 to\ | ||
| log imports of already-loaded modules; also PYTHONPROFILEIMPORTTIME\n\ |
There was a problem hiding this comment.
This is missing a newline:
| -X importtime[=2]: show how long each import takes; use -X importtime=2 to\ | |
| log imports of already-loaded modules; also PYTHONPROFILEIMPORTTIME\n\ | |
| -X importtime[=2]: show how long each import takes; use -X importtime=2 to\n\ | |
| log imports of already-loaded modules; also PYTHONPROFILEIMPORTTIME\n\ |
$ python3.14 --help-all
...
-X frozen_modules=[on|off]: whether to use frozen modules; the default is "on"
for installed Python and "off" for a local build;
also PYTHON_FROZEN_MODULES
-X importtime[=2]: show how long each import takes; use -X importtime=2 to log imports of already-loaded modules; also PYTHONPROFILEIMPORTTIME
-X int_max_str_digits=N: limit the size of int<->str conversions;
0 disables the limit; also PYTHONINTMAXSTRDIGITS
-X no_debug_ranges: don't include extra location information in code objects;
also PYTHONNODEBUGRANGES
-X perf: support the Linux "perf" profiler; also PYTHONPERFSUPPORT=1
...Please see PR #136391 for a fix.
As mentioned in the issue:
The updated example (
-Ximporttime=2):With
-Ximporttime:Discussion: https://discuss.python.org/t/x-importtrace-to-supplement-x-importtime-for-loaded-modules/23882/5
Prior email chain: https://mail.python.org/archives/list/[email protected]/thread/GEISYQ5BXWGKT33RWF77EOSOMMMFUBUS/
-X importtime=2for additional logging when an imported module is already loaded #102567