Allow NewType
Using NewTypes will lead to crashes in cli
from typing import NewType
import click
import typed_settings as ts
Spam = NewType("Spam", int)
@ts.settings
class Settings:
spams: Spam = ts.option(
default=Spam(42), help="Amount of SPAM required"
)
@click.command()
@ts.click_options(Settings, "example")
def cli(settings: Settings) -> None:
"""Example app"""
print(settings)
if __name__ == "__main__":
cli()
Leads to
File "../lib/python3.11/site-packages/typed_settings/cli_click.py", line 260, in wrap
option = _mk_option(
^^^^^^^^^^^
File "../lib/python3.11/site-packages/typed_settings/cli_click.py", line 598, in _mk_option
kwargs = type_args_maker.get_kwargs(oinfo.cls, default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "../lib/python3.11/site-packages/typed_settings/cli_utils.py", line 309, in get_kwargs
if issubclass(otype, target_type):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: issubclass() arg 1 must be a class
Edited by Carli* Freudenberg