Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency update Scheduled weekly dependency update for week 25 #184

Closed
wants to merge 18 commits into from

Conversation

pyup-bot
Copy link
Collaborator

Update PyYAML from 5.1.1 to 6.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update Click from 7.0 to 8.1.3.

Changelog

8.1.3

-------------

Released 2022-04-28

-   Use verbose form of ``typing.Callable`` for ``command`` and
 ``group``. :issue:`2255`
-   Show error when attempting to create an option with
 ``multiple=True, is_flag=True``. Use ``count`` instead.
 :issue:`2246`

8.1.2

-------------

Released 2022-03-31

-   Fix error message for readable path check that was mixed up with the
 executable check. :pr:`2236`
-   Restore parameter order for ``Path``, placing the ``executable``
 parameter at the end. It is recommended to use keyword arguments
 instead of positional arguments. :issue:`2235`

8.1.1

-------------

Released 2022-03-30

-   Fix an issue with decorator typing that caused type checking to
 report that a command was not callable. :issue:`2227`

8.1.0

-------------

Released 2022-03-28

-   Drop support for Python 3.6. :pr:`2129`
-   Remove previously deprecated code. :pr:`2130`

 -   ``Group.resultcallback`` is renamed to ``result_callback``.
 -   ``autocompletion`` parameter to ``Command`` is renamed to
     ``shell_complete``.
 -   ``get_terminal_size`` is removed, use
     ``shutil.get_terminal_size`` instead.
 -   ``get_os_args`` is removed, use ``sys.argv[1:]`` instead.

-   Rely on :pep:`538` and :pep:`540` to handle selecting UTF-8 encoding
 instead of ASCII. Click's locale encoding detection is removed.
 :issue:`2198`
-   Single options boolean flags with ``show_default=True`` only show
 the default if it is ``True``. :issue:`1971`
-   The ``command`` and ``group`` decorators can be applied with or
 without parentheses. :issue:`1359`
-   The ``Path`` type can check whether the target is executable.
 :issue:`1961`
-   ``Command.show_default`` overrides ``Context.show_default``, instead
 of the other way around. :issue:`1963`
-   Parameter decorators and ``group`` handles ``cls=None`` the same as
 not passing ``cls``. ``option`` handles ``help=None`` the same as
 not passing ``help``. :issue:`1959`
-   A flag option with ``required=True`` requires that the flag is
 passed instead of choosing the implicit default value. :issue:`1978`
-   Indentation in help text passed to ``Option`` and ``Command`` is
 cleaned the same as using the ``option`` and ``command``
 decorators does. A command's ``epilog`` and ``short_help`` are also
 processed. :issue:`1985`
-   Store unprocessed ``Command.help``, ``epilog`` and ``short_help``
 strings. Processing is only done when formatting help text for
 output. :issue:`2149`
-   Allow empty str input for ``prompt()`` when
 ``confirmation_prompt=True`` and ``default=""``. :issue:`2157`
-   Windows glob pattern expansion doesn't fail if a value is an invalid
 pattern. :issue:`2195`
-   It's possible to pass a list of ``params`` to ``command``. Any
 params defined with decorators are appended to the passed params.
 :issue:`2131`.
-   ``command`` decorator is annotated as returning the correct type if
 a ``cls`` argument is used. :issue:`2211`
-   A ``Group`` with ``invoke_without_command=True`` and ``chain=False``
 will invoke its result callback with the group function's return
 value. :issue:`2124`
-   ``to_info_dict`` will not fail if a ``ParamType`` doesn't define a
 ``name``. :issue:`2168`
-   Shell completion prioritizes option values with option prefixes over
 new options. :issue:`2040`
-   Options that get an environment variable value using
 ``autoenvvar_prefix`` treat an empty value as ``None``, consistent
 with a direct ``envvar``. :issue:`2146`

8.0.4

-------------

Released 2022-02-18

-   ``open_file`` recognizes ``Path("-")`` as a standard stream, the
 same as the string ``"-"``. :issue:`2106`
-   The ``option`` and ``argument`` decorators preserve the type
 annotation of the decorated function. :pr:`2155`
-   A callable default value can customize its help text by overriding
 ``__str__`` instead of always showing ``(dynamic)``. :issue:`2099`
-   Fix a typo in the Bash completion script that affected file and
 directory completion. If this script was generated by a previous
 version, it should be regenerated. :issue:`2163`
-   Fix typing for ``echo`` and ``secho`` file argument.
 :issue:`2174, 2185`

8.0.3

-------------

Released 2021-10-10

-   Fix issue with ``Path(resolve_path=True)`` type creating invalid
 paths. :issue:`2088`
-   Importing ``readline`` does not cause the ``confirm()`` prompt to
 disappear when pressing backspace. :issue:`2092`
-   Any default values injected by ``invoke()`` are cast to the
 corresponding parameter's type. :issue:`2089, 2090`

8.0.2

-------------

Released 2021-10-08

-   ``is_bool_flag`` is not set to ``True`` if ``is_flag`` is ``False``.
 :issue:`1925`
-   Bash version detection is locale independent. :issue:`1940`
-   Empty ``default`` value is not shown for ``multiple=True``.
 :issue:`1969`
-   Fix shell completion for arguments that start with a forward slash
 such as absolute file paths. :issue:`1929`
-   ``Path`` type with ``resolve_path=True`` resolves relative symlinks
 to be relative to the containing directory. :issue:`1921`
-   Completion does not skip Python's resource cleanup when exiting,
 avoiding some unexpected warning output. :issue:`1738, 2017`
-   Fix type annotation for ``type`` argument in ``prompt`` function.
 :issue:`2062`
-   Fix overline and italic styles, which were incorrectly added when
 adding underline. :pr:`2058`
-   An option with ``count=True`` will not show "[x>=0]" in help text.
 :issue:`2072`
-   Default values are not cast to the parameter type twice during
 processing. :issue:`2085`
-   Options with ``multiple`` and ``flag_value`` use the flag value
 instead of leaving an internal placeholder. :issue:`2001`

8.0.1

-------------

Released 2021-05-19

-   Mark top-level names as exported so type checking understand imports
 in user projects. :issue:`1879`
-   Annotate ``Context.obj`` as ``Any`` so type checking allows all
 operations on the arbitrary object. :issue:`1885`
-   Fix some types that weren't available in Python 3.6.0. :issue:`1882`
-   Fix type checking for iterating over ``ProgressBar`` object.
 :issue:`1892`
-   The ``importlib_metadata`` backport package is installed on Python <
 3.8. :issue:`1889`
-   Arguments with ``nargs=-1`` only use env var value if no command
 line values are given. :issue:`1903`
-   Flag options guess their type from ``flag_value`` if given, like
 regular options do from ``default``. :issue:`1886`
-   Added documentation that custom parameter types may be passed
 already valid values in addition to strings. :issue:`1898`
-   Resolving commands returns the name that was given, not
 ``command.name``, fixing an unintended change to help text and
 ``default_map`` lookups. When using patterns like ``AliasedGroup``,
 override ``resolve_command`` to change the name that is returned if
 needed. :issue:`1895`
-   If a default value is invalid, it does not prevent showing help
 text. :issue:`1889`
-   Pass ``windows_expand_args=False`` when calling the main command to
 disable pattern expansion on Windows. There is no way to escape
 patterns in CMD, so if the program needs to pass them on as-is then
 expansion must be disabled. :issue:`1901`

8.0.0

-------------

Released 2021-05-11

-   Drop support for Python 2 and 3.5.
-   Colorama is always installed on Windows in order to provide style
 and color support. :pr:`1784`
-   Adds a repr to Command, showing the command name for friendlier
 debugging. :issue:`1267`, :pr:`1295`
-   Add support for distinguishing the source of a command line
 parameter. :issue:`1264`, :pr:`1329`
-   Add an optional parameter to ``ProgressBar.update`` to set the
 ``current_item``. :issue:`1226`, :pr:`1332`
-   ``version_option`` uses ``importlib.metadata`` (or the
 ``importlib_metadata`` backport) instead of ``pkg_resources``. The
 version is detected based on the package name, not the entry point
 name. The Python package name must match the installed package
 name, or be passed with ``package_name=``. :issue:`1582`
