This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Exception for uninstantiated interpolation (configparser)
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.11
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: iritkatriel, lukasz.langa, python-dev, scrummyin
Priority: normal Keywords: patch

Created on 2020-06-23 01:28 by scrummyin, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 21062 merged python-dev, 2020-06-23 01:29
Messages (4)
msg372137 - (view) Author: Brian Faherty (scrummyin) * Date: 2020-06-23 01:28
The ConfigParser in Lib has a parameter called `interpolation`, that expects an instance of a subclass of Interpolation. However, when ConfigParser is given an argument of an uninstantiated subclass of Interpolation, the __init__ function of ConfigParser accepts it and continues on. This results in a later receiving an error message along the lines of `TypeError: before_set()
missing 1 required positional argument: 'value'` when functions are later called on the ConfigParser instance. This delay between the feedback and the original mistake has led to a few bugs open on the issue tracker (https://bugs.python.org/issue26831 and https://bugs.python.org/issue26469. Both of which were closed after a quick and simple explanation, which can be easily implemented in the library itself. 

I've created a PR for this work and will attach it shortly. Please let me know if there is a better name for the exception other than `InterpolationIsNotInstantiatedError`. It seems long, but also in line with the other Errors already in configparser.
msg404731 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-10-22 08:52
This is not a bugfix so it should probably not be backported.
msg413398 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2022-02-17 12:18
New changeset fc115c9bde52a58b4fb9be2b80c3d6be8a4d2454 by Brian Faherty in branch 'main':
bpo-41086: Add exception for uninstantiated interpolation (configparser) (GH-21062)
https://github.com/python/cpython/commit/fc115c9bde52a58b4fb9be2b80c3d6be8a4d2454
msg413401 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2022-02-17 12:25
It's a behavioral change that tightens acceptable objects passed to `interpolation=`. In the past any object that provided the same interface as `Interpolation` instances would be accepted. No longer.

I think this is an acceptable compromise but it's definitely outside of the realm of backporting.

Thanks for your contribution, Brian! ✨ 🍰 ✨
History
Date User Action Args
2022-04-11 14:59:32adminsetgithub: 85258
2022-02-17 12:30:05lukasz.langasetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2022-02-17 12:25:11lukasz.langasetmessages: + msg413401
2022-02-17 12:18:13lukasz.langasetnosy: + lukasz.langa
messages: + msg413398
2021-10-22 08:52:51iritkatrielsetversions: + Python 3.11, - Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9, Python 3.10
nosy: + iritkatriel

messages: + msg404731

type: behavior -> enhancement
2020-06-23 01:29:42python-devsetkeywords: + patch
nosy: + python-dev

pull_requests: + pull_request20233
stage: patch review
2020-06-23 01:28:41scrummyincreate