This version, Babel 2.14, is the last version of Babel to support Python 3.7. Babel 2.15 will require Python 3.8 or newer.
We had previously announced Babel 2.13 to have been the last version to support Python 3.7, but being able to use CLDR 43 with Python 3.7 was deemed important enough to keep supporting the EOL Python version for one more release.
Possibly backwards incompatible changes
Locale.number_symbols will now have first-level keys for each numbering system. Since the implicit default numbering system still is "latn", what had previously been e.g. Locale.number_symbols['decimal'] is now Locale.number_symbols['latn']['decimal'].
Babel no longer directly depends on either distutils or setuptools; if you had been using the Babel setuptools command extensions, you would need to explicitly depend on setuptools – though given you're running setup.py you probably already do.
* Babel 2.15.0 will require Python 3.8 or newer. (:gh:`1048`)
Features
* CLDR: Upgrade to CLDR 44 (:gh:`1071`) (@akx)
* Dates: Support for the "fall back to short format" logic for time delta formatting (:gh:`1075`) (@akx)
* Message: More versatile .po IO functions (:gh:`1068`) (@akx)
* Numbers: Improved support for alternate spaces when parsing numbers (:gh:`1007`) (@ronnix's first contribution)
Infrastructure
Upgrade GitHub Actions (:gh:1054) (@cclauss's first contribution)
The Unicode license is now included in locale-data and in the documentation (:gh:1074) (@akx)
Version 2.14.0
Upcoming deprecation
* This version, Babel 2.14, is the last version of Babel to support Python 3.7.
Babel 2.15 will require Python 3.8 or newer.
* We had previously announced Babel 2.13 to have been the last version to support
Python 3.7, but being able to use CLDR 43 with Python 3.7 was deemed important
enough to keep supporting the EOL Python version for one more release.
Possibly backwards incompatible changes
</code></pre>
<ul>
<li><code>Locale.number_symbols</code> will now have first-level keys for each numbering system.
Since the implicit default numbering system still is <code>"latn"</code>, what had previously
been e.g. <code>Locale.number_symbols['decimal']</code> is now <code>Locale.number_symbols['latn']['decimal']</code>.</li>
<li>Babel no longer directly depends on either <code>distutils</code> or <code>setuptools</code>; if you had been
using the Babel setuptools command extensions, you would need to explicitly depend on <code>setuptools</code> –
though given you're running <code>setup.py</code> you probably already do.</li>
</ul>
<p>Features</p>
<pre><code>
* CLDR/Numbers: Add support of local numbering systems for number symbols by @kajte in :gh:`1036`
* CLDR: Upgrade to CLDR 43 by @rix0rrr in :gh:`1043`
* Frontend: Allow last_translator to be passed as an option to extract_message by @AivGitHub in :gh:`1044`
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/python-babel/babel/commit/40b194f4777366e95cc2dfb680fd696b86ef1c04"><code>40b194f</code></a> Prepare for 2.15.0 release (<a href="https://redirect.github.com/python-babel/babel/issues/1079">#1079</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/c2e6c6e538418f4c195275c1afff831c4706c2e1"><code>c2e6c6e</code></a> Encode support for the "fall back to short format" logic for time delta forma...</li>
<li><a href="https://github.com/python-babel/babel/commit/1a03526e2dda9818424c400530163464a2e74b9b"><code>1a03526</code></a> Include Unicode license in <code>locale-data</code> and in documentation (<a href="https://redirect.github.com/python-babel/babel/issues/1074">#1074</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/c0fb56e6a5a7fa9268b5164db0ff0fc28524d648"><code>c0fb56e</code></a> Allow alternative space characters as group separator when parsing numbers (#...</li>
<li><a href="https://github.com/python-babel/babel/commit/fe82fbc90d8044d17bfc4ae1c7a0cb24e85153ef"><code>fe82fbc</code></a> Use CLDR 44 and adjust tests to match new data (<a href="https://redirect.github.com/python-babel/babel/issues/1071">#1071</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/e0d10183635b9ae1d37c31811e23c8974a1bc31e"><code>e0d1018</code></a> Improve .po IO (<a href="https://redirect.github.com/python-babel/babel/issues/1068">#1068</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/40e60a1f6cf178d9f57fcc14f157ea1b2ab77361"><code>40e60a1</code></a> Upgrade GitHub Actions (<a href="https://redirect.github.com/python-babel/babel/issues/1054">#1054</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/2a1709a7768f6f07c3d2dbfdb03d3c8a6bd80aef"><code>2a1709a</code></a> Drop support for Python 3.7 (EOL since June 2023) (<a href="https://redirect.github.com/python-babel/babel/issues/1048">#1048</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/a8505a4de1d365d7eac6313908cac6dda2708a05"><code>a8505a4</code></a> Prepare for 2.14.0 release (<a href="https://redirect.github.com/python-babel/babel/issues/1047">#1047</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/946efcdddb73d4470f2dc4e689aef0477a0ca02f"><code>946efcd</code></a> Improve parsing of malformed decimals (<a href="https://redirect.github.com/python-babel/babel/issues/1042">#1042</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/python-babel/babel/compare/v2.12.1...v2.15.0">compare view</a></li>
</ul>
</details>
<br />
Updates `diffoscope` from 258 to 271
Updates `mypy` from 1.6.1 to 1.10.0
Changelog
We’ve just uploaded mypy 1.10 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Support TypeIs (PEP 742)
Mypy now supports TypeIs (PEP 742), which allows
functions to narrow the type of a value, similar to isinstance(). Unlike TypeGuard,
TypeIs can narrow in both the if and else branches of an if statement:
#12355: Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters.
#12367: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
#12381: Fix possible "Directory not empty" crashes arising from concurent cache dir (.pytest_cache) creation. Regressed in pytest 8.2.0.
Improved Documentation
#12290: Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme.
#12356: Added a subsection to the documentation for debugging flaky tests to mention
lack of thread safety in pytest as a possible source of flakyness.
#12363: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
8.2.1
pytest 8.2.1 (2024-05-19)
Improvements
#12334: Support for Python 3.13 (beta1 at the time of writing).
Bug Fixes
#12120: Fix [PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line.
#12191: Keyboard interrupts and system exits are now properly handled during the test collection.
#12300: Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
#12308: Fix a regression in pytest 8.2.0 where the permissions of automatically-created .pytest_cache directories became rwx------ instead of the expected rwxr-xr-x.
Trivial/Internal Changes
#12333: pytest releases are now attested using the recent Artifact Attestation support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.
8.2.0
pytest 8.2.0 (2024-04-27)
Deprecations
#12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:
Removed support for xdist rsync (now deprecated).
Contributed by Matthias Reichenbach in [#623](https://github.com/pytest-dev/pytest-cov/issues/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/issues/630) <https://github.com/pytest-dev/pytest-cov/pull/630>,
[#631](https://github.com/pytest-dev/pytest-cov/issues/631) <https://github.com/pytest-dev/pytest-cov/pull/631>,
[#632](https://github.com/pytest-dev/pytest-cov/issues/632) <https://github.com/pytest-dev/pytest-cov/pull/632>_ and
[#633](https://github.com/pytest-dev/pytest-cov/issues/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/issues/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/issues/584) <https://github.com/pytest-dev/pytest-cov/pull/584>_.
#415: MockType and AsyncMockType can be imported from pytest_mock for type annotation purposes.
#420: Fixed a regression which would cause mocker.patch.object to not being properly cleared between tests.
v3.13.0
#417: spy now has spy_return_list, which is a list containing all the values returned by the spied function.
pytest-mock now requires pytest>=6.2.5.
#410: pytest-mock's setup.py file is removed.
If you relied on this file, e.g. to install pytest using setup.py install,
please see Why you shouldn't invoke setup.py directly for alternatives.
[#415](https://github.com/pytest-dev/pytest-mock/issues/415) <https://github.com/pytest-dev/pytest-mock/pull/415>_: MockType and AsyncMockType can be imported from pytest_mock for type annotation purposes.
[#420](https://github.com/pytest-dev/pytest-mock/issues/420) <https://github.com/pytest-dev/pytest-mock/issues/420>_: Fixed a regression which would cause mocker.patch.object to not being properly cleared between tests.
3.13.0 (2024-03-21)
[#417](https://github.com/pytest-dev/pytest-mock/issues/417) <https://github.com/pytest-dev/pytest-mock/pull/417>_: spy now has spy_return_list, which is a list containing all the values returned by the spied function.
pytest-mock now requires pytest>=6.2.5.
[#410](https://github.com/pytest-dev/pytest-mock/issues/410) <https://github.com/pytest-dev/pytest-mock/pull/410>: pytest-mock's setup.py file is removed.
If you relied on this file, e.g. to install pytest using setup.py install,
please see Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary> for alternatives.
pluggy >=1.1 is now required: we now use new-style hook wrappers, which are less error prone.
Fixed exception handling so they are properly cleared in Python 3.12, due to the new sys.last_exc <https://docs.python.org/3/library/sys.html#sys.last_exc>__ attribute ([#532](https://github.com/pytest-dev/pytest-qt/issues/532)_).
qapp now sets up the QApplication instance with a command line argument like this
QApplication([prog_name]) instead of using an empty list QApplication([]).
Here prog_name is the name of the app which defaults to pytest-qt-app, but can
be redefined in the pytest.ini file, see :ref:qapp fixture<setting-qapp-name>.
Alternatively, the arguments that will be passed to QApplication can be defined
explicitly using the qapp_args fixture. This means that the default behavior of
the qapp_args fixture is now also changed accordingly: it now returns the list
[prog_name] instead of an empty list. Thanks to @The-Compiler_ ([#483](https://github.com/pytest-dev/pytest-qt/issues/483)) and
@hakonhagland ([#515](https://github.com/pytest-dev/pytest-qt/issues/515)_).
Pro: Semgrep can now track taint through tuple/list (un)packing intra-procedurally
(i.e., within a single function). For example:
t = ["ok", "taint"]
x, y = t
sink(x) # OK, no finding
sink(y) # tainted, finding
``` (code-6935)
Optional type matching is supported in the Pro engine for Python. For example,
in Python, Optional[str], str | None, and Union[str, None] represent the
same type but in different type expressions. The optional type match support
enables matching between these expressions, allowing any optional type
expression to match any other optional type expression when used with
metavariable-type filtering. It's important to note that syntactic pattern
matching still distinguishes between these types. (code-6939)
Add support for pnpm v9 (pnpm)
Added a new rule option decorators_order_matters, which allows users to make decorators/ non-keyword attributes matching stricter. The default matching for attributes is order-agnostic, but if this rule option is set to true, non-keyword attributes (e.g. decorators in Python) will be matched in order, while keyword attributes (e.g. static, inline, etc) are not affected.
An example usage will be a rule to detect any decorator that is outside of the route() decorator in Flask, since any decorator outside of the route() decorator takes no effect.
Pro: taint-mode: Fixed issue causing findings to be missed (false negatives)
when a global or class field was tainted, and then used in a sink after two
or more function calls.
Pro: Semgrep can now track taint through tuple/list (un)packing intra-procedurally
(i.e., within a single function). For example:
t = ["ok", "taint"]
x, y = t
sink(x) # OK, no finding
sink(y) # tainted, finding
``` (code-6935)
Optional type matching is supported in the Pro engine for Python. For example,
in Python, Optional[str], str | None, and Union[str, None] represent the
same type but in different type expressions. The optional type match support
enables matching between these expressions, allowing any optional type
expression to match any other optional type expression when used with
metavariable-type filtering. It's important to note that syntactic pattern
matching still distinguishes between these types. (code-6939)
Add support for pnpm v9 (pnpm)
Added a new rule option decorators_order_matters, which allows users to make decorators/ non-keyword attributes matching stricter. The default matching for attributes is order-agnostic, but if this rule option is set to true, non-keyword attributes (e.g. decorators in Python) will be matched in order, while keyword attributes (e.g. static, inline, etc) are not affected.
An example usage will be a rule to detect any decorator that is outside of the route() decorator in Flask, since any decorator outside of the route() decorator takes no effect.
Pro: taint-mode: Fixed issue causing findings to be missed (false negatives)
when a global or class field was tainted, and then used in a sink after two
or more function calls.
Bugfix with to Tornado cassette generator (thanks @graingert)
v6.0.0
BREAKING: Fix issue with httpx support (thanks @parkerhancock) in #784. NOTE: You may have to recreate some of your cassettes produced in previous releases due to the binary format being saved incorrectly in previous releases
BREAKING: Drop support for boto (vcrpy still supports boto3, but is dropping the deprecated boto support in this release. (thanks @jairhenrique)
Fix compatibility issue with Python 3.12 (thanks @hartwork)
Drop simplejson (fixes some compatibility issues) (thanks @jairhenrique)
Run CI on Python 3.12 and PyPy 3.9-3.10 (thanks @mgorny)
Various linting and docs improvements (thanks @jairhenrique)
All help in providing PRs to close out bug issues is appreciated. Even if that is providing a repo that fully replicates issues. We have very generous contributors that have added these to bug issues which meant another contributor picked up the bug and closed it out.
6.0.1
Bugfix with to Tornado cassette generator (thanks @graingert)
6.0.0
BREAKING: Fix issue with httpx support (thanks @parkerhancock) in #784. NOTE: You may have to recreate some of your cassettes produced in previous releases due to the binary format being saved incorrectly in previous releases
BREAKING: Drop support for boto (vcrpy still supports boto3, but is dropping the deprecated boto support in this release. (thanks @jairhenrique)
Fix compatibility issue with Python 3.12 (thanks @hartwork)
Drop simplejson (fixes some compatibility issues) (thanks @jairhenrique)
Run CI on Python 3.12 and PyPy 3.9-3.10 (thanks @mgorny)
Various linting and docs improvements (thanks @jairhenrique)
Drop iscoroutinefunction fallback function for unsupported python thanks @jairhenrique
5.0.0
BREAKING CHANGE: Drop support for Python 3.7. 3.7 is EOL as of 6/27/23 Thanks @jairhenrique
BREAKING CHANGE: Custom Cassette persisters no longer catch ValueError. If you have implemented a custom persister (has anyone implemented a custom persister? Let us know!) then you will need to throw a CassetteNotFoundError when unable to find a cassette. See #681 for discussion and reason for this change. Thanks @amosjyng for the PR and the review from @hartwork
4.4.0
HUGE thanks to @hartwork for all the work done on this release!
Bring vcr/unittest in to vcrpy as a full feature of vcr instead of a separate library. Big thanks to @hartwork for doing this and to @agriffis for originally creating the library
Make decompression robust towards already decompressed input (thanks @hartwork)
Bugfix: Add read1 method (fixes compatibility with biopython), thanks @mghantous
Bugfix: Prevent filters from corrupting request (thanks @abramclark)
Bugfix: Add support for response.raw.stream() to fix urllib v2 compat
Bugfix: Replace assert with raise AssertionError: fixes support for PYTHONOPTIMIZE=1
Add pytest.mark.online to run test suite offline, thanks @jspricke
use python3 and pip3 binaries to ease debian packaging (thanks @hartwork)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any m...
_Description has been truncated_
Bumps the dev-dependencies group with 14 updates in the /client directory:
2.12.1
2.15.0
258
271
1.6.1
1.10.0
2.8.0
2.9.0
7.4.3
8.2.2
4.1.0
5.0.0
3.12.0
3.14.0
4.2.0
4.4.0
1.48.0
1.75.0
3.10.1
3.13.0
1.2.0.1
1.2.0.20240327
2.8.19.14
2.9.0.20240316
68.2.0.0
70.0.0.20240524
5.1.0
6.0.1
Updates
babel
from 2.12.1 to 2.15.0Release notes
Sourced from babel's releases.
... (truncated)
Changelog
Sourced from babel's changelog.