-   If validation fails for a prompt with ``hide_input=True``, the value
 is not shown in the error message. :issue:`1460`
-   An ``IntRange`` or ``FloatRange`` option shows the accepted range in
 its help text. :issue:`1525`, :pr:`1303`
-   ``IntRange`` and ``FloatRange`` bounds can be open (``<``) instead
 of closed (``<=``) by setting ``min_open`` and ``max_open``. Error
 messages have changed to reflect this. :issue:`1100`
-   An option defined with duplicate flag names (``"--foo/--foo"``)
 raises a ``ValueError``. :issue:`1465`
-   ``echo()`` will not fail when using pytest's ``capsys`` fixture on
 Windows. :issue:`1590`
-   Resolving commands returns the canonical command name instead of the
 matched name. This makes behavior such as help text and
 ``Context.invoked_subcommand`` consistent when using patterns like
 ``AliasedGroup``. :issue:`1422`
-   The ``BOOL`` type accepts the values "on" and "off". :issue:`1629`
-   A ``Group`` with ``invoke_without_command=True`` will always invoke
 its result callback. :issue:`1178`
-   ``nargs == -1`` and ``nargs > 1`` is parsed and validated for
 values from environment variables and defaults. :issue:`729`
-   Detect the program name when executing a module or package with
 ``python -m name``. :issue:`1603`
-   Include required parent arguments in help synopsis of subcommands.
 :issue:`1475`
-   Help for boolean flags with ``show_default=True`` shows the flag
 name instead of ``True`` or ``False``. :issue:`1538`
-   Non-string objects passed to ``style()`` and ``secho()`` will be
 converted to string. :pr:`1146`
-   ``edit(require_save=True)`` will detect saves for editors that exit
 very fast on filesystems with 1 second resolution. :pr:`1050`
-   New class attributes make it easier to use custom core objects
 throughout an entire application. :pr:`938`

 -   ``Command.context_class`` controls the context created when
     running the command.
 -   ``Context.invoke`` creates new contexts of the same type, so a
     custom type will persist to invoked subcommands.
 -   ``Context.formatter_class`` controls the formatter used to
     generate help and usage.
 -   ``Group.command_class`` changes the default type for
     subcommands with ``group.command()``.
 -   ``Group.group_class`` changes the default type for subgroups
     with ``group.group()``. Setting it to ``type`` will create
     subgroups of the same type as the group itself.
 -   Core objects use ``super()`` consistently for better support of
     subclassing.

-   Use ``Context.with_resource()`` to manage resources that would
 normally be used in a ``with`` statement, allowing them to be used
 across subcommands and callbacks, then cleaned up when the context
 ends. :pr:`1191`
-   The result object returned by the test runner's ``invoke()`` method
 has a ``return_value`` attribute with the value returned by the
 invoked command. :pr:`1312`
-   Required arguments with the ``Choice`` type show the choices in
 curly braces to indicate that one is required (``{a|b|c}``).
 :issue:`1272`
-   If only a name is passed to ``option()``, Click suggests renaming it
 to ``--name``. :pr:`1355`
-   A context's ``show_default`` parameter defaults to the value from
 the parent context. :issue:`1565`
-   ``click.style()`` can output 256 and RGB color codes. Most modern
 terminals support these codes. :pr:`1429`
-   When using ``CliRunner.invoke()``, the replaced ``stdin`` file has
 ``name`` and ``mode`` attributes. This lets ``File`` options with
 the ``-`` value match non-testing behavior. :issue:`1064`
-   When creating a ``Group``, allow passing a list of commands instead
 of a dict. :issue:`1339`
-   When a long option name isn't valid, use ``difflib`` to make better
 suggestions for possible corrections. :issue:`1446`
-   Core objects have a ``to_info_dict()`` method. This gathers
 information about the object's structure that could be useful for a
 tool generating user-facing documentation. To get the structure of
 an entire CLI, use ``Context(cli).to_info_dict()``. :issue:`461`
-   Redesign the shell completion system. :issue:`1484`, :pr:`1622`

 -   Support Bash >= 4.4, Zsh, and Fish, with the ability for
     extensions to add support for other shells.
 -   Allow commands, groups, parameters, and types to override their
     completions suggestions.
 -   Groups complete the names commands were registered with, which
     can differ from the name they were created with.
 -   The ``autocompletion`` parameter for options and arguments is
     renamed to ``shell_complete``. The function must take
     ``ctx, param, incomplete``, must do matching rather than return
     all values, and must return a list of strings or a list of
     ``CompletionItem``. The old name and behavior is deprecated and
     will be removed in 8.1.
 -   The env var values used to start completion have changed order.
     The shell now comes first, such as ``{shell}_source`` rather
     than ``source_{shell}``, and is always required.

-   Completion correctly parses command line strings with incomplete
 quoting or escape sequences. :issue:`1708`
-   Extra context settings (``obj=...``, etc.) are passed on to the
 completion system. :issue:`942`
-   Include ``--help`` option in completion. :pr:`1504`
-   ``ParameterSource`` is an ``enum.Enum`` subclass. :issue:`1530`
-   Boolean and UUID types strip surrounding space before converting.
 :issue:`1605`
-   Adjusted error message from parameter type validation to be more
 consistent. Quotes are used to distinguish the invalid value.
 :issue:`1605`
-   The default value for a parameter with ``nargs`` > 1 and
 ``multiple=True`` must be a list of tuples. :issue:`1649`
-   When getting the value for a parameter, the default is tried in the
 same section as other sources to ensure consistent processing.
 :issue:`1649`
-   All parameter types accept a value that is already the correct type.
 :issue:`1649`
-   For shell completion, an argument is considered incomplete if its
 value did not come from the command line args. :issue:`1649`
-   Added ``ParameterSource.PROMPT`` to track parameter values that were
 prompted for. :issue:`1649`
-   Options with ``nargs`` > 1 no longer raise an error if a default is
 not given. Parameters with ``nargs`` > 1 default to ``None``, and
 parameters with ``multiple=True`` or ``nargs=-1`` default to an
 empty tuple. :issue:`472`
-   Handle empty env vars as though the option were not passed. This
 extends the change introduced in 7.1 to be consistent in more cases.
 :issue:`1285`
-   ``Parameter.get_default()`` checks ``Context.default_map`` to
 handle overrides consistently in help text, ``invoke()``, and
 prompts. :issue:`1548`
-   Add ``prompt_required`` param to ``Option``. When set to ``False``,
 the user will only be prompted for an input if no value was passed.
 :issue:`736`
-   Providing the value to an option can be made optional through
 ``is_flag=False``, and the value can instead be prompted for or
 passed in as a default value.
 :issue:`549, 736, 764, 921, 1015, 1618`
-   Fix formatting when ``Command.options_metavar`` is empty. :pr:`1551`
-   Revert adding space between option help text that wraps.
 :issue:`1831`
-   The default value passed to ``prompt`` will be cast to the correct
 type like an input value would be. :pr:`1517`
-   Automatically generated short help messages will stop at the first
 ending of a phrase or double linebreak. :issue:`1082`
-   Skip progress bar render steps for efficiency with very fast
 iterators by setting ``update_min_steps``. :issue:`676`
-   Respect ``case_sensitive=False`` when doing shell completion for
 ``Choice`` :issue:`1692`
-   Use ``mkstemp()`` instead of ``mktemp()`` in pager implementation.
 :issue:`1752`
-   If ``Option.show_default`` is a string, it is displayed even if
 ``default`` is ``None``. :issue:`1732`
-   ``click.get_terminal_size()`` is deprecated and will be removed in
 8.1. Use :func:`shutil.get_terminal_size` instead. :issue:`1736`
-   Control the location of the temporary directory created by
 ``CLIRunner.isolated_filesystem`` by passing ``temp_dir``. A custom
 directory will not be removed automatically. :issue:`395`
-   ``click.confirm()`` will prompt until input is given if called with
 ``default=None``. :issue:`1381`
-   Option prompts validate the value with the option's callback in
 addition to its type. :issue:`457`
-   ``confirmation_prompt`` can be set to a custom string. :issue:`723`
-   Allow styled output in Jupyter on Windows. :issue:`1271`
-   ``style()`` supports the ``strikethrough``, ``italic``, and
 ``overline`` styles. :issue:`805, 1821`
-   Multiline marker is removed from short help text. :issue:`1597`
-   Restore progress bar behavior of echoing only the label if the file
 is not a TTY. :issue:`1138`
-   Progress bar output is shown even if execution time is less than 0.5
 seconds. :issue:`1648`
-   Progress bar ``item_show_func`` shows the current item, not the
 previous item. :issue:`1353`
-   The ``Path`` param type can be passed ``path_type=pathlib.Path`` to
 return a path object instead of a string. :issue:`405`
-   ``TypeError`` is raised when parameter with ``multiple=True`` or
 ``nargs > 1`` has non-iterable default. :issue:`1749`
-   Add a ``pass_meta_key`` decorator for passing a key from
 ``Context.meta``. This is useful for extensions using ``meta`` to
 store information. :issue:`1739`
-   ``Path`` ``resolve_path`` resolves symlinks on Windows Python < 3.8.
 :issue:`1813`
-   Command deprecation notice appears at the start of the help text, as
 well as in the short help. The notice is not in all caps.
 :issue:`1791`
-   When taking arguments from ``sys.argv`` on Windows, glob patterns,
 user dir, and env vars are expanded. :issue:`1096`
-   Marked messages shown by the CLI with ``gettext()`` to allow
 applications to translate Click's built-in strings. :issue:`303`
-   Writing invalid characters  to ``stderr`` when using the test runner
 does not raise a ``UnicodeEncodeError``. :issue:`848`
-   Fix an issue where ``readline`` would clear the entire ``prompt()``
 line instead of only the input when pressing backspace. :issue:`665`
-   Add all kwargs passed to ``Context.invoke()`` to ``ctx.params``.
 Fixes an inconsistency when nesting ``Context.forward()`` calls.
 :issue:`1568`
-   The ``MultiCommand.resultcallback`` decorator is renamed to
 ``result_callback``. The old name is deprecated. :issue:`1160`
-   Fix issues with ``CliRunner`` output when using ``echo_stdin=True``.
 :issue:`1101`
-   Fix a bug of ``click.utils.make_default_short_help`` for which the
 returned string could be as long as ``max_width + 3``. :issue:`1849`
-   When defining a parameter, ``default`` is validated with
 ``multiple`` and ``nargs``. More validation is done for values being
 processed as well. :issue:`1806`
-   ``HelpFormatter.write_text`` uses the full line width when wrapping
 text. :issue:`1871`

7.1.2

-------------

Released 2020-04-27

-   Revert applying shell quoting to commands for ``echo_with_pager``
 and ``edit``. This was intended to allows spaces in commands, but
 caused issues if the string was actually a command and arguments, or
 on Windows. Instead, the string must be quoted manually as it should
 appear on the command line. :issue:`1514`

7.1.1

-------------

Released 2020-03-09

-   Fix ``ClickException`` output going to stdout instead of stderr.
 :issue:`1495`

7.1

-----------

Released 2020-03-09

-   Fix PyPI package name, "click" is lowercase again.
-   Fix link in ``unicode_literals`` error message. :pr:`1151`
-   Add support for colored output on UNIX Jupyter notebooks.
 :issue:`1185`
-   Operations that strip ANSI controls will strip the cursor hide/show
 sequences. :issue:`1216`
-   Remove unused compat shim for ``bytes``. :pr:`1195`
-   Expand testing around termui, especially getchar on Windows.
 :issue:`1116`
-   Fix output on Windows Python 2.7 built with MSVC 14. :pr:`1342`
-   Fix ``OSError`` when running in MSYS2. :issue:`1338`
-   Fix ``OSError`` when redirecting to ``NUL`` stream on Windows.
 :issue:`1065`
-   Fix memory leak when parsing Unicode arguments on Windows.
 :issue:`1136`
-   Fix error in new AppEngine environments. :issue:`1462`
-   Always return one of the passed choices for ``click.Choice``
 :issue:`1277`, :pr:`1318`
-   Add ``no_args_is_help`` option to ``click.Command``, defaults to
 False :pr:`1167`
-   Add ``show_default`` parameter to ``Context`` to enable showing
 defaults globally. :issue:`1018`
-   Handle ``env MYPATH=''`` as though the option were not passed.
 :issue:`1196`
-   It is once again possible to call ``next(bar)`` on an active
 progress bar instance. :issue:`1125`
-   ``open_file`` with ``atomic=True`` retains permissions of existing
 files and respects the current umask for new files. :issue:`1376`
-   When using the test ``CliRunner`` with ``mix_stderr=False``, if
 ``result.stderr`` is empty it will not raise a ``ValueError``.
 :issue:`1193`
-   Remove the unused ``mix_stderr`` parameter from
 ``CliRunner.invoke``. :issue:`1435`
-   Fix ``TypeError`` raised when using bool flags and specifying
 ``type=bool``. :issue:`1287`
-   Newlines in option help text are replaced with spaces before
 re-wrapping to avoid uneven line breaks. :issue:`834`
-   ``MissingParameter`` exceptions are printable in the Python
 interpreter. :issue:`1139`
-   Fix how default values for file-type options are shown during
 prompts. :issue:`914`
-   Fix environment variable automatic generation for commands
 containing ``-``. :issue:`1253`
-   Option help text replaces newlines with spaces when rewrapping, but
 preserves paragraph breaks, fixing multiline formatting.
 :issue:`834, 1066, 1397`
-   Option help text that is wrapped adds an extra newline at the end to
 distinguish it from the next option. :issue:`1075`
-   Consider ``sensible-editor`` when determining the editor to use for
 ``click.edit()``. :pr:`1469`
-   Arguments to system calls such as the executable path passed to
 ``click.edit`` can contains spaces. :pr:`1470`
-   Add ZSH completion autoloading and error handling. :issue:`1348`
-   Add a repr to ``Command``, ``Group``, ``Option``, and ``Argument``,
 showing the name for friendlier debugging. :issue:`1267`
-   Completion doesn't consider option names if a value starts with
 ``-`` after the ``--`` separator. :issue:`1247`
-   ZSH completion escapes special characters in values. :pr:`1418`
-   Add completion support for Fish shell. :pr:`1423`
-   Decoding bytes option values falls back to UTF-8 in more cases.
 :pr:`1468`
-   Make the warning about old 2-arg parameter callbacks a deprecation
 warning, to be removed in 8.0. This has been a warning since Click
 2.0. :pr:`1492`
-   Adjust error messages to standardize the types of quotes used so
 they match error messages from Python.
Links

Update marshmallow from 2.19.4 to 3.16.0.

Changelog

3.16.0

*******************

Features:

- Raise `ValueError` if an invalid value is passed to the ``unknown`` argument (:issue:`1721`, :issue:`1732`).
Thanks :user:`sirosen` for the PR.

Other changes:

- Set lower bound for `packaging` requirement (:issue:`1957`).
Thanks :user:`MatthewNicolTR` for reporting and thanks :user:`sirosen` for the PR.
- Improve warning messages by passing `stacklevel` (:pr:`1986`).
Thanks :user:`tirkarthi` for the PR.

3.15.0

*******************

Features:

- Allow passing a `dict` to `fields.Nested` (:pr:`1935`).
Thanks :user:`sirosen` for the PR.

Other changes:

- Address distutils deprecation warning in Python 3.10 (:pr:`1903`).
Thanks :user:`kkirsche` for the PR.
- Add py310 to black target-version (:pr:`1921`).
- Drop support for Python 3.6 (:pr:`1923`).
- Use postponed evaluation of annotations (:pr:`1932`).
Thanks :user:`Isira-Seneviratne` for the PR.

3.14.1

*******************

Bug fixes:

- Fix publishing type hints per `PEP-561 <https://www.python.org/dev/peps/pep-0561/>`_
(:pr:`1905`). Thanks :user:`bwindsor` for the catch and patch.

3.14.0

*******************

Bug fixes:

