Skip to content

TOMLKitError when generating TOML config with tomlkit 0.11.8 #8632

@ltm

Description

@ltm

Bug description

pylint fails to generate a TOML config using --generate-toml-config after upgrading tomlkit from 0.11.7 to 0.11.8.

Configuration

No response

Command used

pylint --generate-toml-config

Pylint output

Traceback (most recent call last):
  File "/Users/ltm/venv/bin/pylint", line 8, in <module>
    sys.exit(run_pylint())
             ^^^^^^^^^^^^
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/__init__.py", line 36, in run_pylint
    PylintRun(argv or sys.argv[1:])
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/lint/run.py", line 169, in __init__
    args = _config_initialization(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/config/config_initialization.py", line 75, in _config_initialization
    parsed_args_list = linter._parse_command_line_configuration(args_list)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/config/arguments_manager.py", line 278, in _parse_command_line_configuration
    self.config, parsed_args = self._arg_parser.parse_known_args(
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/argparse.py", line 1895, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/argparse.py", line 2107, in _parse_known_args
    start_index = consume_optional(start_index)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/argparse.py", line 2047, in consume_optional
    take_action(action, args, option_string)
  File "/opt/homebrew/Cellar/python@3.11/3.11.2_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/argparse.py", line 1971, in take_action
    action(self, namespace, argument_values, option_string)
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/config/callback_actions.py", line 286, in __call__
    print(self.run.linter._generate_config_file())
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ltm/venv/lib/python3.11/site-packages/pylint/config/arguments_manager.py", line 708, in _generate_config_file
    toml_doc.add(tomlkit.key(["tool", "pylint"]), pylint_tool_table)
  File "/Users/ltm/venv/lib/python3.11/site-packages/tomlkit/container.py", line 114, in add
    return self.append(key, item)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ltm/venv/lib/python3.11/site-packages/tomlkit/container.py", line 157, in append
    self._handle_dotted_key(key, item)
  File "/Users/ltm/venv/lib/python3.11/site-packages/tomlkit/container.py", line 118, in _handle_dotted_key
    raise TOMLKitError("Can't add a table to a dotted key")
tomlkit.exceptions.TOMLKitError: Can't add a table to a dotted key

Expected behavior

pylint should print the generated TOML config.

Pylint version

pylint 2.17.3
astroid 2.15.4
Python 3.11.2 (main, Feb 16 2023, 02:55:59) [Clang 14.0.0 (clang-1400.0.29.202)]

OS / Environment

macOS 13.3.1 (22E261)

Additional dependencies

astroid==2.15.4
dill==0.3.6
isort==5.12.0
lazy-object-proxy==1.9.0
mccabe==0.7.0
platformdirs==3.4.0
pylint==2.17.3
tomlkit==0.11.8
wrapt==1.15.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions