Skip to content

Commit 9107658

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 9107658

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
python-version: ["3.8", "3.9", "3.10", "3.11"]
10+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
1111
name: Python ${{ matrix.python-version }} testing
1212
steps:
1313
- uses: actions/checkout@v3

pflake8/__init__.py

+10-3
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)