Title: Signature error for methods of class configparser.Interpolation
Type: compile error Stage:
Components: Argument Clinic Versions: Python 3.8, Python 3.7, Python 3.6
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: acue, asvetlov, larry, lukasz.langa, terry.reedy, yselivanov
Priority: normal Keywords:

Created on 2018-03-27 02:39 by acue, last changed 2019-07-29 18:35 by nanjekyejoannah.

Messages (2)
msg314493 - (view) Author: Arno-Can Uestuensoez (acue) Date: 2018-03-27 02:39
I am not sure whether this is already covered by an issue, it is present in 3.6.2 and 3.6.4.

The class Interpolation in the configparser module causes an exception:

  File "/opt/python/python-3.6.4/lib/python3.6/", line 1123, in _join_multiline_values
    name, val)
TypeError: before_read() missing 1 required positional argument: 'value'

This is due to the missing 'parser' parameter at the call of '' methods, also the case for several other method calls.

class Interpolation:
    """Dummy interpolation that passes the value through with no changes."""

    def before_read(self, parser, section, option, value):
        return value


Same for derived classes see e.g.

   class BasicInterpolation(Interpolation):

   class ExtendedInterpolation(Interpolation):

A work around seems to be:

- defining a dummy with changed signatures as parameter 'interpolation'
msg314720 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-03-30 21:11
Can you write a test case that raises the exception?  Use .read_string to create the CF instance, as that calls .read_file, which calls ._read, which calls ._join_multiline_values.

I wonder if we could delete .before_read and replace its call with the value passed and intended to be returned.  None of the Interpolation subclasses override it, and it is undocumented in both code and docs.  Ditto for .before_write.
Date User Action Args
2019-07-29 18:35:31nanjekyejoannahsetnosy: - nanjekyejoannah
2019-04-25 16:50:03nanjekyejoannahsetnosy: + nanjekyejoannah
2018-03-30 21:11:43terry.reedysetversions: + Python 3.7, Python 3.8
nosy: + terry.reedy

messages: + msg314720

components: - Build, asyncio
2018-03-27 07:07:49serhiy.storchakasetnosy: + lukasz.langa
2018-03-27 02:39:48acuecreate