Skip to content

Commit 44bf22c

Browse files
committed
Add support for Python 3.12
Python 3.12 configparser removed SafeConfigParser. python/cpython#89336 (comment) leading to this issue ``` Traceback (most recent call last): File "/home/user/.cache/pypoetry/virtualenvs/chapter-marker-bSlZRqHo-py3.12/bin/pflake8", line 5, in <module> from pflake8.__main__ import main File "/home/user/.cache/pypoetry/virtualenvs/chapter-marker-bSlZRqHo-py3.12/lib/python3.12/site-packages/pflake8/__init__.py", line 54, in <module> class DivertingSafeConfigParser(ConfigParserTomlMixin, configparser.SafeConfigParser): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser' ```
1 parent 16b9dd4 commit 44bf22c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

pflake8/__init__.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,20 @@ class DivertingConfigParser(ConfigParserTomlMixin, configparser.ConfigParser):
5252
pass
5353

5454

55-
class DivertingSafeConfigParser(ConfigParserTomlMixin, configparser.SafeConfigParser):
56-
pass
55+
try:
56+
57+
class DivertingSafeConfigParser(
58+
ConfigParserTomlMixin, configparser.SafeConfigParser
59+
):
60+
pass
61+
62+
configparser.SafeConfigParser = DivertingSafeConfigParser
63+
except AttributeError:
64+
pass # does not exist on Python 3.12 (https://github.com/python/cpython/issues/89336#issuecomment-1094366625)
5765

5866

5967
configparser.RawConfigParser = DivertingRawConfigParser
6068
configparser.ConfigParser = DivertingConfigParser
61-
configparser.SafeConfigParser = DivertingSafeConfigParser
6269

6370

6471
class FixFilenames(ast.NodeTransformer):

0 commit comments

Comments
 (0)