nedbat / scriv

Changelog management tool

Home Page:https://scriv.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

md_header_level should be read as an int in toml files

agateau-gg opened this issue · comments

Given this pyproject.toml file:

[tool.scriv]
format = "md"
md_header_level = 2

scriv create fails with that error message:

Traceback (most recent call last):
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/bin/scriv", line 8, in <module>
    sys.exit(cli())
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/scriv/create.py", line 35, in create
    scriv = Scriv()
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/scriv/scriv.py", line 26, in __init__
    self.config = Config.read()
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/scriv/config.py", line 290, in read
    attr.validate(config._options)
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/attr/_make.py", line 1964, in validate
    v(inst, a, getattr(inst, a.name))
  File "/home/agateau/.local/share/virtualenvs/ddeb52ca26ac4f6/lib/python3.10/site-packages/attr/validators.py", line 149, in __call__
    if not self.match_func(value):
TypeError: expected string or bytes-like object

Right now the work-around is to declare md_header_level as a string, like this:

[tool.scriv]
format = "md"
md_header_level = "2"