GeezerVison is showing github.com — Deprecate old backward compatible shims in configure_formatter()/handler(). · Issue #115032 · python/cpython
Deprecate old backward compatible shims in configure_formatter()/handler(). #115032DescriptionFeature or enhancement
Proposal:
DictConfigurator.configure_formatter() and configure_handler() contain workarounds for old configurations
|
#Name of parameter changed from fmt to format. |
|
#Retry with old name. |
|
#This is so that code can be used with older Python versions |
|
#(e.g. by Django) |
|
config['fmt'] = config.pop('format') |
|
config['()'] = factory |
|
result = self.configure_custom(config) |
|
if "'stream'" not in str(te): |
|
raise |
|
#The argument name changed from strm to stream |
|
#Retry with old name. |
|
#This is so that code can be used with older Python versions |
|
#(e.g. by Django) |
|
kwargs['strm'] = kwargs.pop('stream') |
|
result = factory(**kwargs) |
Django doesn't use fmt and strm for many years. I think both can be deprecated and removed.
I'd like to prepare a patch, if accepted.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs
Activitysobolevn commented on Feb 7, 2024 Reacted by Mariusz Felisiak vsajip commented on Feb 7, 2024 I realise Django doesn't use them any more, but what about other code / users? I wouldn't strongly object to removing them, but there's a chance that any such change might need to be reverted if there are complaints that it breaks existing code somewhere. And, of course, no backporting of any such change. Perhaps deprecate, but not remove immediately - rather, in line with the usual deprecation cycle. It's just a little wart in the current code, after all. felixxm commented on Feb 7, 2024 ContributorAuthor More actions
Perhaps deprecate, but not remove immediately - rather, in line with the usual deprecation cycle.
Yes that's what I was trying to propose. We have an existing and straightforward upgrade path i.e. use format instead of fmt and use stream instead of strm, so it seems fine to deprecate the current workarounds and remove them in 3.15 (I guess 🤔).
It's just a little wart in the current code, after all.
True, but they become an issue when there are dozens of such workarounds ("death by a thousand cuts"). vsajip commented on Feb 7, 2024
become an issue when there are dozens of such workarounds
Well, it's not that bad IMO, but I'll look at a PR that does deprecation. Reacted by Mariusz Felisiak felixxm commented on Feb 11, 2024 ContributorAuthor More actions While preparing a patch, I noticed that we can deprecate strm, however, fmt is still needed because config is passed directly to the custom formatters and Formatter except fmt instead of format. added a commit that references this issue on Feb 13, 2024gh-115032: Update DictConfigurator.configure_formatter() comment abou… added a commit that references this issue on Apr 27, 2025gh-115032: Deprecate support for custom logging handlers with 'strm' …
MetadataMetadataStatusShow more project fields
DevelopmentNo branches or pull requestsIssue actions
|