- Fix ``fields.TimeDelta`` serialization precision (:issue:`1865`).
Thanks :user:`yarsanich` for reporting.

Other changes:

- Fix type-hints for data arg in Schema.validate to accept
list of dictionaries (:issue:`1790`, :pr:`1868`).
Thanks  :user:`yourun-proger` for PR.
- Improve warning when passing metadata as keyword arguments (:pr:`1882`).
Thanks :user:`traherom` for the PR.
- Don't build universal wheels. We don't support Python 2 anymore.
(:issue:`1860`) Thanks :user:`YKdvd` for reporting.
- Make the build reproducible (:pr:`1862`).
- Drop support for Python 3.5 (:pr:`1863`).
- Test against Python 3.10 (:pr:`1888`).

3.13.0

*******************

Features:

- Replace ``missing``/``default`` field parameters with
``load_default``/``dump_default`` (:pr:`1742`).
Thanks :user:`sirosen` for the PR.

Deprecations:

- The use of ``missing``/``default`` field parameters is deprecated and will be
removed in marshmallow 4. ``load_default``/``dump_default`` should be used
instead.

3.12.2

*******************

Bug fixes:

- Don't expose ``Field``\s as ``Schema`` attributes. This reverts a change
introduced in 3.12.0 that causes issues when field names conflict with
``Schema`` attributes or methods. ``Fields``\s are still accessible on a
``Schema`` instance through the ``fields`` attribute. (:pr:`1843`)

3.12.1

*******************

Bug fixes:

- Fix bug that raised an ``AttributeError`` when instantiating a
``Schema`` with a field named ``parent`` (:issue:`1808`).
Thanks :user:`flying-sheep` for reporting and helping with the fix.

3.12.0

*******************

Features:

- Add ``validate.And`` (:issue:`1768`).
Thanks :user:`rugleb` for the suggestion.
- Add type annotations to ``marshmallow.decorators`` (:issue:`1788`, :pr:`1789`).
Thanks :user:`michaeldimchuk` for the PR.
- Let ``Field``\s be accessed by name as ``Schema`` attributes (:pr:`1631`).

Other changes:

- Improve types in ``marshmallow.validate`` (:pr:`1786`).
- Make ``marshmallow.validate.Validator`` an abstract base class (:pr:`1786`).
- Remove unnecessary list cast (:pr:`1785`).

3.11.1

*******************

Bug fixes:

- Fix treatment of dotted keys when ``unknown=INCLUDE`` (:issue:`1506`).
Thanks :user:`rbu` for reporting and thanks :user:`sirosen` for the fix (:pr:`1745`).

3.11.0

*******************

Features:

- Add ``fields.IPInterface``, ``fields.IPv4Interface``, and
``IPv6Interface`` (:issue:`1733`). Thanks :user:`madeinoz67`
for the suggestion and the PR.
- Raise ``AttributeError`` for missing methods when using ``fields.Method`` (:pr:`1675`).
Thanks :user:`lassandroan`.

Other changes:

- Remove unnecessary ``hasattr`` and ``getattr`` checks in ``Field`` (:pr:`1770`).

3.10.0

*******************

Deprecations:

- Passing field metadata via keyword arguments is deprecated and will be
removed in marshmallow 4 (:issue:`1350`). Use the explicit ``metadata=...``
argument instead. Thanks :user:`sirosen`.

3.9.1

******************

Bug fixes:

- Cast to mapping type in ``Mapping.serialize`` and ``Mapping.deserialize``
(:pr:`1685`).
- Fix bug letting ``Dict`` pass invalid dict on deserialization when no key or
value ``Field`` is specified (:pr:`1685`).

3.9.0

******************

Features:

- Add ``format`` argument to ``fields.Time`` and ``timeformat`` ``class Meta`` option (:issue:`686`).
Thanks :user:`BennyAlex` for the suggestion and thanks :user:`infinityxxx` for the PR.

Other changes:

- Remove usage of implicit ``typing.Optional`` (:issue:`1663`).
Thanks :user:`nadega` for the PR.

3.8.0

******************

Features:

- Add ``fields.IP``, ``fields.IPv4`` and ``fields.IPv6`` (:pr:`1485`). Thanks
:user:`mgetka` for the PR.

Bug fixes:

- Fix typing in ``AwareDateTime`` (:pr:`1658`). Thanks :user:`adithyabsk` for
reporting.

3.7.1

******************

Bug fixes:

- ``fields.Boolean`` correctly serializes non-hashable types (:pr:`1633`).
Thanks :user:`jun0jang` for the PR.

3.7.0

******************

Deprecations:

- ``marshmallow.pprint`` is deprecated and will be removed in marshmallow 4 (:issue:`1588`).

Support:

- Document ``default_error_messages`` on field classes (:pr:`1619`). Thanks :user:`weeix`.

Bug fixes:

- Fix passing ``only`` and ``exclude`` to ``Nested`` with an ordered ``Schema`` (:pr:`1627`).
Thanks :user:`juannorris` for the PR.

3.6.1

******************

No code changes--only docs and contributor-facing updates in this release.

Support:

- Documentation: improve custom fields example (:issue:`1538`).
Thanks :user:`pablospizzamiglio` for reporting the problem with the
old example and thanks :user:`Resinderate` for the PR.
- Documentation: Split up API reference into multiple pages and
add summary tables (:pr:`1587`). Thanks :user:`EpicWink` for the PR.

3.6.0

******************

Features:

- Add ``validate.ContainsNoneOf`` (:issue:`1528`).
Thanks :user:`Resinderate` for the suggestion and the PR.

3.5.2

******************

Bug fixes:

- Fix typing in ``class_registry`` (:pr:`1574`). Thanks :user:`mahenzon`.

3.5.1

******************

Bug fixes:

- Includes bug fix from 2.21.0.

3.5.0

******************

Bug fixes:

- Fix list of nullable nested fields ``List(Nested(Field, allow_none=True)``
(:issue:`1497`). Because this fix reverts an optimization introduced to
speed-up serialization and deserialization of lists of nested fields, a
negative impact on performance in this specific case is expected.

3.4.0

******************

Features:

- Improve type coverage (:issue:`1479`). Thanks :user:`Reskov`.

Bug fixes:

- Fix typing for ``data`` param of ``Schema.load`` and ``ValidationError`` (:issue:`1492`).
Thanks :user:`mehdigmira` for reporting and thanks :user:`dfirst` for the PR.

Other changes:

- Remove unnecessary typecasts (:pr:`1500`). Thanks :user:`hukkinj1`.
- Remove useless ``_serialize`` override in ``UUID`` field (:pr:`1489`).

3.3.0

******************

Features:

- ``fields.Nested`` may take a callable that returns a schema instance.
Use this to resolve order-of-declaration issues when schemas nest each other (:issue:`1146`).

.. code-block:: python

  <3.3
 class AlbumSchema(Schema):
     title = fields.Str()
     artist = fields.Nested("ArtistSchema", only=("name",))


 class ArtistSchema(Schema):
     name = fields.Str()
     albums = fields.List(fields.Nested(AlbumSchema))


  >=3.3
 class AlbumSchema(Schema):
     title = fields.Str()
     artist = fields.Nested(lambda: ArtistSchema(only=("name",)))


 class ArtistSchema(Schema):
     name = fields.Str()
     albums = fields.List(fields.Nested(AlbumSchema))

Deprecations:

- Passing the string ``"self"`` to ``fields.Nested`` is deprecated.
Use a callable instead.

.. code-block:: python

 from marshmallow import Schema, fields

  <3.3
 class PersonSchema(Schema):
     partner = fields.Nested("self", exclude=("partner",))
     friends = fields.List(fields.Nested("self"))


  >=3.3
 class PersonSchema(Schema):
     partner = fields.Nested(lambda: PersonSchema(exclude=("partner")))
     friends = fields.List(fields.Nested(lambda: PersonSchema()))

Other changes:

- Fix typing for ``Number._format_num`` (:pr:`1466`). Thanks :user:`hukkinj1`.
- Make mypy stricter and remove dead code (:pr:`1467`). Thanks again, :user:`hukkinj1`.

3.2.2

******************

Bug fixes:

- Don't load fields for which ``load_only`` and ``dump_only`` are both ``True`` (:pr:`1448`).
- Fix types in ``marshmallow.validate`` (:pr:`1446`).

Support:

- Test against Python 3.8 (:pr:`1431`).

3.2.1

++++++++++++++++++

Bug fixes:

- Fix typing for ``Schema.dump[s]`` (:pr:`1416`).

3.2.0

++++++++++++++++++

Features:

- Add type annotations to ``marshmallow.schema`` and ``marshmallow.validate`` (:pr:`1407`, :issue:`663`).

Bug fixes:

- Fix compatibility with Python < 3.5.3 (:issue:`1409`). Thanks :user:`lukaszdudek-silvair` for reporting.

Refactoring:

- Remove unnecessary ``BaseSchema`` superclass (:pr:`1406`).

3.1.1

++++++++++++++++++

Bug fixes:

- Restore inheritance hierarchy of ``Number`` fields (:pr:`1403`).
``fields.Integer`` and ``fields.Decimal`` inherit from ``fields.Number``.
- Fix bug that raised an uncaught error when a nested schema instance had an unpickleable object in its context (:issue:`1404`).
Thanks :user:`metheoryt` for reporting.

3.1.0

++++++++++++++++++

Features:

- Add more type annotations (:issue:`663`).
Type information is distributed per `PEP 561 <https://www.python.org/dev/peps/pep-0561/>`_ .
Thanks :user:`fuhrysteve` for helping with this.

Bug fixes:

- Includes bug fix from 2.20.5.

3.0.5

++++++++++++++++++

Bug fixes:

- Fix bug that raised an uncaught error when passing both a schema instance and ``only`` to ``Nested`` (:pr:`1395`).
This bug also affected passing a schema instance to ``fields.Pluck``.

3.0.4

++++++++++++++++++

Bug fixes:

- Fix propagating dot-delimited ``only`` and ``exclude`` parameters to nested schema instances (:issue:`1384`).
- Includes bug fix from 2.20.4 (:issue:`1160`).

3.0.3

++++++++++++++++++

Bug fixes:

- Handle when ``data_key`` is an empty string (:issue:`1378`).
Thanks :user:`jtrakk` for reporting.

3.0.2

++++++++++++++++++

Bug fixes:

- Includes bug fix from 2.20.3 (:pr:`1376`).
- Fix incorrect ``super()`` call in ``SchemaMeta.__init__`` (:pr:`1362`).

3.0.1

++++++++++++++++++

Bug fixes:

- Fix bug when nesting ``fields.DateTime`` within ``fields.List`` or ``fields.Tuple`` (:issue:`1357`).
This bug was introduced in 3.0.0rc9. Thanks :user:`zblz` for reporting.

3.0.0

++++++++++++++++++

Features:

- Optimize ``List(Nested(...))`` (:issue:`779`).
- Minor performance improvements and cleanup (:pr:`1328`).
- Add ``Schema.from_dict`` (:issue:`1312`).

Deprecations/Removals:

- ``Field.fail`` is deprecated. Use ``Field.make_error`` instead.
- Remove UUID validation from ``fields.UUID``, for consistency with other fields (:issue:`1132`).

Support:

- Various docs improvements (:pr:`1329`).

3.0.0rc9

+++++++++++++++++++++

Features:

- *Backwards-incompatible*: Validation does not occur on serialization (:issue:`1132`).
This significantly improves serialization performance.
- *Backwards-incompatible*: ``DateTime`` does not affect timezone information
on serialization and deserialization (:issue:`1234`, :pr:`1278`).
- Add ``NaiveDateTime`` and ``AwareDateTime`` to enforce timezone awareness
(:issue:`1234`, :pr:`1287`).
- *Backwards-incompatible*: ``List`` does not wrap single values in a list on
serialization (:pr:`1307`).
- *Backwards-incompatible*: ``Schema.handle_error`` receives ``many`` and ``partial`` as keyword arguments (:pr:`1321`).
- Use ``raise from`` more uniformly to improve stack traces (:pr:`1313`).
- Rename ``Nested.__schema`` to ``Nested._schema`` to prevent name mangling (:issue:`1289`).
- Performance improvements (:pr:`1309`).

Deprecations/Removals:

- ``LocalDateTime`` is removed (:issue:`1234`).
- ``marshmallow.utils.utc`` is removed. Use ``datetime.timezone.utc`` instead.

Bug fixes:

- Fix behavior of ``List(Nested("self"))`` (`779 (comment) <https://github.com/marshmallow-code/marshmallow/issues/779#issuecomment-396354987>`_).

Support:

- Document usage of ``validate.Regexp``'s usage ``re.search`` (:issue:`1285`). Thanks :user:`macdonaldezra`.

3.0.0rc8

+++++++++++++++++++++

Features:

- Propagate ``only`` and ``exclude`` parameters to ``Nested`` fields
within ``List`` and ``Dict`` (:issue:`779`, :issue:`946`).
- Use ``email.utils.parsedate_to_datetime`` instead of conditionally
using dateutil for parsing RFC dates (:pr:`1246`).
- Use internal util functions instead of conditionally using dateutil
for parsing  ISO 8601 datetimes, dates and times. Timezone info is now
correctly deserialized whether or not dateutil is installed. (:pr:`1265`)
- Improve error messages for ``validate.Range``.
- Use ``raise from error`` for better stack traces (:pr:`1254`). Thanks
:user:`fuhrysteve`.
- python-dateutil is no longer used. This resolves the inconsistent behavior
based on the presence of python-dateutil (:issue:`497`, :issue:`1234`).

Bug fixes:

- Fix method resolution for ``__init__`` method of ``fields.Email`` and
``fields.URL`` (:issue:`1268`). Thanks :user:`dursk` for the catch and patch.
- Includes bug fixes from 2.19.4 and 2.19.5.

Other changes:

- *Backwards-incompatible*: Rename ``fields.List.container`` to ``fields.List.inner``,
``fields.Dict.key_container`` to ``fields.Dict.key_field``, and
``fields.Dict.value_container`` to ``fields.Dict.value_field``.
- Switch to Azure Pipelines for CI (:issue:`1261`).

3.0.0rc7

+++++++++++++++++++++

Features:

- *Backwards-incompatible*: ``many`` is passed as a keyword argument to methods decorated with
``pre_load``, ``post_load``, ``pre_dump``, ``post_dump``,
and ``validates_schema``. ``partial`` is passed as a keyword argument to
methods decorated with ``pre_load``, ``post_load`` and ``validates_schema``.
``**kwargs`` should be added to all decorated methods.
- Add ``min_inclusive`` and ``max_exclusive`` parameters to
``validate.Range`` (:issue:`1221`). Thanks :user:`kdop` for the PR.

Bug fixes:

- Fix propagation of ``partial`` to ``Nested`` containers (part of :issue:`779`).
- Includes bug fix from 2.19.3.

Other changes:

- *Backwards-incompatible*: Use keyword-only arguments (:issue:`1216`).

3.0.0rc6

+++++++++++++++++++++

Support:

- *Backwards-incompatible*: Remove support for Python 2 (:issue:`1120`).
Only Python>=3.5 is supported.
Thank you :user:`rooterkyberian` for the suggestion and the PR.
- *Backwards-incompatible*: Remove special-casing in ``fields.List`` and
``fields.Tuple`` for accessing nested attributes (:pr:`1188`).
Use ``fields.List(fields.Pluck(...))`` instead.
- Add ``python_requires`` to ``setup.py`` (:pr:`1194`).
Thanks :user:`hugovk`.
- Upgrade syntax with ``pyupgrade`` in pre-commit (:pr:`1195`). Thanks
again :user:`hugovk`.

3.0.0rc5

+++++++++++++++++++++

Features:

- Allow input value to be included in error messages
for a number of fields (:pr:`1129`). Thanks :user:`hdoupe` for the PR.
- Improve default error messages for ``OneOf`` and ``ContainsOnly``
(:issue:`885`). Thanks :user:`mcgfeller` for the suggestion
and :user:`maxalbert` for the PR.

Deprecations/Removals:

- Remove ``fields.FormattedString`` (:issue:`1141`). Use
``fields.Function`` or ``fields.Method`` instead.

Bug fixes:

- Includes bug fix from 2.19.2.

3.0.0rc4

+++++++++++++++++++++

Features:

- Add ``fields.Tuple`` (:issue:`1103`) Thanks :user:`zblz` for the PR.
- Add ``fields.Mapping``, which makes it easier to support other
mapping types (e.g. ``OrderedDict``)  (:issue:`1092`).
Thank :user:`sayanarijit` for the suggestion and the PR.

3.0.0rc3

+++++++++++++++++++++

Features:

- Make the error messages for "unknown fields" and "invalid data type"
configurable (:issue:`852`). Thanks :user:`Dunstrom` for the PR.
- ``fields.Boolean`` parses ``"yes"``/``"no"`` values (:pr:`1081`).
Thanks :user:`r1b`.

Other changes:

- *Backwards-incompatible with previous 3.x versions*: Change ordering
of ``keys`` and ``values`` arguments to ``fields.Dict``.
- Remove unused code in ``marshmallow.utils``: ``is_indexable_but_not_string``,
``float_to_decimal``, ``decimal_to_fixed``, ``from_iso`` (:pr:`1088`).
- Remove unused ``marshmallow.compat.string_types``.

Bug fixes:

- Includes bug fix from 2.18.0.

3.0.0rc2

+++++++++++++++++++++

Features:

- Add ``register`` *class Meta* option to allow bypassing marshmallow's
internal class registry when memory usage is critical (:issue:`660`).

Bug fixes:

- Fix serializing dict-like objects with properties (:issue:`1060`).
Thanks :user:`taion` for the fix.
- Fix populating ``ValidationError.valid_data`` for ``List`` and
``Dict`` fields (:issue:`766`).

Other changes:

- Add ``marshmallow.__version_info__`` (:pr:`1074`).
- Remove the ``marshmallow.marshalling`` internal module (:pr:`1070`).
- A ``ValueError`` is raised when the ``missing`` parameter is passed
for required fields (:issue:`1040`).
- Extra keyword arguments passed to ``ValidationError`` in validators
are no longer passed to the final ``ValidationError`` raised upon
validation completion (:issue:`996`).

3.0.0rc1

+++++++++++++++++++++

Features:

- *Backwards-incompatible*: Rework ``ValidationError`` API.
It now expects a single field name, and error structures are merged
in the final ``ValidationError`` raised when validation completes.
This allows schema-level validators to raise errors for individual
fields (:issue:`441`). Thanks :user:`maximkulkin` for
writing the original ``merge_errors`` implementation in :pr:`442` and thanks
:user:`lafrech` for completing the implementation in :pr:`1026`.

Bug fixes:

- Fix ``TypeError`` when serializing ``None`` with ``Pluck`` (:pr:`1049`).
Thanks :user:`toffan` for the catch and patch.

3.0.0b20

+++++++++++++++++++++

Bug fixes:

- Includes bug fixes from 2.16.2 and 2.16.3.

3.0.0b19

+++++++++++++++++++++

Features:

- Support partial loading of nested fields (:pr:`438`). Thanks
:user:`arbor-dwatson` for the PR. *Note*: Subclasses of ``fields.Nested``
now take an additional ``partial`` parameter in the ``_deserialize``
method.

Bug fixes:

- Restore ``Schema.TYPE_MAPPING``, which was removed in 3.0.0b17 (:issue:`1012`).

Other changes:

- *Backwards-incompatible*: ``_serialize`` and ``_deserialize`` methods of
all ``fields.Field`` subclasses must accept ``**kwargs`` (:pr:`1007`).

3.0.0b18

+++++++++++++++++++++

Bug fixes:

- Fix ``Date`` deserialization when using custom format (:issue:`1001`). Thanks
:user:`Ondkloss` for reporting.

Deprecations/Removals:

- ``prefix`` parameter or ``Schema`` class is removed (:issue:`991`). The same
can be achieved using a ``post_dump`` method.

3.0.0b17

+++++++++++++++++++++

Features:

- Add ``format`` option to ``Date`` field (:pr:`869`).
- *Backwards-incompatible*: Rename ``DateTime``'s ``dateformat`` Meta option
to ``datetimeformat``. ``dateformat`` now applies to ``Date`` (:pr:`869`).
Thanks :user:`knagra` for implementing these changes.
- Enforce ISO 8601 when deserializing date and time (:issue:`899`).
Thanks :user:`dushr` for the report and the work on the PR.
- *Backwards-incompatible*: Raise ``ValueError`` on ``Schema`` instantiation in
case of ``attribute`` or ``data_key`` collision (:pr:`992`).

Bug fixes:

- Fix inconsistencies in field inference by refactoring the inference feature
into a dedicated field (:issue:`809`). Thanks :user:`taion` for the PR.
- When ``unknown`` is not passed to ``Nested``, default to nested ``Schema``
``unknown`` meta option rather than ``RAISE`` (:pr:`963`).
Thanks :user:`vgavro` for the PR.
- Fix loading behavior of ``fields.Pluck`` (:pr:`990`).
- Includes bug fix from 2.16.0.

3.0.0b16

+++++++++++++++++++++

Bug fixes:

- Fix ``root`` attribute for nested container fields
on inheriting schemas (:issue:`956`). Thanks :user:`bmcbu`
for reporting.

3.0.0b15

+++++++++++++++++++++

Bug fixes:

- Raise ``ValidationError`` instead of ``TypeError`` when non-iterable types are
validated with ``many=True`` (:issue:`851`).
- ``many=True`` no longer iterates over ``str`` and ``collections.abc.Mapping`` objects and instead
raises a ``ValidationError`` with ``{'_schema': ['Invalid input type.']}`` (:issue:`930`).
- Return ``[]`` as ``ValidationError.valid_data`` instead of ``{}`` when
``many=True`` (:issue:`907`).

Thanks :user:`tuukkamustonen` for implementing these changes.

3.0.0b14

+++++++++++++++++++++

Features:

- Add ``fields.Pluck`` for serializing a single field from a nested object
(:issue:`800`). Thanks :user:`timc13` for the feedback and :user:`deckar01`
for the implementation.
- *Backwards-incompatible*: Passing a string argument as ``only`` to
``fields.Nested`` is no longer supported. Use ``fields.Pluck`` instead
(:issue:`800`).
- Raise a ``StringNotCollectionError`` if ``only`` or ``exclude`` is
passed as a string to ``fields.Nested`` (:pr:`931`).
- *Backwards-incompatible*: ``Float`` takes an ``allow_nan`` parameter to
explicitly allow serializing and deserializing special values (``nan``,
``inf`` and ``-inf``). ``allow_nan`` defaults to ``False``.

Other changes:

- *Backwards-incompatible*: ``Nested`` field now defaults to ``unknown=RAISE``
instead of ``EXCLUDE``. This harmonizes behavior with ``Schema`` that
already defaults to ``RAISE`` (:issue:`908`). Thanks :user:`tuukkamustonen`.
- Tested against Python 3.7.

3.0.0b13

+++++++++++++++++++++

Bug fixes:

- Errors reported by a schema-level validator for a field in a ``Nested`` field
are stored under corresponding field name, not ``_schema`` key (:pr:`862`).
- Includes bug fix from 2.15.4.

Other changes:

- *Backwards-incompatible*: The ``unknown`` option now defaults to ``RAISE``
(`524 (comment) <https://github.com/marshmallow-code/marshmallow/issues/524#issuecomment-397165731>`_,
:issue:`851`).
- *Backwards-incompatible*: When a schema error is raised with a ``dict`` as
payload, the ``dict`` overwrites any existing error list. Before this change,
it would be appended to the list.
- Raise a `StringNotCollectionError` if ``only`` or ``exclude`` is
passed as a string (:issue:`316`). Thanks :user:`paulocheque` for
reporting.

3.0.0b12

+++++++++++++++++++++

Features:

- The behavior to apply when encountering unknown fields while deserializing
can be controlled with the ``unknown`` option (:issue:`524`,
:issue:`747`, :issue:`127`).
It makes it possible to either "include", "exclude", or "raise".
Thanks :user:`tuukkamustonen` for the suggestion and thanks
:user:`ramnes` for the PR.

.. warning::

The default for ``unknown`` will be changed to ``RAISE`` in the
next release.

Other changes:

- *Backwards-incompatible*: Pre/Post-processors MUST return modified data.
Returning ``None`` does not imply data were mutated (:issue:`347`). Thanks
:user:`tdevelioglu` for reporting.
- *Backwards-incompatible*: ``only`` and ``exclude`` are bound by
declared and additional fields. A ``ValueError`` is raised if invalid
fields are passed (:issue:`636`). Thanks :user:`jan-23` for reporting.
Thanks :user:`ikilledthecat` and :user:`deckar01` for the PRs.
- Format code using pre-commit (:pr:`855`).

Deprecations/Removals:

- ``ValidationError.fields`` is removed (:issue:`840`). Access field
instances from ``Schema.fields``.

3.0.0b11

+++++++++++++++++++++

Features:

- Clean up code for schema hooks (:pr:`814`). Thanks :user:`taion`.
- Minor performance improvement from simplifying ``utils.get_value`` (:pr:`811`). Thanks again :user:`taion`.
- Add ``require_tld`` argument to ``fields.URL`` (:issue:`749`). Thanks
:user:`DenerKup` for reporting and thanks :user:`surik00` for the PR.
- ``fields.UUID`` deserializes ``bytes`` strings using ``UUID(bytes=b'...')`` (:pr:`625`).
Thanks :user:`JeffBerger` for the suggestion and the PR.

Bug fixes:

- Fields nested within ``Dict`` correctly inherit context from their
parent schema (:issue:`820`). Thanks :user:`RosanneZe` for reporting
and :user:`deckar01` for the PR.
- Includes bug fix from 2.15.3.

3.0.0b10

+++++++++++++++++++++

Bug fixes:

- Includes bugfixes from 2.15.2.

3.0.0b9

++++++++++++++++++++

Features:

- *Backwards-incompatible*: ``missing`` and ``default`` values are
passed in deserialized form (:issue:`378`). Thanks :user:`chadrik` for
the suggestion and thanks :user:`lafrech` for the PR.

Bug fixes:

- Includes the bugfix from 2.15.1.

3.0.0b8

++++++++++++++++++++

Features:

- *Backwards-incompatible*: Add ``data_key`` parameter to fields for
specifying the key in the input and output data dict. This
parameter replaces both ``load_from`` and ``dump_to`` (:issue:`717`).
Thanks :user:`lafrech`.
- *Backwards-incompatible*: When ``pass_original=True`` is passed to one
of the decorators and a collection is being (de)serialized, the
``original_data`` argument will be a single object unless
``pass_many=True`` is also passed to the decorator (:issue:`315`,
:issue:`743`). Thanks :user:`stj` for the PR.
- *Backwards-incompatible*: Don't recursively check nested required
fields when the ``Nested`` field's key is missing (:issue:`319`). This
reverts :pr:`235`. Thanks :user:`chekunkov` reporting and thanks
:user:`lafrech` for the PR.
- *Backwards-incompatible*: Change error message collection for ``Dict`` field (:issue:`730`). Note:
this is backwards-incompatible with previous 3.0.0bX versions.
Thanks :user:`shabble` for the report and thanks :user:`lafrech` for the PR.

3.0.0b7

++++++++++++++++++++

Features:

- *Backwards-incompatible*: Schemas are always strict (:issue:`377`).
The ``strict`` parameter is removed.
- *Backwards-incompatible*: ``Schema().load`` and ``Schema().dump`` return ``data`` instead of a
``(data, errors)`` tuple (:issue:`598`).
- *Backwards-incomaptible*: ``Schema().load(None)`` raises a
``ValidationError`` (:issue:`511`).

See :ref:`upgrading_3_0` for a guide on updating your code.

Thanks :user:`lafrech` for implementing these changes.
Special thanks to :user:`MichalKononenko`, :user:`douglas-treadwell`, and
:user:`maximkulkin` for the discussions on these changes.


Other changes:

- *Backwards-incompatible*: Field name is not checked when ``load_from``
is specified (:pr:`714`). Thanks :user:`lafrech`.

Support:

- Add `Code of Conduct <https://marshmallow.readthedocs.io/en/dev/code_of_conduct.html>`_.

3.0.0b6

++++++++++++++++++++

Bug fixes:

- Fixes ``ValidationError.valid_data`` when a nested field contains errors
(:issue:`710`). This bug was introduced in 3.0.0b3. Thanks
:user:`lafrech`.

Other changes:

- *Backwards-incompatible*: ``Email`` and ``URL`` fields don't validate
on serialization (:issue:`608`). This makes them more consistent with the other
fields and improves serialization performance. Thanks again :user:`lafrech`.
- ``validate.URL`` requires square brackets around IPv6 URLs (:issue:`707`). Thanks :user:`harlov`.

3.0.0b5

++++++++++++++++++++

Features:

- Add support for structured dictionaries by providing values and keys arguments to the
``Dict`` field's constructor. This mirrors the ``List``
field's ability to validate its items (:issue:`483`). Thanks :user:`deckar01`.

Other changes:

- *Backwards-incompatible*: ``utils.from_iso`` is deprecated in favor of
``utils.from_iso_datetime`` (:issue:`694`). Thanks :user:`sklarsa`.

3.0.0b4

++++++++++++++++++++

Features:

- Add support for millisecond, minute, hour, and week precisions to
``fields.TimeDelta`` (:issue:`537`). Thanks :user:`Fedalto` for the
suggestion and the PR.
- Includes features from release 2.14.0.


Support:

- Copyright year in docs uses ``CHANGELOG.rst``'s modified date for
reproducible builds (:issue:`679`). Thanks :user:`bmwiedemann`.
- Test against Python 3.6 in tox. Thanks :user:`Fedalto`.
- Fix typo in exception message (:issue:`659`). Thanks :user:`wonderbeyond`
for reporting and thanks :user:`yoichi` for the PR.

3.0.0b3

++++++++++++++++++++

Features:

- Add ``valid_data`` attribute to ``ValidationError``.
- Add ``strict`` parameter to ``Integer`` (:issue:`667`). Thanks
:user:`yoichi`.

Deprecations/Removals:

- Deprecate ``json_module`` option in favor of ``render_module`` (:issue:`364`, :issue:`130`). Thanks :user:`justanr` for the suggestion.

Bug fixes:

- Includes bug fixes from releases 2.13.5 and 2.13.6.
- *Backwards-incompatible*: ``Number`` fields don't accept booleans as valid input (:issue:`623`). Thanks :user:`tuukkamustonen` for the suggestion and thanks :user:`rowillia` for the PR.

Support:

- Add benchmark script. Thanks :user:`rowillia`.

3.0.0b2

++++++++++++++++++++

Features:

- Add ``truthy`` and ``falsy`` params to ``fields.Boolean`` (:issue:`580`). Thanks :user:`zwack` for the PR. Note: This is potentially a breaking change if your code passes the `default` parameter positionally. Pass `default` as a keyword argument instead, e.g. ``fields.Boolean(default=True)``.

Other changes:

- *Backwards-incompatible*: ``validate.ContainsOnly`` allows empty and duplicate values (:issue:`516`, :issue:`603`). Thanks :user:`maximkulkin` for the suggestion and thanks :user:`lafrech` for the PR.

Bug fixes:

- Includes bug fixes from release 2.13.4.

3.0.0b1

++++++++++++++++++++

Features:

- ``fields.Nested`` respects ``only='field'`` when deserializing (:issue:`307`). Thanks :user:`erlingbo` for the suggestion and the PR.
- ``fields.Boolean`` parses ``"on"``/``"off"`` (:issue:`580`). Thanks :user:`marcellarius` for the suggestion.


Other changes:

- Includes changes from release 2.13.2.
- *Backwards-incompatible*: ``skip_on_field_errors`` defaults to ``True`` for ``validates_schema`` (:issue:`352`).

3.0.0a1

++++++++++++++++++++

Features:

- ``dump_only`` and ``load_only`` for ``Function`` and ``Method`` are set based on ``serialize`` and ``deserialize`` arguments (:issue:`328`).

Other changes:

- *Backwards-incompatible*: ``fields.Method`` and ``fields.Function`` no longer swallow ``AttributeErrors`` (:issue:`395`). Thanks :user:`bereal` for the suggestion.
- *Backwards-incompatible*: ``validators.Length`` is no longer a subclass of ``validators.Range`` (:issue:`458`). Thanks :user:`deckar01` for the catch and patch.
- *Backwards-incompatible*: ``utils.get_func_args`` no longer returns bound arguments. This is consistent with the behavior of ``inspect.signature``. This change prevents a DeprecationWarning on Python 3.5 (:issue:`415`, :issue:`479`). Thanks :user:`deckar01` for the PR.
- *Backwards-incompatible*: Change the signature of ``utils.get_value`` and ``Schema.get_attribute`` for consistency with Python builtins (e.g. ``getattr``) (:issue:`341`). Thanks :user:`stas` for reporting and thanks :user:`deckar01` for the PR.
- *Backwards-incompatible*: Don't unconditionally call callable attributes (:issue:`430`, reverts :issue:`242`). Thanks :user:`mirko` for the suggestion.
- Drop support for Python 2.6 and 3.3.

Deprecation/Removals:

- Remove ``__error_handler__``, ``__accessor__``, ``Schema.error_handler``, and ``Schema.accessor``. Override ``Schema.handle_error`` and ``Schema.get_attribute`` instead.
- Remove ``func`` parameter of ``fields.Function``. Remove ``method_name`` parameter of ``fields.Method`` (issue:`325`). Use the ``serialize`` parameter instead.
- Remove ``extra`` parameter from ``Schema``. Use a ``post_dump`` method to add additional data.

2.21.0

+++++++++++++++++++

Bug fixes:

- Don't match string-ending newlines in ``URL`` and ``Email`` fields
(:issue:`1522`). Thanks :user:`nbanmp` for the PR.

Other changes:

- Drop support for Python 3.4 (:pr:`1525`).

2.20.5

+++++++++++++++++++

Bug fixes:

- Fix behavior when a non-list collection is passed to the ``validate`` argument of ``fields.Email`` and ``fields.URL`` (:issue:`1400`).

2.20.4

+++++++++++++++++++

Bug fixes:

- Respect the ``many`` value on ``Schema`` instances passed to ``Nested`` (:issue:`1160`).
Thanks :user:`Kamforka` for reporting.

2.20.3

+++++++++++++++++++

Bug fixes:

- Don't swallow ``TypeError`` exceptions raised by ``Field._bind_to_schema`` or ``Schema.on_bind_field`` (:pr:`1376`).

2.20.2

+++++++++++++++++++

Bug fixes:

- Prevent warning about importing from ``collections`` on Python 3.7
(:pr:`1354`). Thanks :user:`nicktimko` for the PR.

2.20.1

+++++++++++++++++++

Bug fixes:

- Fix bug that raised ``TypeError`` when invalid data type is
passed to a nested schema with ``validates`` (:issue:`1342`).

2.20.0

+++++++++++++++++++

Bug fixes:

- Fix deprecated functions' compatibility with Python 2 (:issue:`1337`).
Thanks :user:`airstandley` for the catch and patch.
- Fix error message consistency for invalid input types on nested fields (:issue:`1303`).
This is a backport of the fix in :pr:`857`. Thanks :user:`cristi23` for the
thorough bug report and the PR.

Deprecation/Removal:

- Python 2.6 is no longer officially supported (:issue:`1274`).

2.19.5

+++++++++++++++++++

Bug fixes:

- Fix deserializing ISO8601-formatted datetimes with less than 6-digit
miroseconds (:issue:`1251`). Thanks :user:`diego-plan9` for reporting.
Links

Update pydantic from 0.28 to 1.9.1.

Changelog

1.9.0

* Apply `update_forward_refs` to `Config.json_encodes` prevent name clashes in types defined via strings, 3583 by samuelcolvin
* Extend pydantic's mypy plugin to support mypy versions `0.910`, `0.920`, `0.921` & `0.930`, 3573 & 3594 by PrettyWood, christianbundy, samuelcolvin

1.9.0a2

* support generic models with discriminated union, 3551 by PrettyWood
* keep old behaviour of `json()` by default, 3542 by PrettyWood
* Removed typing-only `__root__` attribute from `BaseModel`, 3540 by layday
* Build Python 3.10 wheels, 3539 by mbachry
* Fix display of `extra` fields with model `__repr__`, 3234 by cocolman
* models copied via `Config.copy_on_model_validation` always have all fields, 3201 by PrettyWood
* nested ORM from nested dictionaries, 3182 by PrettyWood
* fix link to discriminated union section by PrettyWood

1.9.0a1

* Add support for `Decimal`-specific validation configurations in `Field()`, additionally to using `condecimal()`, 
to allow better support from editors and tooling, 3507 by tiangolo
* Add `arm64` binaries suitable for MacOS with an M1 CPU to PyPI, 3498 by samuelcolvin
* Fix issue where `None` was considered invalid when using a `Union` type containing `Any` or `object`, 3444 by tharradine
* When generating field schema, pass optional `field` argument (of type
`pydantic.fields.ModelField`) to `__modify_schema__()` if present, 3434 by jasujm
* Fix issue when pydantic fail to parse `typing.ClassVar` string type annotation, 3401 by uriyyo
* Mention Python >= 3.9.2 as an alternative to `typing_extensions.TypedDict`, 3374 by BvB93
* Changed the validator method name in the [Custom Errors example](https://pydantic-docs.helpmanual.io/usage/models/#custom-errors) 
to more accurately describe what the validator is doing; changed from `name_must_contain_space` to ` value_must_equal_bar`, 3327 by michaelrios28
* Add `AmqpDsn` class, 3254 by kludex
* Always use `Enum` value as default in generated JSON schema, 3190 by joaommartins
* Add support for Mypy 0.920, 3175 by christianbundy
* `validate_arguments` now supports `extra` customization (used to always be `Extra.forbid`), 3161 by PrettyWood
* Complex types can be set by nested environment variables, 3159 by Air-Mark
* Fix mypy plugin to collect fields based on `pydantic.utils.is_valid_field` so that it ignores untyped private variables, 3146 by hi-ogawa
* fix `validate_arguments` issue with `Config.validate_all`, 3135 by PrettyWood
* avoid dict coercion when using dict subclasses as field type, 3122 by PrettyWood
* add support for `object` type, 3062 by PrettyWood
* Updates pydantic dataclasses to keep `_special` properties on parent classes, 3043 by zulrang
* Add a `TypedDict` class for error objects, 3038 by matthewhughes934
* Fix support for using a subclass of an annotation as a default, 3018 by JacobHayes
* make `create_model_from_typeddict` mypy compliant, 3008 by PrettyWood
* Make multiple inheritance work when using `PrivateAttr`, 2989 by hmvp
* Parse environment variables as JSON, if they have a `Union` type with a complex subfield, 2936 by cbartz
* Prevent `StrictStr` permitting `Enum` values where the enum inherits from `str`, 2929 by samuelcolvin
* Make `SecretsSettingsSource` parse values being assigned to fields of complex types when sourced from a secrets file, 
just as when sourced from environment variables, 2917 by davidmreed
* add a dark mode to _pydantic_ documentation, 2913 by gbdlin
* Make `pydantic-mypy` plugin compatible with `pyproject.toml` configuration, consistent with `mypy` changes. 
See the [doc](https://pydantic-docs.helpmanual.io/mypy_plugin/#configuring-the-plugin) for more information, 2908 by jrwalk
* add python 3.10 support, 2885 by PrettyWood
* Correctly parse generic models with `Json[T]`, 2860 by geekingfrog
* Update contrib docs re: python version to use for building docs, 2856 by paxcodes
* Clarify documentation about _pydantic_'s support for custom validation and strict type checking, 
despite _pydantic_ being primarily a 

@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #185

@pyup-bot pyup-bot closed this Jun 27, 2022
@pilosus pilosus deleted the pyup-scheduled-update-2022-06-20 branch June 27, 2022 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants