-
-
Notifications
You must be signed in to change notification settings - Fork 300
Open
Description
Description
tomlkit
used to not allowed empty keys in toml file, but it has been fixed in #17.
Empty key is valid in pyproject.toml, see link:
[tool.setuptools]
# ...
package-dir = {"" = "src"}
# directory containing all the packages (e.g. src/mypkg1, src/mypkg2)
# OR
[tool.setuptools.package-dir]
mypkg = "lib"
# mypkg.module corresponds to lib/module.py
"mypkg.subpkg1" = "lib1"
# mypkg.subpkg1.module1 corresponds to lib1/module1.py
"mypkg.subpkg2" = "lib2"
# mypkg.subpkg2.module2 corresponds to lib2/module2.py
# ...
Steps to reproduce
- A python package with below lines in
pyproject.toml
# pyproject.toml
[tool.setuptools]
package-dir = { "" = "src" }
- Add
commitizen check
into pre-commit hooks
- repo: https://github.com/commitizen-tools/commitizen
rev: v1.17.0
hooks:
- id: commitizen
stages: [commit-msg]
- Run pre-commit
pre-commit run --all-files
Current behavior
commitizen check.........................................................Failed
- hook id: commitizen
- exit code: 1
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "...\pre-commit\repoztsxtdvg\py_env-python3\Scripts\cz.EXE\__main__.py", line 7, in <module>
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\commitizen\cli.py", line 179, in main
conf = config.read_cfg()
^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\commitizen\config\__init__.py", line 60, in read_cfg
_conf = TomlConfig(data=data, path=filename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\commitizen\config\toml_config.py", line 10, in __init__
self._parse_setting(data)
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\commitizen\config\toml_config.py", line 39, in _parse_setting
doc = parse(data)
^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\api.py", line 51, in parse
return Parser(string).parse()
^^^^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 153, in parse
key, value = self._parse_table()
^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 1056, in _parse_table
item = self._parse_item()
^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 302, in _parse_item
return self._parse_key_value(True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 387, in _parse_key_value
val = self._parse_value()
^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 526, in _parse_value
return self._parse_inline_table()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 710, in _parse_inline_table
key, val = self._parse_key_value(False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "...\pre-commit\repoztsxtdvg\py_env-python3\Lib\site-packages\tomlkit\parser.py", line 371, in _parse_key_value
raise self.parse_error(EmptyKeyError)
tomlkit.exceptions.EmptyKeyError: Empty key at line 36 col 18
### Desired behavior
See above
### Screenshots
_No response_
### Environment
Commitizen Version: 4.8.3
Python Version: 3.10.16 (main, Mar 17 2025, 20:54:03) [MSC v.1943 64 bit (AMD64)]
Operating System: Windows