Lazily import `traceback` in `logging`
Open
Nobody has claimed this yet.
performance
stdlib
topic-lazy-imports
type-feature
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Feature or enhancement
Proposal:
Currently, Lib/logging/__init__.py and Lib/logging/config.py eagerly import traceback, despite it only being used during exception handling. Making this import lazy avoids unnecessary startup overhead and improves initial loading time.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
- gh-150073
| Before 41ms |
After 28ms(~31% faster) |
|---|
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Lib/logging/init.py and Lib/logging/config.py, where traceback is currently imported eagerly. Inspect the exception-handling paths that use it and verify that traceback is imported only when needed. Confirm the startup-loading improvement and run the relevant logging tests before considering the change done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100