Skip to content
New issue

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

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

Already on GitHub? # to your account

Scheduled monthly dependency update for March #52

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Mar 1, 2025

Update wheel from 0.37.1 to 0.45.1.

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

Links

Update watchdog[watchmedo] from 2.1.9 to 6.0.0.

Changelog

6.0.0

~~~~~

2024-11-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0>`__

- Pin test dependecies.
- [docs] Add typing info to quick start. (`1082 <https://github.com/gorakhargosh/watchdog/pull/1082>`__)
- [inotify] Use of ``select.poll()`` instead of deprecated ``select.select()``, if available. (`1078 <https://github.com/gorakhargosh/watchdog/pull/1078>`__)
- [inotify] Fix reading inotify file descriptor after closing it. (`1081 <https://github.com/gorakhargosh/watchdog/pull/1081>`__)
- [utils] The ``stop_signal`` keyword-argument type of the ``AutoRestartTrick`` class can now be either a ``signal.Signals`` or an ``int``.
- [utils] Added the ``__repr__()`` method to the ``Trick`` class.
- [utils] Removed the unused ``echo_class()`` function from the ``echo`` module.
- [utils] Removed the unused ``echo_instancemethod()`` function from the ``echo`` module.
- [utils] Removed the unused ``echo_module()`` function from the ``echo`` module.
- [utils] Removed the unused ``is_class_private_name()`` function from the ``echo`` module.
- [utils] Removed the unused ``is_classmethod()`` function from the ``echo`` module.
- [utils] Removed the unused ``ic_method(met()`` function from the ``echo`` module.
- [utils] Removed the unused ``method_name()`` function from the ``echo`` module.
- [utils] Removed the unused ``name()`` function from the ``echo`` module.
- [watchmedo] Fixed Mypy issues.
- [watchmedo] Added the ``__repr__()`` method to the ``HelpFormatter`` class.
- [watchmedo] Removed the ``--trace`` CLI argument from the ``watchmedo log`` command, useless since events are logged by default at the ``LoggerTrick`` class level.
- [windows] Fixed Mypy issues.
- Thanks to our beloved contributors: BoboTiG, g-pichler, ethan-vanderheijden, nhairs

5.0.3

~~~~~

2024-09-27 • `full history <https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3>`__

- [inotify] Improve cleaning up ``Inotify`` threads, and add ``eventlet`` test cases (`1070 <https://github.com/gorakhargosh/watchdog/pull/1070>`__)
- Thanks to our beloved contributors: BoboTiG, ethan-vanderheijden

5.0.2

~~~~~

2024-09-03 • `full history <https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2>`__

- Enable OS specific Mypy checks (`1064 <https://github.com/gorakhargosh/watchdog/pull/1064>`__)
- [watchmedo] Fix ``tricks`` argument type of ``schedule_tricks()`` (`1063 <https://github.com/gorakhargosh/watchdog/pull/1063>`__)
- Thanks to our beloved contributors: gnought, BoboTiG

5.0.1

~~~~~

2024-09-02 • `full history <https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1>`__

- [kqueue] Fix ``TypeError: kqueue.control() only accepts positional parameters``  (`1062 <https://github.com/gorakhargosh/watchdog/pull/1062>`__)
- Thanks to our beloved contributors: apoirier, BoboTiG

5.0.0

~~~~~

2024-08-26 • `full history <https://github.com/gorakhargosh/watchdog/compare/v4.0.2...v5.0.0>`__

**Breaking Changes**

- Drop support for Python 3.8 (`1055 <https://github.com/gorakhargosh/watchdog/pull/1055>`__)
- [core] Enforced usage of proper keyword-arguments (`1057 <https://github.com/gorakhargosh/watchdog/pull/1057>`__)
- [core] Renamed the ``BaseObserverSubclassCallable`` class to ``ObserverType`` (`1055 <https://github.com/gorakhargosh/watchdog/pull/1055>`__)
- [inotify] Renamed the ``inotify_event_struct`` class to ``InotifyEventStruct`` (`1055 <https://github.com/gorakhargosh/watchdog/pull/1055>`__)
- [inotify] Renamed the ``UnsupportedLibc`` exception to ``UnsupportedLibcError`` (`1057 <https://github.com/gorakhargosh/watchdog/pull/1057>`__)
- [inotify] Removed the ``InotifyConstants.IN_CLOSE`` constant (`1046 <https://github.com/gorakhargosh/watchdog/pull/1046>`__)
- [watchmedo] Renamed the ``LogLevelException`` exception to ``LogLevelError`` (`1057 <https://github.com/gorakhargosh/watchdog/pull/1057>`__)
- [watchmedo] Renamed the ``WatchdogShutdown`` exception to ``WatchdogShutdownError`` (`1057 <https://github.com/gorakhargosh/watchdog/pull/1057>`__)
- [windows] Renamed the ``FILE_NOTIFY_INFORMATION`` class to ``FileNotifyInformation`` (`1055 <https://github.com/gorakhargosh/watchdog/pull/1055>`__)
- [windows] Removed the unused ``WATCHDOG_TRAVERSE_MOVED_DIR_DELAY`` constant (`1057 <https://github.com/gorakhargosh/watchdog/pull/1057>`__)

**Other Changes**

- [core] Enable ``disallow_untyped_calls`` Mypy rule (`1055 <https://github.com/gorakhargosh/watchdog/pull/1055>`__)
- [core] Enable ``disallow_untyped_defs`` Mypy rule (`1060 <https://github.com/gorakhargosh/watchdog/pull/1060>`__)
- [core] Improve typing references for events (`1040 <https://github.com/gorakhargosh/watchdog/issues/1040>`__)
- [inotify] Add support for ``IN_CLOSE_NOWRITE`` events. A ``FileClosedNoWriteEvent`` event will be fired, and its ``on_closed_no_write()`` dispatcher has been introduced (`1046 <https://github.com/gorakhargosh/watchdog/pull/1046>`__)
- Thanks to our beloved contributors: BoboTiG

4.0.2

~~~~~

2024-08-11 • `full history <https://github.com/gorakhargosh/watchdog/compare/v4.0.1...v4.0.2>`__

- Add support for Python 3.13 (`1052 <https://github.com/gorakhargosh/watchdog/pull/1052>`__)
- [core] Run ``ruff``, apply several fixes (`1033 <https://github.com/gorakhargosh/watchdog/pull/1033>`__)
- [core] Remove execution rights from ``events.py``
- [documentation] Update ``PatternMatchingEventHandler`` docstrings (`1048 <https://github.com/gorakhargosh/watchdog/pull/1048>`__)
- [documentation] Simplify the quickstart example (`1047 <https://github.com/gorakhargosh/watchdog/pull/1047>`__)
- [fsevents] Add missing ``event_filter`` keyword-argument to ``FSEventsObserver.schedule()`` (`1049 <https://github.com/gorakhargosh/watchdog/pull/1049>`__)
- [utils] Fix a possible race condition in ``AutoRestartTrick`` (`1002 <https://github.com/gorakhargosh/watchdog/pull/1002>`__)
- [watchmedo] Remove execution rights from ``watchmedo.py``
- Thanks to our beloved contributors: BoboTiG, nbelakovski, ivg

4.0.1

~~~~~

2024-05-23 • `full history <https://github.com/gorakhargosh/watchdog/compare/v4.0.0...v4.0.1>`__

- [inotify] Fix missing ``event_filter`` for the full emitter (`1032 <https://github.com/gorakhargosh/watchdog/pull/1032>`__)
- Thanks to our beloved contributors: mraspaud, BoboTiG

4.0.0

~~~~~

2024-02-06 • `full history <https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v4.0.0>`__

- Drop support for Python 3.7.
- Add support for Python 3.12.
- [snapshot] Add typing to ``dirsnapshot`` (`1012 <https://github.com/gorakhargosh/watchdog/pull/1012>`__)
- [snapshot] Added ``DirectorySnapshotDiff.ContextManager`` (`1011 <https://github.com/gorakhargosh/watchdog/pull/1011>`__)
- [events] ``FileSystemEvent``, and subclasses, are now ``dataclass``es, and their ``repr()`` has changed
- [windows] ``WinAPINativeEvent`` is now a ``dataclass``, and its ``repr()`` has changed
- [events] Log ``FileOpenedEvent``, and ``FileClosedEvent``, events in ``LoggingEventHandler``
- [tests] Improve ``FileSystemEvent`` coverage
- [watchmedo] Log all events in ``LoggerTrick``
- [windows] The ``observers.read_directory_changes.WATCHDOG_TRAVERSE_MOVED_DIR_DELAY`` hack was removed. The constant will be kept to prevent breaking other softwares.
- Thanks to our beloved contributors: BoboTiG, msabramo

3.0.0

~~~~~

2023-03-20 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.3.1...v3.0.0>`__

- Drop support for Python 3.6.
- ``watchdog`` is now PEP 561 compatible, and tested with ``mypy``
- Fix missing ``>`` in ``FileSystemEvent.__repr__()``  (`980 <https://github.com/gorakhargosh/watchdog/pull/980>`__)
- [ci] Lots of improvements
- [inotify] Return from ``InotifyEmitter.queue_events()`` if not launched when thread is inactive (`963 <https://github.com/gorakhargosh/watchdog/pull/963>`__)
- [tests] Stability improvements
- [utils] Remove handling of ``threading.Event.isSet`` spelling (`962 <https://github.com/gorakhargosh/watchdog/pull/962>`__)
- [watchmedo] Fixed tricks YAML generation (`965 <https://github.com/gorakhargosh/watchdog/pull/965>`__)
- Thanks to our beloved contributors: kurtmckee, altendky, agroszer, BoboTiG

2.3.1

~~~~~

2023-02-28 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.3.0...v2.3.1>`__

- Run ``black`` on the entire source code
- Bundle the ``requirements-tests.txt`` file in the source distribution (`939 <https://github.com/gorakhargosh/watchdog/pull/939>`__)
- [watchmedo] Exclude ``FileOpenedEvent`` events from ``AutoRestartTrick``, and ``ShellCommandTrick``, to restore watchdog < 2.3.0 behavior. A better solution should be found in the future. (`949 <https://github.com/gorakhargosh/watchdog/pull/949>`__)
- [watchmedo] Log ``FileOpenedEvent``, and ``FileClosedEvent``, events in ``LoggerTrick``
- Thanks to our beloved contributors: BoboTiG

2.3.0

~~~~~

2023-02-23 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.2.1...v2.3.0>`__

- [inotify] Add support for ``IN_OPEN`` events: a ``FileOpenedEvent`` event will be fired (`941 <https://github.com/gorakhargosh/watchdog/pull/941>`__)
- [watchmedo] Add optional event debouncing for ``auto-restart``, only restarting once if many events happen in quick succession (``--debounce-interval``) (`940 <https://github.com/gorakhargosh/watchdog/pull/940>`__)
- [watchmedo] Exit gracefully on ``KeyboardInterrupt`` exception (Ctrl+C) (`945 <https://github.com/gorakhargosh/watchdog/pull/945>`__)
- [watchmedo] Add option to not auto-restart the command after it exits (``--no-restart-on-command-exit``) (`946 <https://github.com/gorakhargosh/watchdog/pull/946>`__)
- Thanks to our beloved contributors: BoboTiG, dstaple, taleinat, cernekj

2.2.1

~~~~~

2023-01-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.2.0...v2.2.1>`__

- Enable ``mypy`` to discover type hints as specified in PEP 561 (`933 <https://github.com/gorakhargosh/watchdog/pull/933>`__)
- [ci] Set the expected Python version when building release files
- [ci] Update actions versions in use
- [watchmedo] [regression] Fix usage of missing ``signal.SIGHUP`` attribute on non-Unix OSes (`935 <https://github.com/gorakhargosh/watchdog/pull/935>`__)
- Thanks to our beloved contributors: BoboTiG, simon04, piotrpdev

2.2.0

~~~~~

2022-12-05 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.9...v2.2.0>`__

- [build] Wheels are now available for Python 3.11 (`932 <https://github.com/gorakhargosh/watchdog/pull/932>`__)
- [documentation] HTML documentation builds are now tested for errors (`902 <https://github.com/gorakhargosh/watchdog/pull/902>`__)
- [documentation] Fix typos here, and there (`910 <https://github.com/gorakhargosh/watchdog/pull/910>`__)
- [fsevents2] The ``fsevents2`` observer is now deprecated (`909 <https://github.com/gorakhargosh/watchdog/pull/909>`__)
- [tests] The error message returned by musl libc for error code ``-1`` is now allowed (`923 <https://github.com/gorakhargosh/watchdog/pull/923>`__)
- [utils] Remove unnecessary code in ``dirsnapshot.py`` (`930 <https://github.com/gorakhargosh/watchdog/pull/930>`__)
- [watchmedo] Handle shutdown events from ``SIGHUP`` (`912 <https://github.com/gorakhargosh/watchdog/pull/912>`__)
- Thanks to our beloved contributors: kurtmckee, babymastodon, QuantumEnergyE, timgates42, BoboTiG
Links

Update tox from 3.25.1 to 4.24.1.

Changelog

3.28.0

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

Features
^^^^^^^^

- Support provision of tox 4 with the ``min_version`` option - by :user:`hroncok`
`2661 <https://github.com/tox-dev/tox/issues/2661>`_

3.27.1

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

Bugfixes
^^^^^^^^

- Replaced deprecated ``license_file`` key with ``license_files`` in ``setup.cfg`` -- by :user:`mgorny`.
`2521 <https://github.com/tox-dev/tox/issues/2521>`_
- Add env cleanup to envreport - fix PYTHONPATH leak into "envreport" -- by :user:`f3flight`.
`2528 <https://github.com/tox-dev/tox/issues/2528>`_

3.27.0

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

Bugfixes
^^^^^^^^

- Dropped ``--build-option`` in isolated builds, an alternative fix for the ``SetuptoolsDeprecationWarning`` about using ``--global-option`` -- by :user:`adamchainz`
`2497 <https://github.com/tox-dev/tox/issues/2497>`_
- Remove read-only files in ``ensure_empty_dir``.
`2498 <https://github.com/tox-dev/tox/issues/2498>`_
- Multiple tox instances no longer clobber the ``.tox`` directory when
``provision_tox_env`` is used. - by :user:`masenf`
`2515 <https://github.com/tox-dev/tox/issues/2515>`_


Documentation
^^^^^^^^^^^^^

- Clarify that ``install_command`` only takes one command - by :user:`jugmac00`
`2433 <https://github.com/tox-dev/tox/issues/2433>`_
- Documented problems with plugin and provision env - by :user:`ziima`.
`2469 <https://github.com/tox-dev/tox/issues/2469>`_

3.26.0

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

Bugfixes
^^^^^^^^

- Fix fallback to ``python`` environment when ``isolated_build = true`` is set -- by :user:`Unrud`
`2474 <https://github.com/tox-dev/tox/issues/2474>`_
- Fixed ``SetuptoolsDeprecationWarning`` about using ``--global-option`` -- by :user:`adamchainz`
`2478 <https://github.com/tox-dev/tox/issues/2478>`_


Features
^^^^^^^^

- Use ``tomllib`` on Python 3.11 or later and ``tomli`` instead of ``toml`` library on lower versions - by :user:`hroncok`.
`2463 <https://github.com/tox-dev/tox/issues/2463>`_
Links

Update Sphinx from 5.1.1 to 8.2.1.

Changelog

8.2.1

=====================================

Bugs fixed
----------

* 13367: Correct spelling of ``highlighting_failure`` in warning sub-type.
Patch by Bart Kamphorst.
* 13377: Restore support for using ``sphinx.testing.path`` paths with
``sphinx.testing.fixtures``.
Patch by Kazuya Takei.
* 13380: viewcode: Fix importing modules more than once.
Patch by Dave Hoese.
* 13382: Napoleon: Use the right valid types for configuration values.
Patch by Adam Turner.
* 13376: Fix copying assets from a relative :confval:`html_static_path` entry.
Patch by Adam Turner.

8.2.0

=====================================

Dependencies
------------

* 13000: Drop Python 3.10 support.

Incompatible changes
--------------------

* 13044: Remove the internal and undocumented ``has_equations`` data
from the :py:class:`!MathDomain` domain.
The undocumented :py:meth:`!MathDomain.has_equations` method
now unconditionally returns ``True``.
These are replaced by the ``has_maths_elements`` key of the page context dict.
Patch by Adam Turner.
* 13227: HTML output for sequences of keys in the :rst:role:`kbd` role
no longer uses a ``<kbd class="kbd compound">`` element to wrap
the keys and separators, but places them directly in the relevant parent node.
This means that CSS rulesets targeting ``kbd.compound`` or ``.kbd.compound``
will no longer have any effect.
Patch by Adam Turner.

Deprecated
----------

* 13037: Deprecate the ``SingleHTMLBuilder.fix_refuris`` method.
Patch by James Addison.
* 13083, 13330: Un-deprecate ``sphinx.util.import_object``.
Patch by Matthias Geier.

Features added
--------------

* 13173: Add a new ``duplicate_declaration`` warning type,
with ``duplicate_declaration.c`` and ``duplicate_declaration.cpp`` subtypes.
Patch by Julien Lecomte and Adam Turner.
* 11824: linkcode: Allow extensions to add support for a domain by defining
the keys that should be present.
Patch by Nicolas Peugnet.
* 13144: Add a ``class`` option to the :rst:dir:`autosummary` directive.
Patch by Tim Hoffmann.
* 13146: Napoleon: Unify the type preprocessing logic to allow
Google-style docstrings to use the optional and default keywords.
Patch by Chris Barrick.
* 13227: Implement the :rst:role:`kbd` role as a ``SphinxRole``.
Patch by Adam Turner.
* 13065: Enable colour by default in when running on CI.
Patch by Adam Turner.
* 13230: Allow supressing warnings from the :rst:dir:`toctree` directive
when a glob pattern doesn't match any documents,
via the new ``toc.empty_glob`` warning sub-type.
Patch by Slawek Figiel.
* 9732: Add the new ``autodoc.mocked_object`` warnings sub-type.
Patch by Cyril Roelandt.
* 7630, 4824: autodoc: Use :file:`.pyi` type stub files
to auto-document native modules.
Patch by Adam Turner, partially based on work by Allie Fitter.
* 12975: Enable configuration of trailing commas in multi-line signatures
in the Python and Javascript domains, via the new
:confval:`python_trailing_comma_in_multi_line_signatures` and
:confval:`javascript_trailing_comma_in_multi_line_signatures`
configuration options.
* 13264: Rename the :rst:dir:`math` directive's ``nowrap`` option
to :rst:dir:`math:no-wrap`.
Patch by Adam Turner.
* 13269: Added the option to disable the use of type comments in
via the new :confval:`autodoc_use_type_comments` option,
which defaults to ``True`` for backwards compatibility.
The default will change to ``False`` in Sphinx 10.
Patch by Adam Turner.
* 9732: Add the new ``ref.any`` warnings sub-type
to allow suppressing the ambiguous 'any' cross-reference warning.
Patch by Simão Afonso and Adam Turner.
* 13272: The Python and JavaScript module directives now support
the ``:no-index-entry:`` option.
Patch by Adam Turner.
* 12233: autodoc: Allow directives to use ``:no-index-entry:``
and include the ``:no-index:`` and ``:no-index-entry:`` options within
:confval:`autodoc_default_options`.
Patch by Jonny Saunders and Adam Turner.
* 13172: Add support for short signatures in autosummary.
Patch by Tim Hoffmann.
* 13271: Change the signature prefix for abstract methods
in the Python domain to *abstractmethod* from *abstract*.
Patch by Adam Turner.
* 13271: Support the ``:abstract:`` option for
classes, methods, and properties in the Python domain.
Patch by Adam Turner.
* 12507: Add the :ref:`collapsible <collapsible-admonitions>` option
to admonition directives.
Patch by Chris Sewell.
* 8191, 8159: Add :rst:dir:`inheritance-diagram:include-subclasses` option to
the :rst:dir:`inheritance-diagram` directive.
Patch by Walter Dörwald.
* 11995: autodoc: Add support for :confval:`python_display_short_literal_types`.
Patch by Bénédikt Tran and Adam Turner.
* 13163: Always print the full context when Sphinx encounters an internal error.
Patch by Kevin Deldycke and Adam Turner.
* 13105: Introduce the :rst:role:`py:deco` role to cross-reference decorator
functions and methods in the Python domain.
Patch by Adam Turner.
* 9169: Add the :confval:`intersphinx_resolve_self` option
to resolve an intersphinx reference to the current project.
Patch by Jakob Lykke Andersen and Adam Turner.
* 11280: Add ability to skip a particular section using the ``no-search`` class.
Patch by Will Lachance.
* 13326: Remove hardcoding from handling :class:`~sphinx.addnodes.productionlist`
nodes in all writers, to improve flexibility.
Patch by Adam Turner.
* 13335: Use ``misc.highlighting_failure`` subtype for Pygments unknown lexers.
Patch by Bart Kamphorst.
* 13354: Insert abbreviation nodes (hover text) for positional- and keyword-only
separators in Python signatures.
Patch by Adam Turner.
* 13333: Add the :mod:`sphinx.ext.apidoc` extension,
to automate API documentation generation from Python modules.
Patch by Chris Sewell and Adam Turner.

Bugs fixed
----------

* 12463: autosummary: Respect an empty module ``__all__``.
Patch by Valentin Pratz
* 13060: HTML Search: use ``Map`` to store per-file term scores.
Patch by James Addison
* 13130: LaTeX docs: ``pdflatex`` index creation may fail for index entries
in French.  See :confval:`latex_use_xindy`.
Patch by Jean-François B.
* 13152: LaTeX: fix a typo from v7.4.0 in a default for ``\sphinxboxsetup``.
Patch by Jean-François B.
* 13096: HTML Search: check that query terms exist as properties in
term indices before accessing them.
* 11233: linkcheck: match redirect URIs against :confval:`linkcheck_ignore` by
overriding session-level ``requests.get_redirect_target``.
* 13195: viewcode: Fix issue where import paths differ from the directory
structure.
Patch by Ben Egan and Adam Turner.
* 13188: autodoc: fix detection of class methods implemented in C.
Patch by Bénédikt Tran.
* 1810: Always copy static files when building, regardless of whether
any documents have changed since the previous build.
Patch by Adam Turner.
* 13201: autodoc: fix ordering of members when using ``groupwise``
for :confval:`autodoc_member_order`. Class methods are now rendered
before static methods, which themselves are rendered before regular
methods and attributes.
Patch by Bénédikt Tran.
* 12975: Avoid rendering a trailing comma in C and C++ multi-line signatures.
* 13178: autodoc: Fix resolution for ``pathlib`` types.
Patch by Adam Turner.
* 13136: autodoc: Correctly handle multiple inheritance.
Patch by Pavel Holica
* 13273, 13318: Properly convert command-line overrides for Boolean types.
Patch by Adam Turner.
* 13302, 13319: Use the correct indentation for continuation lines
in :rst:dir:`productionlist` directives.
Patch by Adam Turner.
* 13328: Fix parsing of PEP 695 functions with return annotations.
Patch by Bénédikt Tran. Initial work by Arash Badie-Modiri.

Testing
-------

* 13224: Correctness fixup for ``test_html_multi_line_copyright``.
Patch by Colin Watson, applied by James Addison.
Links

Update twine from 4.0.1 to 6.1.0.

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

Links

Update codecov from 2.1.12 to 2.1.13.

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

Links

Update pytest from 7.4.4 to 8.3.4.

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

Links

Update pytest-benchmark[histogram] from 3.4.1 to 5.1.0.

Changelog

5.1.0

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

* Fixed broken hooks handling on pytest 8.1 or later (the ``TypeError: import_path() missing 1 required keyword-only argument: 'consider_namespace_packages'`` issue).
Unfortunately this sets the minimum supported pytest version to 8.1.

5.0.1

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

* Fixed bad fixture check that broke down then `nbmake <https://pypi.org/project/nbmake/>`_ was enabled.

5.0.0

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

* Dropped support for now EOL Python 3.8. Also moved tests suite to only test the latest pytest versions (8.3.x).
* Fix generate parametrize tests benchmark csv report errors (issue `268 <https://github.com/ionelmc/pytest-benchmark/issues/268>`_).
Contributed by Johnny Huang in `269 <https://github.com/ionelmc/pytest-benchmark/pull/269>`_.
* Added the ``--benchmark-time-unit`` cli option for overriding the measurement unit used for display.
Contributed by Tony Kuo in `257 <https://github.com/ionelmc/pytest-benchmark/pull/257>`_.
* Fixes spelling in some help texts.
Contributed by Eugeniy in `267 <https://github.com/ionelmc/pytest-benchmark/pull/267>`_.
* Added new cprofile options:

- ``--benchmark-cprofile-loops=LOOPS`` - previously profiling only ran the function once, this allow customization.
- ``--benchmark-cprofile-top=COUNT`` - allows showing more rows.
- ``--benchmark-cprofile-dump=[FILENAME-PREFIX]`` - allows saving to a file (that you can load in `snakeviz <https://pypi.org/project/snakeviz/>`_, `RunSnakeRun <https://pypi.org/project/RunSnakeRun/>`_ or other tools).
* Removed hidden dependency on `py.path <https://pypi.org/project/py/>`_ (replaced with pathlib).

4.0.0

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

* Dropped support for legacy Pythons (2.7, 3.6 or older).
* Switched CI to GitHub Actions.
* Removed dependency on the ``py`` library (that was not properly specified as a dependency anyway).
* Fix skipping test in `test_utils.py` if appropriate VCS not available. Also fix typo.
Contributed by Sam James in `211 <https://github.com/ionelmc/pytest-benchmark/pull/211>`_.
* Added support for pytest 7.2.0 by using ``pytest.hookimpl`` and ``pytest.hookspec`` to configure hooks.
Contributed by Florian Bruhin in `224 <https://github.com/ionelmc/pytest-benchmark/pull/224>`_.
* Now no save is attempted if ``--benchmark-disable`` is used.
Fixes `205 <https://github.com/ionelmc/pytest-benchmark/issues/205>`_.
Contributed by Friedrich Delgado in `207 <https://github.com/ionelmc/pytest-benchmark/pull/207>`_.
Links

Update pytest-cov from 3.0.0 to 6.0.0.

Changelog

6.0.0

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

* Updated various documentation inaccuracies, especially on subprocess handling.
* Changed fail under checks to use the precision set in the coverage configuration.
Now it will perform the check just like ``coverage report`` would.
* Added a ``--cov-precision`` cli option that can override the value set in your coverage configuration.
* Dropped support for now EOL Python 3.8.

5.0.0

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

* Removed support for xdist rsync (now deprecated).
Contributed by Matthias Reichenbach in `623 <https://github.com/pytest-dev/pytest-cov/pull/623>`_.
* Switched docs theme to Furo.
* Various legacy Python cleanup and CI improvements.
Contributed by Christian Clauss and Hugo van Kemenade in
`630 <https://github.com/pytest-dev/pytest-cov/pull/630>`_,
`631 <https://github.com/pytest-dev/pytest-cov/pull/631>`_,
`632 <https://github.com/pytest-dev/pytest-cov/pull/632>`_ and
`633 <https://github.com/pytest-dev/pytest-cov/pull/633>`_.
* Added a ``pyproject.toml`` example in the docs.
Contributed by Dawn James in `626 <https://github.com/pytest-dev/pytest-cov/pull/626>`_.
* Modernized project's pre-commit hooks to use ruff. Initial POC contributed by
Christian Clauss in `584 <https://github.com/pytest-dev/pytest-cov/pull/584>`_.

4.1.0

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

* Updated CI with new Pythons and dependencies.
* Removed rsyncdir support. This makes pytest-cov compatible with xdist 3.0.
Contributed by Sorin Sbarnea in `558 <https://github.com/pytest-dev/pytest-cov/pull/558>`_.
* Optimized summary generation to not be performed if no reporting is active (for example,
when ``--cov-report=''`` is used without ``--cov-fail-under``).
Contributed by Jonathan Stewmon in `589 <https://github.com/pytest-dev/pytest-cov/pull/589>`_.
* Added support for JSON reporting.
Contributed by Matthew Gamble in `582 <https://github.com/pytest-dev/pytest-cov/pull/582>`_.
* Refactored code to use f-strings.
Contributed by Mark Mayo in `572 <https://github.com/pytest-dev/pytest-cov/pull/572>`_.
* Fixed a skip in the test suite for some old xdist.
Contributed by a bunch of people in `565 <https://github.com/pytest-dev/pytest-cov/pull/565>`_.

4.0.0

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

**Note that this release drops support for multiprocessing.**


* `--cov-fail-under` no longer causes `pytest --collect-only` to fail
Contributed by Zac Hatfield-Dodds in `511 <https://github.com/pytest-dev/pytest-cov/pull/511>`_.
* Dropped support for multiprocessing (mostly because `issue 82408 <https://github.com/python/cpython/issues/82408>`_). This feature was
mostly working but very broken in certain scenarios and made the test suite very flaky and slow.

There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your
``.coveragerc``::

 [run]
 concurrency = multiprocessing
 parallel = true
 sigterm = true
* Fixed deprecation in ``setup.py`` by trying to import setuptools before distutils.
Contributed by Ben Greiner in `545 <https://github.com/pytest-dev/pytest-cov/pull/545>`_.
* Removed undesirable new lines that were displayed while reporting was disabled.
Contributed by Delgan in `540 <https://github.com/pytest-dev/pytest-cov/pull/540>`_.
* Documentation fixes.
Contributed by Andre Brisco in `543 <https://github.com/pytest-dev/pytest-cov/pull/543>`_
and Colin O'Dell in `525 <https://github.com/pytest-dev/pytest-cov/pull/525>`_.
* Added support for LCOV output format via `--cov-report=lcov`. Only works with coverage 6.3+.
Contributed by Christian Fetzer in `536 <https://github.com/pytest-dev/pytest-cov/pull/536>`_.
* Modernized pytest hook implementation.
Contributed by Bruno Oliveira in `549 <https://github.com/pytest-dev/pytest-cov/pull/549>`_
and Ronny Pfannschmidt in `550 <https://github.com/pytest-dev/pytest-cov/pull/550>`_.
Links

Update dataclass-wizard from 0.22.1 to 0.35.0.

Changelog

0.35.0

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

**Features and Improvements**

* **V1 Opt-In:**
 * Add support for Patterned Date and Time:
     * Naive Date/Time/Datetime
     * Timezone-aware Time/Datetime
     * UTC Time/Datetime
 * Update :func:`Alias` and :func:`AliasPath` to support multiple aliases and nested path(s)
 * Update the ``KeyCase.AUTO`` setting (specified via ``v1_key_case='AUTO'``) to correctly
   handle multiple possible keys for the field (e.g., it doesn't latch onto the first encountered key but now
   tries all valid key case transformations at runtime). This now results in expected or desired behavior (fixes :issue:`175`)
 * **Float to Int Conversion Change**: In V1 Opt-in (via ``Meta`` setting ``v1=True``), floats or float strings
   with fractional parts (e.g., ``123.4`` or ``"123.4"``) are no longer silently converted to integers.
   Instead, they now raise an error. However, floats without fractional parts (e.g., ``3.0`` or ``"3.0"``)
   will continue to convert to integers as before.
 * Add documentation:
     * Patterned Date and Time
     * Aliases
 * Add tests for coverage
* Optimize logic for determining if an annotated type is a ``TypedDict``
* Update ``requirements-bench.txt`` to correctly capture all Benchmark-related dependencies

**Bugfixes**

* Ensure the ``py.typed`` marker is included in the source distribution (fixes :issue:`173`)
* Address a minor bug in object path parsing that did not correctly interpret quoted literal values
within blocks such as braces ``[]``

0.34.0

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

**Features and Improvements**

- **V1 Opt-in**
 - Support for recursive types OOTB for the following Python types:
     - ``NamedTuple``
     - ``TypedDict``
     - ``Union``
     - ``Literal``
     - Nested `dataclasses`
     - `Type aliases`_ (introduced in Python 3.12+)
 - Full support for ``bytes`` and ``bytearray`` in the de/serialization process (fixes :issue:`140`).
 - Performance improvements: Optimized Load functions for ``bool``, ``NamedTuple``, ``datetime``, ``date``, and ``time``.
 - Added support for `Type aliases`_ (via ``type`` statement in Python 3.12+).
 - Improved logic in ``load_to_str`` to better check if it's within an ``Optional[...]`` type.
 - Enhanced handling of sub-types in de/serialization (**TODO**: add test cases).
 - Show deprecation warning for Meta setting ``debug_enabled`` (replaced by ``v1_debug``).

- Updated benchmarks for improved accuracy.

**Bugfixes**

- Fixed issue where code generation failed to correctly account for indexes, especially when nested collection types like ``dict`` were used within a ``NamedTuple``.
- ``make check`` now works out-of-the-box for validating ``README.rst`` and other RST files for PyPI deployment.
- :pr:`169`: Explicitly added ``utf-8`` encoding for ``setup.py`` to enable installation from source on Windows (shoutout to :user:`birkholz-cubert`!).

.. _Type aliases: https://docs.python.org/3/library/typing.html#type-aliases

0.33.0

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

* Introduce ``v1`` opt-in, providing a more user-friendly experience with significant performance improvements for de-serialization 🎉
* Add models for ``v1``, imported from ``dataclass_wizard.v1``:
 * :func:`Alias`
 * :func:`AliasPath`
* Add enums for ``v1``, imported from ``dataclass_wizard.v1.enums``:
 * :class:`KeyCase`
 * :class:`KeyAction`
* Add ``Meta`` settings for ``v1``:
 * ``v1`` — Enable opt-in for the "experimental" major release `v1` feature.
 * ``v1_debug`` — Replaces the deprecated ``debug_enabled`` Meta setting, which will be removed in ``v1``.
 * ``v1_key_case`` — Specifies the letter case used for matching JSON keys when mapping them to dataclass fields.
 * ``v1_field_to_alias`` — Custom mapping of dataclass fields to their JSON aliases (keys) for de/serialization.
 * ``v1_on_unknown_key`` — Defines the action to take when an unknown JSON key is encountered during :meth:`from_dict` or :meth:`from_json` calls.
 * ``v1_unsafe_parse_dataclass_in_union`` — Unsafe option: Enables parsing of dataclasses in unions without requiring the presence of a :attr:`tag_key`.
* Require the ``typing-extensions`` library up to Python 3.11 (its main use in Python 3.11 is ``ReadOnly`` for ``TypedDict``).
* Phase out the ``UnknownJSONKey`` exception class in favor of ``UnknownKeysError``, since ``v1`` now provides *all* missing keys in JSON (not just the first one!).
* Update benchmarks:
 * Add benchmark for ``CatchAll``.
 * Move benchmark dependencies to ``requirements-bench.txt``.
* Add new test cases.

0.32.1

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

**Bugfixes**

- Corrected logic in :class:`MappingParser` that assumed all parsers were
subclasses of :class:`AbstractParser` (:issue:`159`).
 - Add test case to confirm intended functionality.
 - Bump *dev* dependencies to latest version.

0.32.0

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

**Features and Improvements**

- Add support for `ABC Containers`_ in ``typing`` and ``collections.abc``:
 * ``Collection``
 * ``Sequence``
 * ``MutableSequence``

**Bugfixes**

- Fixed a bug in :class:`ParseError` handling.
- Resolved an issue in :class:`EnvWizard` where passing an instance of a dataclass field type to the constructor caused problems.
- Corrected logic in :mod:`parsers.py` that assumed all parsers were subclasses of :class:`AbstractParser`; parsers can now be functions as well.

.. _ABC Containers: https://docs.python.org/3/library/typing.html#aliases-to-container-abcs-in-collections-abc

0.31.0

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

Happy Thanksgiving 🦃, y'all! In this release, Dataclass Wizard introduces the long-awaited :class:`EnvWizard` 😳🎉.


**Features and Improvements**

- :class:`EnvWizard`:
 - Support for working with environment variables, secret files, and `.env` files.

- **New Functions and Helpers**:
 - :func:`EnvMeta`: Helper function to set up the ``Meta`` Config for :class:`EnvWizard`.
 - :func:`env_field`: Alias for ``dataclasses.Field()`` to set a custom environment variable for a field.
 - **Helper Functions**:
     - :func:`as_bool`, :func:`as_int`, :func:`as_str` optimized.
     - :func:`as_list`, :func:`as_dict` added.

- **Meta Class Enhancements**:
 - New meta classes such as :class:`AbstractEnvMeta`.
 - New fields added to the ``Meta`` class:
     - :attr:`env_var_to_field`
     - :attr:`field_to_env_var`
     - :attr:`debug_enabled`
     - :attr:`recursive`
     - :attr:`env_file`
     - :attr:`env_prefix`
     - :attr:`secrets_dir`
     - :attr:`key_lookup_with_load`
     - :attr:`key_transform_with_dump`
     - :attr:`skip_defaults`
     - :attr:`skip_if`
     - :attr:`skip_defaults_if`

- **Benchmark Updates**:
 - Updated benchmarks to include new libraries.
 - Added the ``--all | -A`` option to benchmark tests for running longer tests against some libraries.

- **Documentation**:
 - General documentation updates.

0.30.1

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

**Bugfixes**

* Resolved inconsistent behavior with dataclasses in ``Union`` when ``Meta`` :attr:`tag_key`
is also defined as a dataclass field (:issue:`148`).

0.30.0

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

**Features and Improvements**

- **Conditional Field Skipping**: Omit fields during JSON serialization based on user-defined conditions.
 - Introduced new :class:`Meta` settings:
     - :attr:`skip_if` — Skips all fields matching a condition.
     - :attr:`skip_defaults_if` — Skips fields with default values matching a condition.
 - Added per-field controls using :func:`SkipIf()` annotations.
 - Introduced the :func:`skip_if_field` wrapper for maximum flexibility.

- **New Helper Class**: :class:`JSONPyWizard`
 - A ``JSONWizard`` helper to disable *camelCase* transformation and keep keys as-is.

- **Typing Improvements**: Added more ``*.pyi`` files for enhanced type checking and IDE support.

- **Documentation Updates**:
 - Added details about upcoming changes in the next major release, ``v1.0``.

0.29.3

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

**Bugfixes**

* Fixed compatibility between `Global Meta Settings`_ and :attr:`recursive_classes` (:issue:`142`).

.. _Global Meta Settings: https://dataclass-wizard.readthedocs.io/en/latest/common_use_cases/meta.html#global-meta-settings

0.29.2

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

**Bugfixes**

* Fixed issue with using :attr:`Meta.auto_assign_tags` and :attr:`Meta.raise_on_unknown_json_key` together (:issue:`137`).
* Fixed :attr:`JSONWizard.debug` to prevent overwriting existing class meta.
* Resolved issue where both :attr:`auto_assign_tags` and :type:`CatchAll` resulted in the tag key being incorrectly saved in :type:`CatchAll`.
* Fixed issue when :type:`CatchAll` field was specified with a default value but serialized with :attr:`skip_defaults=False`.
* Improved performance in :class:`UnionParser`: ensured that :func:`get_parser` is called only once per annotated type.
* Added test case(s) to confirm intended behavior.

0.29.1

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

**Bugfixes**

* Include ``*.pyi`` files in source distribution (packaging).

0.29.0

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

**Features and Improvements**

- *Nested JSON Mapping* (:issue:`60`): Map nested JSON keys to dataclass fields using helper functions :func:`KeyPath` or :func:`json_field`.
- *Catch-All Keys* (:issue:`57`): Save unknown JSON keys with ease.
- *Cleaner Codebase*: Remove comments and type annotations for Python files with ``.pyi`` counterparts.
- *Enhanced Debugging*: ``debug_enabled`` now supports ``bool | int | str``, allowing flexible logging levels.
- *Documentation Updates*: Improved and expanded docs!

0.28.0

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

**Features and Improvements**

* Added :class:`TOMLWizard`.
* Introduced new (pre-process) serializer hooks:
 * :meth:`_pre_from_dict`
 * :meth:`_pre_dict`
* Added ``debug`` parameter to :meth:`JSONWizard.__init_subclass__`.
* Added ``*.pyi`` stub files for better Type Hinting and Autocompletion in IDEs (e.g., PyCharm):
 * :file:`abstractions.pyi`
 * :file:`serial_json.pyi`
* Introduced utility class :class:`FunctionBuilder` to help build and dynamically ``exec`` a function.
* Documentation/tests on the new and updated features.

**Changes**

* The returned parser for a dataclass is now the original load/dump function itself (which takes a single argument)
rather than a :class:`Parser` instance.
* Minor optimization and quality-of-life improvement: dynamically ``exec`` dataclass load and dump functions.
* Improved performance: if a class defines a :meth:`from_dict` method - equivalent to :func:`fromdict` - and a :meth:`to_dict` method
- equivalent to :func:`asdict` - replace them with dynamically generated load/dump functions.
* Deprecated the pre-process hook :meth:`DumpMixin.__pre_as_dict__`.

0.27.0

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

**Features and Improvements**

* This minor release drops support for Python 3.6, 3.7, and 3.8, all of which have reached End of Life (EOL). Check out the Python End of Life Cycle here_. Key changes resulting from this update include:
 * Resolved pyup errors, previously flagged as "insecure" due to outdated package versions that lacked support for Python 3.8 or earlier.
 * Update all requirements to latest versions.
 * Cleaned up various TODO comments scattered throughout the codebase, as many were specific to older Python versions.
 * Simplified and improved codebase for easier maintenance.
 * Remove everything except the ``py.typed`` file (see comment_).
* Added `test case`_ to satisfy :issue:`89`.
* Added support for cyclic or "recursive" dataclasses, as first mentioned in :issue:`62` (special thanks to :user:`dlenski` for finalizing this in :pr:`138`!).

**Bugfixes**

* :issue:`62`: Cyclic or "recursive" dataclasses no longer raises a :class:`RecursionError`.
* Typing locals should now correctly key off the correct Python version, see the commit_ that addressed this.

.. _here: https://devguide.python.org/versions/#status-of-python-versions
.. _test case: https://github.com/rnag/dataclass-wizard/pull/139/commits/cf2e98cb75c75dc3e566ed0205637dbd4632e159
.. _comment: https://github.com/rnag/dataclass-wizard/pull/136#issuecomment-2466463153
.. _commit: https://github.com/rnag/dataclass-wizard/pull/139/commits/310a0c28690fdfdf15a386a427d1ea9aaf8898a1

0.26.1

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

* Add ``py.typed`` marker, which finalizes :issue:`51`. Credits to :user:`stdedos` in :pr:`136`.

0.26.0

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

* This will be the latest (minor) release with support for Python 3.6, 3.7, and 3.8 --
all of which have reached *end-of-life*!

**Features and Improvements**

* Add compatability and support for **Python 3.13**. Thanks to :user:`benjjs` in :pr:`129`!

**Bugfixes**

* Fix: :meth:`LiteralParser.__contains__` method compares value of item with `Literal`_ arguments.
Contributed by :user:`mikeweltevrede` in :pr:`111`.

.. _Literal: https://docs.python.org/3/library/typing.html#typing.Literal

0.25.0

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

**Features and Improvements**

* Add support for `pathlib.Path`_. Thanks to :user:`assafge` in :pr:`79`.

.. _pathlib.Path: https://docs.python.org/3/library/pathlib.html#basic-use

0.24.1

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

* Resolve ``mypy`` typing issues. Thanks to :user:`AdiNar` in :pr:`64`.

0.24.0

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

**Features and Improvements**

* :pr:`125`: add support for ``typing.Required``, ``NotRequired``

**Bugfixes**

* Fixed by :pr:`125`: Annotating ``TypedDict`` field with one of ``Required`` or ``NotRequired`` wrappers introduced in Python 3.11, no longer raises a ``TypeError``
-- credits to :user:`claui`.

0.23.0

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

* :pr:`94`: Allows the ability to define keys in JSON/dataclass
that do not undergo transformation -- credits to :user:`cquick01`.

* ``LetterCase.NONE`` - Performs no conversion on strings.

 * ex: `MY_FIELD_NAME` -> `MY_FIELD_NAME`

0.22.3

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

**Features and Improvements**

* Add full support for Python 3.11 and 3.12 (Credits to :user:`alexanderilyin` on :pr:`101`)
* Project-specific development changes
 * Update CI to run tests on PY 3.11 and 3.12
 * Update ``wheel`` version
 * Update ``setup.py`` to add a ``dev`` extra which installs dev-related dependencies
 * Move test dependencies into ``requirements-test.txt``
 * Add ``sphinx_issues`` dependency to easily add link in docs to an user/issue/PR on GitHub
 * Update ``project_urls`` on PyPI to add extra links, such as "Changelog" and "Issue Tracker"


**Bugfixes**

* Fix: Loading a Variadic Tuple fails for length 0 (Credits to :user:`intentionally-left-nil` on :pr:`105`)
* Stop-gap fix for time-string patterns that contain ``-`` or ``+``,
as Python 3.11+ can interpret this as timezone data.

0.22.2

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

**Features and Improvements**

* Minor performance improvement when dumping custom sub-types
or unhandled types, such that we cache the dump hook
for the type so that subsequent lookups are faster overall.
Links

Update prodict from 0.8.18 to 0.8.20.

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

Links

Update python-box from 6.0.2 to 7.3.2.

Changelog

7.3.2

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

* Fixing 288 default get value error when using box_dots (thanks to Sébastien Weber)

7.3.1

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

* Fixing 275 default_box_create_on_get is ignored with from_yaml (thanks to Ward Loos)
* Fixing 285 Infinite Recursion when accessing non existent list index in a DefaultBox with box_dots (thanks to Jesper Schlegel)

7.3.0

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

* Adding tests and Cython releases for Python 3.13
* Fixing 281 consistent error message about missing YAML parser (thanks to J vanBemmel)
* Removing support for Python 3.8 as it is EOL

7.2.0

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

* Adding 266 support for accessing nested items in BoxList using numpy-style tuple indexing (thanks to Bit0r)
* Adding tests and Cython releases for Python 3.12
* Fixing 251 support for circular references in lists (thanks to Muspi Merol)
* Fixing 261 altering all `__repr__` methods so that subclassing will output the correct class name (thanks to Gabriel Tkacz)
* Fixing 267 Fix type 'int' not iterable (thanks to YISH)

7.1.1

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

* Fixing Cython optimized build deployments for linux

7.1.0

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

* Adding 255 defer ipython import for large import speed improvements (thanks to Eric Prestat)
* Adding testing for Python 3.12
* Fixing 253 merge_update box list merge types not populated to sub dictionaries (thanks to lei wang)
* Fixing 257 Two test failures due to arguments having incorrect types (thanks to Michał Górny)
* Fixing stub files to match latest code signatures
* Removing 251 support for circular references in lists (thanks to d00m514y3r)
* Removing support for Python 3.7 as it is EOL

7.0.1

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

* Switching off of poetry due to multiple build issues

7.0.0

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

* Adding 169 default functions with the box_instance and key parameter (thanks to Коптев Роман Викторович)
* Adding 170 Be able to initialize with a flattened dict - by using DDBox (thanks to Ash A.)
* Adding 192 box_dots treats all keys with periods in them as separate keys (thanks to Rexbard)
* Adding 211 support for properties and setters in subclasses (thanks to Serge Lu and David Aronchick)
* Adding 226 namespace to track changes to the box (thanks to Jacob Hayes)
* Adding 236 iPython detection to prevent adding attribute lookup words (thanks to Nishikant Parmar)
* Adding 238 allow ``|`` and ``+`` for frozen boxes (thanks to Peter B)
* Adding new DDBox class (Default Dots Box) that is a subclass of SBox
* Adding 242 more Cython builds using cibuildwheel (thanks to Jacob Hayes)
* Fixing 235 how ``|`` and ``+`` updates were performed for right operations (thanks to aviveh21)
* Fixing 234 typos (thanks to Martin Schorfmann)
* Fixing no implicit optionals with type hinting
* Removing Cython builds for mac until we can build universal2 wheels for arm M1 macs

6.1.0

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

* Adding Python 3.11 support
* Adding 195 box_from_string function (thanks to Marcelo Huerta)
* Changing the deprecated ``toml`` package with modern ``tomllib``, ``tomli`` and ``tomli-w`` usage (thanks to Michał Górny)
* Fixing mypy __ior__ type (thanks to Jacob Hayes)
* Fixing line endings with a pre-commit update
* Fixing BoxList was using old style of `super` in internal code usage
Links

Update glom from 22.1.0 to 24.11.0.

Changelog

24.11.0

_(November 2, 2024)_

- Add support for Python 3.12, dropping pre-Python 3.7 syntax.
- Add `--scalar` flag to CLI to enable cleaner way to get single values at the console and in scripts
- Upgrade requirements, fixing `face` pin (see [issue 284][i284]

[i284]: https://github.com/mahmoud/glom/issues/284

23.5.0

_(November 26, 2023)_

Add TOML support to the CLI. Thanks, [Julian](https://github.com/Julian)!
Uses the built-in [tomllib](https://docs.python.org/3/library/tomllib.html) on Python 3.11+.
`pip install glom[toml]` on Python 3.10 and earlier.

23.4.0

_(November 7, 2023)_

Officially add Python 3.11 support, fixing traceback formatting issues.

Also, change the implementation of T under the hood, no expected behavioral changes.

23.3.0

_(March 30, 2023)_

Officially drop Python 2/3.6 support and fix a small warning caused by a docstring ([258][i258]).

[i258]: https://github.com/mahmoud/glom/issues/258

23.1.1

_(January 19, 2023)_

Fix a dependency issue by pinning the `face` library.

23.1.0

_(January 18, 2023)_

Note: Planned last release to support Python 2.

Two long-awaited big changes in this release, with a couple smaller ones:

- Enabled the star/wildcard (`*`/`**`) behavior initially released in 22.1.0 (see below) by default.
- If you had a spec broken by this, you can quick-fix it without downgrading by setting `glom.core.PATH_STAR = False`.
- You can fix the broken paths by using the `Path` spec type explicitly, e.g., `Path('a', '*')` instead of simply `'a.*'`.
- `**` now includes the current target element itself. Useful for `**`-prefixed specs (e.g., `'**.key'`) so that the root element is considered.
- Rationalized argument behavior for several spec types
- Affected spec types: `Coalesce, Call, T, Match, And, Or, Not, Check, Assign`
- In short, before 23.1.0, each of these implemented their own logic around interpreting arguments. Some treated them as literals, others had varying support for specs.
- Now they all use `glom.core.arg_val` to consistently handle arguments. In brief, they now all support conservative evaluation of specs (such as explicit `T` objects), very useful for when you want your spec's `default` to reference the target.
- More docs forthcoming.
- We did our best to make this as seamless and sane as possible. If this breaks something, please file an issue, we're eager to hear from you.
- Patched an issue where OrderedDict would be treated as a plain object by Delete ([246][i246]).
- Even better fix forthcoming.
- Tweaked `Iter()` to use `Pipe()` for `.all()`, mostly for benefits to the repr.

[i246]: https://github.com/mahmoud/glom/issues/246
Links

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants