Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Dec 2, 2024

Update attrs from 21.2.0 to 24.2.0.

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

Links

Update certifi from 2021.10.8 to 2024.8.30.

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

Links

Update cfgv from 3.3.1 to 3.4.0.

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

Links

Update chardet from 4.0.0 to 5.2.0.

Changelog

5.2.0

Adds support for running chardet CLI via `python -m chardet` (0e9b7bc20366163efcc221281201baff4100fe19, dan-blanchard)

5.1.0

Features
- Add `should_rename_legacy` argument to most functions, which will rename older encodings to their more modern equivalents (e.g., `GB2312` becomes `GB18030`) (264, dan-blanchard)
- Add capital letter sharp S and ISO-8859-15 support (222, SimonWaldherr)
- Add a prober for MacRoman encoding (5 updated as c292b52a97e57c95429ef559af36845019b88b33, Rob Speer and dan-blanchard )
- Add `--minimal` flag to `chardetect` command (214, dan-blanchard)
- Add type annotations to the project and run mypy on CI (261, jdufresne)
- Add support for Python 3.11 (274, hugovk)

Fixes
- Clarify LGPL version in License trove classifier (255, musicinmybrain)
- Remove support for EOL Python 3.6 (260, jdufresne)
- Remove unnecessary guards for non-falsey values (259, jdufresne)

Misc changes
- Switch to Python 3.10 release in GitHub actions (257, jdufresne)
- Remove setup.py in favor of build package (262, jdufresne)
- Run tests on macos, Windows, and 3.11-dev (267, dan-blanchard)

5.0.0

⚠️ This release is the first release of chardet that no longer supports Python < 3.6 ⚠️

In addition to that change, it features the following user-facing changes:

- Added a prober for Johab Korean (207, grizlupo)
- Added a prober for UTF-16/32 BE/LE (109, 206, jpz) 
- Added test data for Croatian, Czech, Hungarian, Polish, Slovak, Slovene, Greek, and Turkish, which should help prevent future errors with those languages
- Improved XML tag filtering, which should improve accuracy for XML files (208)
- Tweaked `SingleByteCharSetProber` confidence to match latest uchardet (209)
- Made `detect_all` return child prober confidences (210)
- Updated examples in docs (223, domdfcoding)
- Documentation fixes (212, 224, 225, 226, 220, 221, 244 from too many to mention)
- Minor performance improvements (252, deedy5)
- Add support for Python 3.10 when testing (232, jdufresne)
- Lots of little development cycle improvements, mostly thanks to jdufresne
Links

Update click from 8.0.3 to 8.1.7.

Changelog

8.1.7

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

Released 2023-08-17

-   Fix issue with regex flags in shell completion. :issue:`2581`
-   Bash version detection issues a warning instead of an error. :issue:`2574`
-   Fix issue with completion script for Fish shell. :issue:`2567`

8.1.6

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

Released 2023-07-18

-   Fix an issue with type hints for ``click.group()``. :issue:`2558`

8.1.5

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

Released 2023-07-13

-   Fix an issue with type hints for ``click.command()``, ``click.option()``, and
 other decorators. Introduce typing tests. :issue:`2558`

8.1.4

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

Released 2023-07-06

-   Replace all ``typing.Dict`` occurrences to ``typing.MutableMapping`` for
 parameter hints. :issue:`2255`
-   Improve type hinting for decorators and give all generic types parameters.
 :issue:`2398`
-   Fix return value and type signature of `shell_completion.add_completion_class`
 function. :pr:`2421`
-   Bash version detection doesn't fail on Windows. :issue:`2461`
-   Completion works if there is a dot (``.``) in the program name. :issue:`2166`
-   Improve type annotations for pyright type checker. :issue:`2268`
-   Improve responsiveness of ``click.clear()``. :issue:`2284`
-   Improve command name detection when using Shiv or PEX. :issue:`2332`
-   Avoid showing empty lines if command help text is empty. :issue:`2368`
-   ZSH completion script works when loaded from ``fpath``. :issue:`2344`.
-   ``EOFError`` and ``KeyboardInterrupt`` tracebacks are not suppressed when
 ``standalone_mode`` is disabled. :issue:`2380`
-   ``group.command`` does not fail if the group was created with a custom
 ``command_class``. :issue:`2416`
-   ``multiple=True`` is allowed for flag options again and does not require
 setting ``default=()``. :issue:`2246, 2292, 2295`
-   Make the decorators returned by ``argument()`` and ``option()`` reusable when the
 ``cls`` parameter is used. :issue:`2294`
-   Don't fail when writing filenames to streams with strict errors. Replace invalid
 bytes with the replacement character (``�``). :issue:`2395`
-   Remove unnecessary attempt to detect MSYS2 environment. :issue:`2355`
-   Remove outdated and unnecessary detection of App Engine environment. :pr:`2554`
-   ``echo()`` does not fail when no streams are attached, such as with ``pythonw`` on
 Windows. :issue:`2415`
-   Argument with ``expose_value=False`` do not cause completion to fail. :issue:`2336`

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`
Links

Update click-log from 0.3.2 to 0.4.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 coverage from 6.0.1 to 7.6.8.

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

Links

Update distlib from 0.3.3 to 0.3.9.

Changelog

0.3.9

~~~~~

Released: 2024-10-09

- scripts

 - Merge 215: preload script wrappers on Windows to assist with a pip issue (thanks,
   Paul Moore).

 - Fix 220: Remove duplicated newline in shebang of windows launcher (thanks. A2uria).

 - Fix 230: Add handling for cross-compilation environments (thanks, Russell Keith-Magee).

- util

 - Fix 224: Do not use the absolute path to cache wheel extensions (thanks, Stewart Miles).

- wheel

 - Fix 222: Support mounting wheels that use extensions without an EXTENSIONS file (thanks,
   Stewart Miles).

 - Fix 225: Add support for wheel compatibility with the limited API (thanks, Stewart Miles).

0.3.8

~~~~~

Released: 2023-12-12

- markers

 - Fix 209: use legacy version implementation for Python versions.

- tests

 - Fix 204: use symlinks in venv creation during test.

 - Fix 208: handle deprecation removals in Python 3.13.

0.3.7

~~~~~

Released: 2023-07-17

- database

 - Handle newlines when parsing metadata.

- markers

 - Use version comparison logic for python_full_version. Thanks to Albert
   Peschar for the patch.

 - Simplify code with a set comprehension. Thanks to Christian Clauss for
   the patch.

- scripts

 - Fix shebang computation for source builds of Python. Thanks to Eli
   Schwartz for the patch.

- util

 - Extract tarfiles more safely by incorporating tarfile filters. Thanks to
   Petr Viktorin for the patch.

 - Check for 'has_cert' attribute before using it. Thanks to Lumir Balhar for
   the patch.

 - Fix 203: Handle parsing of export entries to allow script names such as
   "," or ",foo". Thanks to Flavio Amurrio for the report.

- versions

 - Fix 200: Improve conformance to PEP440. Thanks to GitHub user con-f-use
   for the report.

In addition to the above, an SPDX license identifier is now used.

0.3.6

~~~~~

Released: 2022-08-26

- scripts

 - Fixed 175: Updated launcher executables to better handle the relationship
   between launcher and child process in the Job API.

0.3.5

~~~~~

Released: 2022-07-14

- database

 - Fixed 170: Corrected implementation of ``get_required_dists()``.

- index

 - Updated coverage pragmas for tests relating to obsolete PyPI APIs.

- locators

 - Changed the default locator configuration.

- metadata

 - Updates in support of PEP 643 / Metadata 2.2.

- scripts

 - Updated launcher executables. Thanks to Michael Bikovitsky for his help with
   the launcher changes.

 - Fixed 164: Improved support for reproducible builds by allowing a fixed
   date/time to be inserted into created .exe files. Thanks to Somber Night for the
   patch.

- util

 - Fixed 161: Updated test case.

- wheel

 - Updated to write archive path of RECORD to RECORD instead of staging path.
   Thanks to Pieter Pas for the patch.

 - Fixed 169: Removed usage of deprecated imp module in favour of importlib.

 - Fixed 172: Compute ABI correctly for Python < 3.8.

In addition to the above, setup.py was replaced by setup.cfg and pyproject.toml.

0.3.4

~~~~~

Released: 2021-12-08

- database

 - Fixed 153: Raise warnings in get_distributions() if bad metadata seen, but keep
   going.

- markers

 - Fixed 154: Determine Python versions correctly for Python >= 3.10.

- scripts

 - Updated launcher executables.

Code relating to support for Python 2.6 was also removed.
Links

Update filelock from 3.3.0 to 3.16.1.

Changelog

3.16.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* CI improvements by gaborbernat in https://github.com/tox-dev/filelock/pull/362


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.16.0...3.16.1

3.16.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Test Python 3.13 by hugovk in https://github.com/tox-dev/filelock/pull/352
* Add 3.13 to CI by gaborbernat in https://github.com/tox-dev/filelock/pull/359


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.15.4...3.16.0

3.15.4

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Pass `file_lock` as positional argument by kwist-sgr in https://github.com/tox-dev/filelock/pull/347


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.15.3...3.15.4

3.15.3

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Add test for virtualenv stability by gaborbernat in https://github.com/tox-dev/filelock/pull/344
* Fix `TypeError: _CountedFileLock.__init__() got an unexpected keyword argument 'timeout'` by kwist-sgr in https://github.com/tox-dev/filelock/pull/345


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.15.2...3.15.3

3.15.2

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Use a metaclass to implement the singleton pattern by kwist-sgr in https://github.com/tox-dev/filelock/pull/340

New Contributors
* kwist-sgr made their first contribution in https://github.com/tox-dev/filelock/pull/340

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.15.1...3.15.2

3.15.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Hotfix: Restore __init__ method; more robust initialization for singleton locks by ethanbb in https://github.com/tox-dev/filelock/pull/338


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.15.0...3.15.1

3.15.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* asyncio support by Ovizro in https://github.com/tox-dev/filelock/pull/332
* Don't initialize BaseFileLock when just returning existing instance by ethanbb in https://github.com/tox-dev/filelock/pull/334

New Contributors
* Ovizro made their first contribution in https://github.com/tox-dev/filelock/pull/332
* ethanbb made their first contribution in https://github.com/tox-dev/filelock/pull/334

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.14.0...3.15.0

3.14.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* feat: `blocking` parameter on lock constructor with tests and docs by iamkhav in https://github.com/tox-dev/filelock/pull/325

New Contributors
* iamkhav made their first contribution in https://github.com/tox-dev/filelock/pull/325

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.13.4...3.14.0

3.13.4

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Raise error on incompatible singleton timeout and mode args by nefrob in https://github.com/tox-dev/filelock/pull/320


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.13.3...3.13.4

3.13.3

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Make singleton class instance dict unique per subclass by nefrob in https://github.com/tox-dev/filelock/pull/318


**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.13.2...3.13.3

3.13.2

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fixed small typo in _unix.py by snemes in https://github.com/tox-dev/filelock/pull/302
* Update SECURITY.md to reflect Python 3.7 support dropoff by kemzeb in https://github.com/tox-dev/filelock/pull/304
* Update index.rst to improve the demo usage by youkaichao in https://github.com/tox-dev/filelock/pull/314
* [BugFix] fix permission denied error when lock file is placed in `/tmp` by kota-iizuka in https://github.com/tox-dev/filelock/pull/317

New Contributors
* snemes made their first contribution in https://github.com/tox-dev/filelock/pull/302
* kemzeb made their first contribution in https://github.com/tox-dev/filelock/pull/304
* youkaichao made their first contribution in https://github.com/tox-dev/filelock/pull/314
* kota-iizuka made their first contribution in https://github.com/tox-dev/filelock/pull/317

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.13.1...3.13.2

3.13.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Allow users to subclass FileLock with custom keyword arguments by hmaarrfk in https://github.com/tox-dev/filelock/pull/284

New Contributors
* hmaarrfk made their first contribution in https://github.com/tox-dev/filelock/pull/284

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.13.0...3.13.1

3.13.0

<!-- Release notes generated using configuration in .github/release.yml at 3.13.0 -->

What's Changed
* Support reentrant locking on lock file path via optional singleton instance by nefrob in https://github.com/tox-dev/filelock/pull/283

New Contributors
* nefrob made their first contribution in https://github.com/tox-dev/filelock/pull/283

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.12.4...3.13.0

3.12.4

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* change typing-extensions to be installed only with the [typing] extra by asottile in https://github.com/tox-dev/filelock/pull/276

New Contributors
* asottile made their first contribution in https://github.com/tox-dev/filelock/pull/276

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.12.3...3.12.4

3.12.3

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fix import ordering by gaborbernat in https://github.com/tox-dev/filelock/pull/246
* Exclude dependabot and pre-commit ci from release notes by gaborbernat in https://github.com/tox-dev/filelock/pull/251
* Create parent directories if necessary by gerlero in https://github.com/tox-dev/filelock/pull/254
* fix ci 08 21 by gaborbernat in https://github.com/tox-dev/filelock/pull/263
* lock_file type-hint by keller00 in https://github.com/tox-dev/filelock/pull/267
* adding tox.ini to sdist by keller00 in https://github.com/tox-dev/filelock/pull/265

New Contributors
* gerlero made their first contribution in https://github.com/tox-dev/filelock/pull/254
* keller00 made their first contribution in https://github.com/tox-dev/filelock/pull/267

**Full Changelog**: https://github.com/tox-dev/filelock/compare/3.12.2...3.12.3

3.12.2

What's Changed
* Restore 'if TYPE_CHECKING' syntax for FileLock definition by dlax in https://github.com/tox-dev/py-filelock/pull/245

New Contributors
* dlax made their first contribution in https://github.com/tox-dev/py-filelock/pull/245

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.12.1...3.12.2

3.12.1

What's Changed
* Add trusted-publish by gaborbernat in https://github.com/tox-dev/py-filelock/pull/236
* Add 3.12 support by gaborbernat in https://github.com/tox-dev/py-filelock/pull/237
* Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by dependabot in https://github.com/tox-dev/py-filelock/pull/239
* git ls-files -z -- .github/workflows/check.yml | xargs -0 sed -i 's|3.12.0-alpha.7|3.12.0-beta.1|g' by gaborbernat in https://github.com/tox-dev/py-filelock/pull/243
* Use ruff by gaborbernat in https://github.com/tox-dev/py-filelock/pull/244
* Fix test_bad_lock_file for other OSes by TheMatt2 in https://github.com/tox-dev/py-filelock/pull/242


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.12.0...3.12.1

3.12.0

What's Changed
* Fix: 225 :Get rid of warning about inability to link to _thread._local. by csm10495 in https://github.com/tox-dev/py-filelock/pull/226
* Bump deps and tools by gaborbernat in https://github.com/tox-dev/py-filelock/pull/228
* Add umask check to tests so umask 002 is valid by TheMatt2 in https://github.com/tox-dev/py-filelock/pull/227
* Fix lock hang on Windows by TheMatt2 in https://github.com/tox-dev/py-filelock/pull/231
* Conditionally disable/enable thread-local lock behavior. by csm10495 in https://github.com/tox-dev/py-filelock/pull/232


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.11.0...3.12.0

3.11.0

What's Changed
* Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 by dependabot in https://github.com/tox-dev/py-filelock/pull/218
* Fix 220: Allow filelock test thread to catch any exceptions by TheMatt2 in https://github.com/tox-dev/py-filelock/pull/221
* Bump deps and tools by gaborbernat in https://github.com/tox-dev/py-filelock/pull/222
* Run more pypy versions in CI but without coverage by gaborbernat in https://github.com/tox-dev/py-filelock/pull/224
* Make the lock a thread local variable by csm10495 in https://github.com/tox-dev/py-filelock/pull/219

New Contributors
* csm10495 made their first contribution in https://github.com/tox-dev/py-filelock/pull/219

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.7...3.11.0

3.10.7

What's Changed
* use fchmod by jfennick in https://github.com/tox-dev/py-filelock/pull/214

New Contributors
* jfennick made their first contribution in https://github.com/tox-dev/py-filelock/pull/214

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.6...3.10.7

3.10.6

What's Changed
* Bugfix/147 by jahrules in https://github.com/tox-dev/py-filelock/pull/213


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.5...3.10.6

3.10.5

What's Changed
* proposed fix for issue 67 by jahrules in https://github.com/tox-dev/py-filelock/pull/212


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.4...3.10.5

3.10.4

What's Changed
* updated os.open to preserve mode by jahrules in https://github.com/tox-dev/py-filelock/pull/211


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.3...3.10.4

3.10.3

What's Changed
* Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by dependabot in https://github.com/tox-dev/py-filelock/pull/207
* bug fix by jahrules in https://github.com/tox-dev/py-filelock/pull/209


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.2...3.10.3

3.10.2

What's Changed
* changed from os.umask to os.chmod by jahrules in https://github.com/tox-dev/py-filelock/pull/206


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.1...3.10.2

3.10.1

What's Changed
* Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by dependabot in https://github.com/tox-dev/py-filelock/pull/200
* Bump deps and tools by gaborbernat in https://github.com/tox-dev/py-filelock/pull/201
* Properly pickle of Timeout objects + test cases by TheMatt2 in https://github.com/tox-dev/py-filelock/pull/203

New Contributors
* TheMatt2 made their first contribution in https://github.com/tox-dev/py-filelock/pull/203

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.10.0...3.10.1

3.10.0

What's Changed
* added multiuser support and associated tests by jahrules in https://github.com/tox-dev/py-filelock/pull/192

New Contributors
* jahrules made their first contribution in https://github.com/tox-dev/py-filelock/pull/192

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.9.1...3.10.0

3.9.1

What's Changed
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/188
* Bump deps and tools by gaborbernat in https://github.com/tox-dev/py-filelock/pull/193
* Bump deps and tools by gaborbernat in https://github.com/tox-dev/py-filelock/pull/197
* Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by dependabot in https://github.com/tox-dev/py-filelock/pull/198
* use time.perf_counter instead of time.monotonic by zpz in https://github.com/tox-dev/py-filelock/pull/194

New Contributors
* zpz made their first contribution in https://github.com/tox-dev/py-filelock/pull/194

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.9.0...3.9.1

3.9.0

What's Changed
* Move to hatchling build backend by gaborbernat in https://github.com/tox-dev/py-filelock/pull/185


**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.8.2...3.9.0

3.8.2

What's Changed
* Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by dependabot in https://github.com/tox-dev/py-filelock/pull/178
* Update the license classifier to "Unlicense" by jond01 in https://github.com/tox-dev/py-filelock/pull/180

New Contributors
* jond01 made their first contribution in https://github.com/tox-dev/py-filelock/pull/180

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.8.1...3.8.2

3.8.1

What's Changed
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/166
* link to flufl.lock by dholth in https://github.com/tox-dev/py-filelock/pull/167
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/168
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/169
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/170
* fix BaseFileLock.timeout's getter/setter being obscured by itself by dearfl in https://github.com/tox-dev/py-filelock/pull/172
* Fix mypy fails understanding FileLock by gaborbernat in https://github.com/tox-dev/py-filelock/pull/177

New Contributors
* dholth made their first contribution in https://github.com/tox-dev/py-filelock/pull/167
* dearfl made their first contribution in https://github.com/tox-dev/py-filelock/pull/172

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.8.0...3.8.1

3.8.0

What's Changed
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/149
* Bump actions/upload-artifact from 2 to 3 by dependabot in https://github.com/tox-dev/py-filelock/pull/154
* Bump actions/download-artifact from 2 to 3 by dependabot in https://github.com/tox-dev/py-filelock/pull/152
* Bump pre-commit/action from 2.0.3 to 3.0.0 by dependabot in https://github.com/tox-dev/py-filelock/pull/151
* Bump actions/checkout from 2 to 3 by dependabot in https://github.com/tox-dev/py-filelock/pull/153
* Bump actions/setup-python from 2 to 4 by dependabot in https://github.com/tox-dev/py-filelock/pull/150
* Add timeout unit to docstrings by jnordberg in https://github.com/tox-dev/py-filelock/pull/148
* Unify badges style by DeadNews in https://github.com/tox-dev/py-filelock/pull/155
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/156
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/157
* Check 3.11 support by gaborbernat in https://github.com/tox-dev/py-filelock/pull/158
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/159
* Bump dependencies by gaborbernat in https://github.com/tox-dev/py-filelock/pull/160
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/162

New Contributors
* dependabot made their first contribution in https://github.com/tox-dev/py-filelock/pull/154
* jnordberg made their first contribution in https://github.com/tox-dev/py-filelock/pull/148
* DeadNews made their first contribution in https://github.com/tox-dev/py-filelock/pull/155

**Full Changelog**: https://github.com/tox-dev/py-filelock/compare/3.7.1...3.8.0
Links

Update flake8 from 4.0.1 to 7.1.1.

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

Links

Update identify from 2.3.0 to 2.6.3.

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

Links

Update iniconfig from 1.1.1 to 2.0.0.

Changelog

2.0.0

======

* add support for Python 3.7-3.11
* drop support for Python 2.6-3.6
* add encoding argument defaulting to utf-8
* inline and clarify type annotations
* move parsing code from inline to extra file
* add typing overloads for helper methods


.. note::

major release due to the major changes in python versions supported + changes in packaging

the api is expected to be compatible
Links

Update jsonschema from 4.1.0 to 4.23.0.

Changelog

4.23.0

=======

* Do not reorder dictionaries (schemas, instances) that are printed as part of validation errors.
* Declare support for Py3.13

4.22.0

=======

* Improve ``best_match`` (and thereby error messages from ``jsonschema.validate``) in cases where there are multiple *sibling* errors from applying ``anyOf`` / ``allOf`` -- i.e. when multiple elements of a JSON array have errors, we now do prefer showing errors from earlier elements rather than simply showing an error for the full array (1250).
* (Micro-)optimize equality checks when comparing for JSON Schema equality by first checking for object identity, as ``==`` would.

4.21.1

=======

* Slightly speed up the ``contains`` keyword by removing some unnecessary validator (re-)creation.

4.21.0

=======

* Fix the behavior of ``enum`` in the presence of ``0`` or ``1`` to properly consider ``True`` and ``False`` unequal (1208).
* Special case the error message for ``{min,max}{Items,Length,Properties}`` when they're checking for emptiness rather than true length.

4.20.0

=======

* Properly consider items (and properties) to be evaluated by ``unevaluatedItems`` (resp. ``unevaluatedProperties``) when behind a ``$dynamicRef`` as specified by the 2020 and 2019 specifications.
* ``jsonschema.exceptions.ErrorTree.__setitem__`` is now deprecated.
More broadly, in general users of ``jsonschema`` should never be mutating objects owned by the library.

4.19.2

=======

* Fix the error message for additional items when used with heterogeneous arrays.
* Don't leak the ``additionalItems`` keyword into JSON Schema draft 2020-12, where it was replaced by ``items``.

4.19.1

=======

* Single label hostnames are now properly considered valid according to the ``hostname`` format.
This is the behavior specified by the relevant RFC (1123).
IDN hostname behavior was already correct.

4.19.0

=======

* Importing the ``Validator`` protocol directly from the package root is deprecated.
Import it from ``jsonschema.protocols.Validator`` instead.
* Automatic retrieval of remote references (which is still deprecated) now properly succeeds even if the retrieved resource does not declare which version of JSON Schema it uses.
Such resources are assumed to be 2020-12 schemas.
This more closely matches the pre-referencing library behavior.

4.18.6

=======

* Set a ``jsonschema`` specific user agent when automatically retrieving remote references (which is deprecated).

4.18.5

=======

* Declare support for Py3.12

4.18.4

=======

* Improve the hashability of wrapped referencing exceptions when they contain hashable data.

4.18.3

=======

* Properly preserve ``applicable_validators`` in extended validators.
Specifically, validators extending early drafts where siblings of ``$ref`` were ignored will properly ignore siblings in the extended validator.

4.18.2

=======

* Fix an additional regression with the deprecated ``jsonschema.RefResolver`` and pointer resolution.

4.18.1

=======

* Fix a regression with ``jsonschema.RefResolver`` based resolution when used in combination with a custom validation dialect (via ``jsonschema.validators.create``).

4.18.0

=======

This release majorly rehauls the way in which JSON Schema reference resolution is configured.
It does so in a way that *should* be backwards compatible, preserving old behavior whilst emitting deprecation warnings.

* ``jsonschema.RefResolver`` is now deprecated in favor of the new `referencing library <https://github.com/python-jsonschema/referencing/>`_.
``referencing`` will begin in beta, but already is more compliant than the existing ``$ref`` support.
This change is a culmination of a meaningful chunk of work to make ``$ref`` resolution more flexible and more correct.
Backwards compatibility *should* be preserved for existing code which uses ``RefResolver``, though doing so is again now deprecated, and all such use cases should be doable using the new APIs.
Please file issues on the ``referencing`` tracker if there is functionality missing from it, or here on the ``jsonschema`` issue tracker if you have issues with existing code not functioning the same, or with figuring out how to change it to use ``referencing``.
In particular, this referencing change includes a change concerning *automatic* retrieval of remote references (retrieving ``http://foo/bar`` automatically within a schema).
This behavior has always been a potential security risk and counter to the recommendations of the JSON Schema specifications; it has survived this long essentially only for backwards compatibility reasons, and now explicitly produces warnings.
The ``referencing`` library itself will *not* automatically retrieve references if you interact directly with it, so the deprecated behavior is only triggered if you fully rely on the default ``$ref`` resolution behavior and also include remote references in your schema, which will still be retrieved during the deprecation period (after which they will become an error).
* Support for Python 3.7 has been dropped, as it is nearing end-of-life.
This should not be a "visible" change in the sense that ``requires-python`` has been updated, so users using 3.7 should still receive ``v4.17.3`` when installing the library.
* On draft 2019-09, ``unevaluatedItems`` now properly does *not* consider items to be evaluated by an ``additionalItems`` schema if ``items`` is missing from the schema, as the specification says in this case that ``additionalItems`` must be completely ignored.
* Fix the ``date`` format checker on Python 3.11 (when format assertion behavior is enabled), where it was too liberal (1076).
* Speed up validation of ``unevaluatedProperties`` (1075).

Deprecations
------------

* ``jsonschema.RefResolver`` -- see above for details on the replacement
* ``jsonschema.RefResolutionError`` -- see above for details on the replacement
* relying on automatic resolution of remote references -- see above for details on the replacement
* importing ``jsonschema.ErrorTree`` -- instead import it via ``jsonschema.exceptions.ErrorTree``
* importing ``jsonschema.FormatError`` -- instead import it via ``jsonschema.exceptions.FormatError``

4.17.3

=======

* Fix instantiating validators with cached refs to boolean schemas
rather than objects (1018).

4.17.2

=======

* Empty strings are not valid relative JSON Pointers (aren't valid under the
RJP format).
* Durations without (trailing) units are not valid durations (aren't
valid under the duration format). This involves changing the dependency
used for validating durations (from ``isoduration`` to ``isodate``).

4.17.1

=======

* The error message when using ``unevaluatedProperties`` with a non-trivial
schema value (i.e. something other than ``false``) has been improved (996).

4.17.0

=======

* The ``check_schema`` method on ``jsonschema.protocols.Validator`` instances
now *enables* format validation by default when run. This can catch some
additional invalid schemas (e.g. containing invalid regular expressions)
where the issue is indeed uncovered by validating against the metaschema
with format validation enabled as an assertion.
* The ``jsonschema`` CLI (along with ``jsonschema.cli`` the module) are now
deprecated. Use ``check-jsonschema`` instead, which can be installed via
``pip install check-jsonschema`` and found
`here <https://github.com/python-jsonschema/check-jsonschema>`_.

4.16.1

=======

* Make ``ErrorTree`` have a more grammatically correct ``repr``.

4.16.0

=======

* Improve the base URI behavior when resolving a ``$ref`` to a resolution URI
which is different from the resolved schema's declared ``$id``.
* Accessing ``jsonschema.draftN_format_checker`` is deprecated. Instead, if you
want access to the format checker itself, it is exposed as
``jsonschema.validators.DraftNValidator.FORMAT_CHECKER`` on any
``jsonschema.protocols.Validator``.

4.15.0

=======

* A specific API Reference page is now present in the documentation.
* ``$ref`` on earlier drafts (specifically draft 7 and 6) has been "fixed" to
follow the specified behavior when present alongside a sibling ``$id``.
Specifically the ID is now properly ignored, and references are resolved
against whatever resolution scope was previously relevant.

4.14.0

=======

* ``FormatChecker.cls_checks`` is deprecated. Use ``FormatChecker.checks`` on
an instance of ``FormatChecker`` instead.
* ``unevaluatedItems`` has been fixed for draft 2019. It's nonetheless
discouraged to use draft 2019 for any schemas, new or old.
* Fix a number of minor annotation issues in ``protocols.Validator``

4.13.0

=======

* Add support for creating validator classes whose metaschema uses a different
dialect than its schemas. In other words, they may use draft2020-12 to define
which schemas are valid, but the schemas themselves use draft7 (or a custom
dialect, etc.) to define which *instances* are valid. Doing this is likely
not something most users, even metaschema authors, may need, but occasionally
will be useful for advanced use cases.

4.12.1

=======

* Fix some stray comments in the README.

4.12.0

=======

* Warn at runtime when subclassing validator classes. Doing so was not
intended to be public API, though it seems some downstream libraries
do so. A future version will make this an error, as it is brittle and
better served by composing validator objects instead. Feel free to reach
out if there are any cases where changing existing code seems difficult
and I can try to provide guidance.

4.11.0

=======

* Make the rendered README in PyPI simpler and fancier. Thanks Hynek (983)!

4.10.3

=======

* ``jsonschema.validators.validator_for`` now properly uses the explicitly
provided default validator even if the ``$schema`` URI is not found.

4.10.2

=======

* Fix a second place where subclasses may have added attrs attributes (982).

4.10.1

=======

* Fix Validator.evolve (and APIs like ``iter_errors`` which call it) for cases
where the validator class has been subclassed. Doing so wasn't intended to be
public API, but given it didn't warn or raise an error it's of course
understandable. The next release however will make it warn (and a future one
will make it error). If you need help migrating usage of inheriting from a
validator class feel free to open a discussion and I'll try to give some
guidance (982).

4.10.0

=======

* Add support for referencing schemas with ``$ref`` across different versions
of the specification than the referrer's

4.9.1

======

* Update some documentation examples to use newer validator releases in their
sample code.

4.9.0

======

* Fix relative ``$ref`` resolution when the base URI is a URN or other scheme
(544).
* ``pkgutil.resolve_name`` is now used to retrieve validators
provided on the command line. This function is only available on
3.9+, so 3.7 and 3.8 (which are still supported) now rely on the
`pkgutil_resolve_name <https://pypi.org/project/pkgutil_resolve_name/>`_
backport package. Note however that the CLI itself is due
to be deprecated shortly in favor of `check-jsonschema
<https://github.com/python-jsonschema/check-jsonschema>`_.

4.8.0

======

* ``best_match`` no longer traverses into ``anyOf`` and ``oneOf`` when all of
the errors within them seem equally applicable. This should lead to clearer
error messages in some cases where no branches were matched.

4.7.2

======

* Also have ``best_match`` handle cases where the ``type`` validator is an
array.

4.7.1

======

* Minor tweak of the PyPI hyperlink names

4.7.0

======

* Enhance ``best_match`` to prefer errors from branches of the schema which
match the instance's type (728)

4.6.2

======

* Fix a number of minor typos in docstrings, mostly private ones (969)

4.6.1

======

* Gut the (incomplete) implementation of ``recursiveRef`` on draft 2019. It
needs completing, but for now can lead to recursion errors (e.g. 847).

4.6.0

======

* Fix ``unevaluatedProperties`` and ``unevaluatedItems`` for types they should
ignore (949)
* ``jsonschema`` now uses `hatch <https://hatch.pypa.io/>`_ for its build
process. This should be completely transparent to end-users (and only matters
to contributors).

4.5.1

======

* Revert changes to ``$dynamicRef`` which caused a performance regression
in v4.5.0

4.5.0

======

* Validator classes for each version now maintain references to the correct
corresponding format checker (905)
* Development has moved to a `GitHub organization
<https://github.com/python-jsonschema/>`_.
No functional behavior changes are expected from the change.

4.4.0

======

* Add ``mypy`` support (892)
* Add support for Python 3.11

4.3.3

======

* Properly report deprecation warnings at the right stack level (899)

4.3.2

======

* Additional performance improvements for resolving refs (896)

4.3.1

======

* Resolving refs has had performance improvements (893)

4.3.0

======

* Fix undesired fallback to brute force container uniqueness check on
certain input types (893)
* Implement a PEP544 Protocol for validator classes (890)

4.2.1

======

* Pin ``importlib.resources`` from below (877)

4.2.0

======

* Use ``importlib.resources`` to load schemas (873)
* Ensure all elements of arrays are verified for uniqueness by ``uniqueItems``
(866)

4.1.2

======

* Fix ``dependentSchemas`` to properly consider non-object instances to be
valid (850)

4.1.1

======

* Fix ``prefixItems`` not indicating which item was invalid within the instance
path (862)
Links

Update mccabe from 0.6.1 to 0.7.0.

Changelog

0.7.0

* Drop support for all versions of Python lower than 3.6

* Add support for Python 3.8, 3.9, and 3.10

* Fix option declaration for Flake8
Links

Update more-itertools from 8.10.0 to 10.5.0.

Changelog

10.5.0

------

* Bug fixes
 * A missing symbol in ``more.pyi`` was fixed (thanks to eberts-google and nathanielmanistaatgoogle)

* Other changes
 * :func:`all_equal` was optimized (thanks to pochmann3 and rhettinger)

10.4.0

------

* Changes to existing functions
 * :func:`circular_shifts` now accepts a ``steps`` parameter (thanks to rhettinger)
 * :func:`distinct_permutations` now accepts iterables with non-comparable items (thanks to hgustafsson, JamesParrott, and pochmann3)
 * :class:`run_length`, :func:`totient`, :func:`sliding_window`, and :func:`triplewise` were optimized (thanks to rhettinger)
 * :class:`ilen` was optimized (thanks to pochmann3 and rhettinger)
 * :func:`sample` was improved, and now accepts ``counts`` and ``strict`` parameters (thanks to rhettinger)
 * :func:`set_partitions` now accepts ``min_size`` and ``max_size`` parameters (thanks to Pandede)
 * :func:`seekable`'s ``relative_seek`` method remembers previous calls (thanks to dkrikun)
 * :func:`sort_together` now accepts a ``strict`` parameter (thanks to rhettinger and Pandede)

* Other changes
 * The docs for :func:`is_sorted` and :func:`strictly_n` were improved (thanks to pochmann3 and fakuivan)
 * The typing information for :func:`windowed_complete`, :func:`zip_broadcast`, and and :func:`zip_equal` were improved (thanks to m472, eyalho, akisatoon1, jbosboom, and Pandede)

10.3.0

------

* New functions
 * :func:`powerset_of_sets`, :func:`dft`, and :func:`idft` (thanks to rhettinger)
 * :func:`join_mappings` (thanks to NeilGirdhar and rhettinger)
 * :func:`doublestarmap` (thanks to Skeen, monk-time, DamianB-BitFlipper, and ergoithz)
 * :func:`unique` (thanks to rhettinger)

* Changes to existing functions
 * :func:`collapse`, :func:`chunked_even`, :func:`ichunked`, :func:`padded`, and :func:`windowed` were optimized and improved (thanks to james-wasson)
 * :func:`totient` was optimized (thanks to rhettinger)
 * :func:`roundrobin` was updated and improved (thanks to rhettinger)
 * :func:`all_equal` now accepts a *key* parameter.
 * The docs for :func:`value_chain` were improved (thanks to bjrtx)
 * The type annotations for :class:`countable` were improved (thanks to aidanholm)

* Other changes
 * Unit tests were improved (thanks to haukex)
 * Some documentation issues were fixed (thanks to bjrtx and DimitriPapadopoulos)

10.2.0

------

* New functions
 * :func:`iter_suppress` (thanks to jaraco, pochmann, and rhettinger)
 * :func:`filter_map` (thanks to struktured)
 * :func:`classify_unique` (thanks to haukex)
 * :func:`totient` (from the itertools docs)
 * :func:`reshape` (from the itertools docs)

* Changes to existing functions
 * :func:`factor`, :func:`iter_index`, :func:`sieve`, and :func:`unique_justseen` were updated to match the itertools docs
 * :func:`first` was was optimized (thanks to pochmann)
 * :func:`takewhile_inclusive` was was refactored (thanks to eltoder)
 * :func:`combination_with_replacement_index` was was optimized (thanks to elliotwutingfeng and rhettinger)
 * :func:`nth_permutation`, :func:`nth_combination_with_replacement`, :func:`combination_index`, and :func:`combination_with_replacement_index` were optimized (thanks to rhettinger)
 * :func:`batched` now accepts a `strict` argument (adapted from itertools docs)
 * :func:`time_limited` was improved for Windows (thanks to haukex)

* Other changes
 * Several typing updates were made (thanks to obaltian and ilai-deutel)
 * Some documentation issues were fixed (thanks to F-park, DimitriPapadopoulos, peterbygrave, shuuji3, eltoder, and homeworkprod)

10.1.0

------

* New functions
 * :func:`takewhile_inclusive` (thanks to OlegAlexander)
 * :func:`outer_product` (thanks to OlegAlexander)

* Changes to existing functions
 * :func:`zip_broadcast` was improved (thanks to kalekundert and pochmann)
 * :func:`consume` had its type annotation fixed (thanks to obaltian)

* Other changes
 * Some documentation and testing issues were fixed (thanks to OlegAlexander)

10.0.0

------

* Potentially breaking changes
 * Python 3.7 support was dropped, since it went EOL on 2023-06-27
 * :func:`batched` no longer issues a ``DeprecationWarning``; it is now an alias for ``itertools.batched`` for Python 3.12+
 * :func:`batched` and :func:`matmul` now yield tuples instead of lists

* New functions
 * :func:`combination_with_replacement_index` (thanks to Schoyen)
 * :func:`nth_combination_with_replacement` (thanks to Schoyen)
 * :func:`polynomial_eval` (from the Python itertools docs)
 * :func:`polynomial_derivative` (from the Python itertools docs)
 * :func:`sum_of_squares` (from the Python itertools docs)

* Changes to existing functions
 * :func:`seekable` now has ``relative_seek`` method (thanks to karlb)
 * :func:`chunked_even` was optimized (thanks to elliotwutingfeng)
 * :func:`numeric_range` was optimized (thanks to eltoder)
 * :func:`duplicates_justseen`, :func:`pairwise`, :func:`partial_product`, and :func:`partition` were updated and optimized (thanks to pochmann)
 * :func:`unique_in_window` had its implementation updated (thanks to elliotwutingfeng)
 * :func:`iterate` now breaks when its ``func`` argument raises ``StopIteration`` (thanks to jrebiffe)

* Other changes
 * Some documentation and testing issues were fixed (thanks to lonnen and XuehaiPan)

9.1.0

-----

* New functions
 * :func:`iter_index` (from the Python itertools docs)
 * :func:`transpose` (from the Python itertools docs)
 * :func:`matmul` (from the Python itertools docs)
 * :func:`factor` (from the Python itertools docs)
 * :func:`gray_product` (thanks to haukex)
 * :func:`partial_product` (thanks to lonnen)

* Changes to existing functions
 * :func:`sieve` was updated to match the Python itertools docs
 * :func:`maxsplit` was updated to fix a bug (thanks to abingham)
 * :func:`sliced` had its `type hint <https://github.com/more-itertools/more-itertools/pull/667>`__ updated (thanks to ad-chaos)
 

* Other changes
 * The ``batched`` function is marked as deprecated and will be removed in a future major release. For Python 3.12 and above, use ``itertools.batched`` instead. (thanks to neutrinoceros)
 * The type hints now used postponed evaluation of annotations from PEP 563 (thanks to Isira-Seneviratne)
 * Some documentation issues were fixed (thanks to Voskov and jdkandersson)

9.0.0

-----

* Potentially breaking changes
 * :func:`grouper` no longer accepts an integer as its first argument. Previously this raised a ``DeprecationWarning``.
 * :func:`collate` has been removed. Use the built-in :func:`heapq.merge` instead.
 * :func:`windowed` now yields nothing when its iterable is empty.
 * This library now advertises support for Python 3.7+.

* New functions
 * :func:`constrained_batches`
 * :func:`batched` (from the Python itertools docs)
 * :func:`polynomial_from_roots` (from the Python itertools docs)
 * :func:`sieve` (from the Python itertools docs)

* Other changes
 * Some documentation issues were fixed (thanks to nanouasyn)

8.14.0

------

* New functions
 * :func:`longest_common_prefix` (thanks to nanouasyn)
 * :func:`iequals` (thanks to nanouasyn)

* Changes to existing functions
 * `concurrent.futures.ThreadPoolExecutor` is now imported lazily in :func:`callback_iter`.
 * :func:`tail` is now optimized for iterables with a fixed length.

* Other changes
 * Some documentation issues were fixed (thanks to pochmann and timgates42)
 * This library is now marked for Python 3.10 compatibility in PyPI (thanks to chayim)

8.13.0

------

* New functions
 * The :func:`subslices` recipe from the `itertools` docs was added (thanks to rhettinger)

* Changes to existing functions
 * The :func:`ichunked` function is now more efficient (thanks to hjtran0 and seanmacavaney)
 * The :func:`difference` function is now more efficient (thanks to Masynchin)
 * The :func:`grouper` recipe now has more features, mirroring the one in the `itertools` docs (thanks to rhettinger)

* Other changes
 * Some documentation issues were fixed (thanks to medvied and Freed-Wu)
 * The `more_itertools` package is now built with `flit` (thanks to mgorny)

8.12.0

------

* Bug fixes
 * Some documentation issues were fixed (thanks to Masynchin, spookylukey, astrojuanlu, and stephengmatthews)
 * Python 3.5 support was temporarily restored (thanks to mattbonnell)

8.11.0

------

* New functions
 * The :func:`before_and_after`, :func:`sliding_window`, and :func:`triplewise` recipes from the Python 3.10 docs were added
 * :func:`duplicates_everseen` and :func:`duplicates_justseen` (thanks to OrBin and DavidPratt512)
 * :func:`minmax` (thanks to Ricocotam, MSeifert04, and ruancomelli)
 * :func:`strictly_n` (thanks to hwalinga and NotWearingPants)
 * :func:`unique_in_window`

* Changes to existing functions
 * :func:`groupby_transform` had its type stub improved (thanks to mjk4 and ruancomelli)
 * :func:`is_sorted` now accepts a ``strict`` parameter (thanks to Dutcho and ruancomelli)
 * :func:`zip_broadcast` was updated to fix a bug (thanks to kalekundert)
Links

Update nodeenv from 1.6.0 to 1.9.1.

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

Links

Update packaging from 21.0 to 24.2.

Changelog

24.2

~~~~~~~~~~~~~~~~~

* PEP 639: Implement License-Expression and License-File (:issue:`828`)
* Use ``!r`` formatter for error messages with filenames (:issue:`844`)
* Add support for PEP 730 iOS tags (:issue:`832`)
* Fix prerelease detection for ``>`` and ``<`` (:issue:`794`)
* Fix uninformative error message (:issue:`830`)
* Refactor ``canonicalize_version`` (:issue:`793`)
* Patch python_full_version unconditionally (:issue:`825`)
* Fix doc for ``canonicalize_version`` to mention ``strip_trailing_zero`` and a typo in a docstring (:issue:`801`)
* Fix typo in Version ``__str__`` (:issue:`817`)
* Support creating a ``SpecifierSet`` from an iterable of ``Specifier`` objects (:issue:`775`)

24.1

~~~~~~~~~~~~~~~~~

* Document ``markers.default_environment()`` (:issue:`753`).
* Add support for Python 3.13 (:issue:`783`).
* Modernise type annotations (:issue:`785`).
* Work around ``platform.python_version()`` returning non PEP 440 compliant version
for non-tagged CPython builds (:issue:`802`).

24.0

~~~~~~~~~~~~~~~~~

* Do specifier matching correctly when the specifier contains an epoch number
and has more components than the version (:issue:`683`)
* Support the experimental ``--disable-gil`` builds in packaging.tags
(:issue:`727`)
* BREAKING: Make optional ``metadata.Metadata`` attributes default to ``None`` (:issue:`733`)
* Fix errors when trying to access the ``description_content_type``, ``keywords``,
and ``requires_python`` attributes on ``metadata.Metadata`` when those values
have not been provided (:issue:`733`)
* Fix a bug preventing the use of the built in ``ExceptionGroup`` on versions of
Python that support it (:issue:`725`)

23.2

~~~~~~~~~~~~~~~~~

* Document calendar-based versioning scheme (:issue:`716`)
* Enforce that the entire marker string is parsed (:issue:`687`)
* Requirement parsing no longer automatically validates the URL (:issue:`120`)
* Canonicalize names for requirements comparison (:issue:`644`)
* Introduce ``metadata.Metadata`` (along with ``metadata.ExceptionGroup`` and ``metadata.InvalidMetadata``; :issue:`570`)
* Introduce the ``validate`` keyword parameter to ``utils.normalize_name()`` (:issue:`570`)
* Introduce ``utils.is_normalized_name()`` (:issue:`570`)
* Make ``utils.parse_sdist_filename()`` and ``utils.parse_wheel_filename()``
raise ``InvalidSdistFilename`` and ``InvalidWheelFilename``, respectively,
when the version component of the name is invalid
* Remove support for Python 3.7 (:issue:`783`)

23.1

~~~~~~~~~~~~~~~~~

* Parse raw metadata (:issue:`671`)
* Import underlying parser functions as an underscored variable (:issue:`663`)
* Improve error for local version label with unsupported operators (:issue:`675`)
* Add dedicated error for specifiers with incorrect `.*` suffix
* Replace spaces in platform names with underscores (:issue:`620`)
* Relax typing of ``_key`` on ``_BaseVersion`` (:issue:`669`)
* Handle prefix match with zeros at end of prefix correctly (:issue:`674`)

23.0

~~~~~~~~~~~~~~~~~

* Allow ``"extra"`` to be ``None`` in the marker environment (:issue:`650`)
* Refactor ``tags._generic_api`` to use ``EXT_SUFFIX`` (:i

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants