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