GeezerVison is showing github.com — Make sure all deprecated items in importlib raise `DeprecationWarning` · Issue #121604 · python/cpython
Make sure all deprecated items in importlib raise DeprecationWarning #121604Activitychanged the title [-]Make sure all deprecated items inimportlib[/-] [+]Make sure all deprecated items in importlib raise `DeprecationWarning`[/+] on Jul 10, 2024rashansmith commented on Jul 13, 2024 I will try this one at europython :) tomasr8 commented on Jul 13, 2024 @rashansmith
To add deprecation warnings to module-level constants like DEBUG_BYTECODE_SUFFIXES I think you can use something like this:
|
def __getattr__(name): |
|
if name in ('January', 'February'): |
|
import warnings |
|
warnings.warn(f"The '{name}' attribute is deprecated, use '{name.upper()}' instead", |
|
DeprecationWarning, stacklevel=2) |
|
if name == 'January': |
|
return 1 |
|
else: |
|
return 2 |
|
|
|
raise AttributeError(f"module '{__name__}' has no attribute '{name}'") |
rashansmith commented on Jul 13, 2024 @tomasr8 thanks, I've been looking at this exact file as a reference! Can you confirm which of the tasks are already done? For example in _abc.py, in the load_module() function I can already see a "# Warning implemented in _load_module_shim()." message. willingc commented on Jul 13, 2024 Hi @brettcannon, I'm sitting at Europython sprints and working with @rashansmith. If you know if any of these have already been done, please let us know. Going to check the history :D bedevere-app commented on Jul 14, 2024 rashansmith commented on Jul 14, 2024 @brettcannon @willingc @tomasr8 I've created a PR for this issue. Please let me know if it looks good or any issues I should resolve. It is based on validating which deprecationwarnings have already been implemented from the list, and therefore working on the remainders:
brettcannon commented on Jul 15, 2024 @willingc @rashansmith I made the list from the docs based on a comment on another issue that made it sound like SourceFileLoader.load_module() wasn't raising an exception. I had not taken the time to verify anything. So thanks to @rashansmith for checking! I'll update the list based on what you found. tungol commented on Dec 16, 2024 Do we have it documented somewhere that importlib.abc.Loader is deprecated? The current importlib docs only say that importlib.abc.Loader.load_module is deprecated. tomasr8 commented on Dec 16, 2024 I don't think it is. At least there are no deprecation warnings in the code, just for load_module. tungol commented on Dec 16, 2024 That's what I thought, but I was thinking maybe I missed something given the warnings that the linked MR is adding. I'll bring the conversation over there. added 3 commits that reference this issue on Jan 15, 2025gh-121604: Make sure all deprecated items in importlib raise Deprecat… gh-121604: fix warnings in test_importlib.test_abc and test_importlib… tomasr8 commented on Feb 8, 2025 All of the items mentioned in the issue now raise warnings, I think we can close this issue? willingc commented on Feb 10, 2025 @brettcannon Since you opened the original issue, do you want to close this as completed? Thanks! brettcannon commented on Feb 11, 2025 Thanks to everyone who worked on this (especially @tomasr8 for pushing it over the finish line)! Reacted by Hugo van Kemenade Reacted by Tomas R.
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|