--------------------
Added
^^^^^
- Support for user-defined generic types (`366
<https://github.com/omni-us/jsonargparse/issues/366>`__).
- New function ``extend_base_type`` for easy creation and registering of custom
types that extend a base type (`195
<https://github.com/omni-us/jsonargparse/issue/195>`__).
- Support for ``Annotated`` types either ignoring the metadata or using it for
validation in case of `pydantic types
<https://docs.pydantic.dev/latest/api/types/>`__ (`#384
<https://github.com/omni-us/jsonargparse/issue/384>`__).
- Support for Python 3.12.
Fixed
^^^^^
- ``--print_config`` fails when parser has shallow links.
- Argument links unnecessarily applied when ``--print_config`` used and parser
has subcommands (`311 <https://github.com/omni-us/jsonargparse/issue/311>`__).
- Parsing fails when data type is a ``Callable`` with multiple input arguments
(`372 <https://github.com/omni-us/jsonargparse/issues/372>`__).
- Postponed annotations not working for dataclasses.
- Unsupported pop/get default incorrectly sets default as ``None``
(`lightning18616
<https://github.com/Lightning-AI/lightning/issues/18616>`__).
- Pydantic models and dataclasses not working for ``pydantic>=2.0.0`` (`361
<https://github.com/omni-us/jsonargparse/issue/361>`__).
Changed
^^^^^^^
- Provide a more informative error message to remind user to select
and provide a subcommand when a subcommand is required but not
given (`371 <https://github.com/omni-us/jsonargparse/pull/371>`__).
- Now when an argument link ``compute_fn`` fails, the error message will say
this (`311 <https://github.com/omni-us/jsonargparse/issue/311>`__).
- ``add_subclass_arguments`` now shows a better error message when an empty
tuple is given (`lightning18546
<https://github.com/Lightning-AI/lightning/issues/18546>`__).
- Document the requirements for creating and using custom types (`195
<https://github.com/omni-us/jsonargparse/issue/195>`__).
- Parameters with default and without type, now get as type
``Union[type(default), Any]``.
- Removed support for python 3.6.