fix(deps): update all non-major dependencies
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
coverage | dev | minor |
7.4.2 -> 7.8.0
|
freezegun (changelog) | dev | minor |
1.4.0 -> 1.5.1
|
frozendict | dependencies | patch |
2.4.0 -> 2.4.6
|
gitpython | scripts | patch |
3.1.42 -> 3.1.44
|
openapitools/openapi-generator-cli | stage | minor |
v7.6.0 -> v7.12.0
|
pydantic (changelog) | dependencies | minor |
2.6.1 -> 2.11.3
|
python | image | minor |
3.9 -> 3.13
|
python | stage | minor |
3.9 -> 3.13
|
python-dateutil | dependencies | minor |
2.8.2 -> 2.9.0
|
pyyaml (source) | scripts | patch |
6.0.1 -> 6.0.2
|
requests (source, changelog) | dependencies | minor |
2.31.0 -> 2.32.3
|
requests-mock (source) | dev | minor |
1.11.0 -> 1.12.1
|
typing-extensions (changelog) | dependencies | minor |
4.9.0 -> 4.13.1
|
uis/devops/continuous-delivery/ci-templates | repository | minor |
v2.6.2 -> v2.7.0
|
urllib3 (changelog) | dependencies | minor |
2.2.1 -> 2.3.0
|
Release Notes
nedbat/coveragepy (coverage)
v7.8.0
-
Added a new
source_dirs
setting for symmetry with the existingsource_pkgs
setting. It's preferable to the existingsource
setting, because you'll get a clear error when directories don't exist. Fixesissue 1942
. Thanks,Jeremy Fleischman <pull 1943_>
. -
Fix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly supported, closing
issue 1696
. Thanks,Philipp A. <pull 1700_>
. This works properly except for a detail when using thecoverage
command on Windows. There you can usepython -m coverage
instead if you need exact emulation.
.. _issue 1696: https://github.com/nedbat/coveragepy/issues/1696 .. _pull 1700: https://github.com/nedbat/coveragepy/pull/1700 .. _issue 1942: https://github.com/nedbat/coveragepy/issues/1942 .. _pull 1943: https://github.com/nedbat/coveragepy/pull/1943
.. _changes_7-7-1:
v7.7.1
- A few small tweaks to the sys.monitoring support for Python 3.14. Please test!
.. _changes_7-7-0:
v7.7.0
-
The Coverage object has a new method, :meth:
.Coverage.branch_stats
for getting simple branch information for a module. Closesissue 1888
_. -
The :class:
Coverage constructor<.Coverage>
now has aplugins
parameter for passing in plugin objects directly, thanks toAlex Gaynor <pull 1919_>
_. -
Many constant tests in if statements are now recognized as being optimized away. For example, previously
if 13:
would have been considered a branch with one path not taken. Now it is understood as always true and no coverage is missing. -
The experimental sys.monitoring support now works for branch coverage if you are using Python 3.14.0 alpha 6 or newer. This should reduce the overhead coverage.py imposes on your test suite. Set the environment variable
COVERAGE_CORE=sysmon
to try it out. -
Confirmed support for PyPy 3.11. Thanks Michał Górny.
.. _issue 1888: https://github.com/nedbat/coveragepy/issues/1888 .. _pull 1919: https://github.com/nedbat/coveragepy/pull/1919
.. _changes_7-6-12:
v7.6.12
- Fix: some aarch64 distributions were missing (
issue 1927
_). These are now building reliably.
.. _issue 1927: https://github.com/nedbat/coveragepy/issues/1927
.. _changes_7-6-11:
v7.6.11
-
Fix: a memory leak in CTracer has been fixed. The details are in
issue 1924
_ andpytest-dev 676
_. This should reduce the memory footprint for everyone even if it hadn't caused a problem before. -
We now ship a py3-none-any.whl wheel file. Thanks,
Russell Keith-Magee <pull 1914_>
_.
.. _pull 1914: https://github.com/nedbat/coveragepy/pull/1914 .. _issue 1924: https://github.com/nedbat/coveragepy/issues/1924 .. _pytest-dev 676: https://github.com/pytest-dev/pytest-cov/issues/676
.. _changes_7-6-10:
v7.6.10
-
Fix: some descriptions of missing branches in HTML and LCOV reports were incorrect when multi-line statements were involved (
issue 1874
_ andissue 1875
_). These are now fixed. -
Fix: Python 3.14
defers evaluation of annotations <pep649_>
_ by moving them into separate code objects. That code is rarely executed, so coverage.py would mark them as missing, as reported inissue 1908
_. Now they are ignored by coverage automatically. -
Fixed an obscure and mysterious problem on PyPy 3.10 seemingly involving mocks, imports, and trace functions:
issue 1902
_. To be honest, I don't understand the problem or the solution, butgit bisect
helped find it, and now it's fixed. -
Docs: re-wrote the :ref:
subprocess
page to put multiprocessing first and to highlight the correct use of :class:multiprocessing.Pool <python:multiprocessing.pool.Pool>
.
.. _issue 1874: https://github.com/nedbat/coveragepy/issues/1874 .. _issue 1875: https://github.com/nedbat/coveragepy/issues/1875 .. _issue 1902: https://github.com/nedbat/coveragepy/issues/1902 .. _issue 1908: https://github.com/nedbat/coveragepy/issues/1908 .. _pep649: https://docs.python.org/3.14/whatsnew/3.14.html#pep-649-deferred-evaluation-of-annotations
.. _changes_7-6-9:
v7.6.9
- Fix:
Tomas Uribe fixed <pull 1901_>
_ a performance problem in the XML report. Large code bases should produce XML reports much faster now.
.. _pull 1901: https://github.com/nedbat/coveragepy/pull/1901
.. _changes_7-6-8:
v7.6.8
-
Fix: the LCOV report code assumed that a branch line that took no branches meant that the entire line was unexecuted. This isn't true in a few cases: the line might always raise an exception, or might have been optimized away. Fixes
issue 1896
_. -
Fix: similarly, the HTML report will now explain that a line that jumps to none of its expected destinations must have always raised an exception. Previously, it would say something nonsensical like, "line 4 didn't jump to line 5 because line 4 was never true, and it didn't jump to line 7 because line 4 was always true." This was also shown in
issue 1896
_.
.. _issue 1896: https://github.com/nedbat/coveragepy/issues/1896
.. _changes_7-6-7:
v7.6.7
- Fix: ugh, the other assert from 7.6.5 can also be encountered in the wild, so it's been restored to a conditional. Sorry for the churn.
.. _changes_7-6-6:
v7.6.6
- One of the new asserts from 7.6.5 caused problems in real projects, as
reported in
issue 1891
_. The assert has been removed.
.. _issue 1891: https://github.com/nedbat/coveragepy/issues/1891
.. _changes_7-6-5:
v7.6.5
-
Fix: fine-tuned the exact Python version (3.12.6) when exiting from
with
statements changed how they traced. This affected whether people saw the fix forissue 1880
_. -
Fix: isolate our code more from mocking in the os module that in rare cases can cause
bizarre behavior <pytest-cov-666_>
_. -
Refactor: some code unreachable code paths in parser.py were changed to asserts. If you encounter any of these, please let me know!
.. _pytest-cov-666: https://github.com/pytest-dev/pytest-cov/issues/666
.. _changes_7-6-4:
v7.6.4
- Fix: multi-line
with
statements could cause contained branches to be incorrectly marked as missing (issue 1880
_). This is now fixed.
.. _issue 1880: https://github.com/nedbat/coveragepy/issues/1880
.. _changes_7-6-3:
v7.6.3
-
Fix: nested context managers could incorrectly be analyzed to flag a missing branch on the last context manager, as described in
issue 1876
_. This is now fixed. -
Fix: the missing branch message about not exiting a module had an extra "didn't," as described in
issue 1873
_. This is now fixed.
.. _issue 1873: https://github.com/nedbat/coveragepy/issues/1873 .. _issue 1876: https://github.com/nedbat/coveragepy/issues/1876
.. _changes_7-6-2:
v7.6.2
-
Dropped support for Python 3.8 and PyPy 3.8.
-
Fix: a final wildcard match/case clause assigning to a name (
case _ as value
) was incorrectly marked as a missing branch. This is now fixed, closingissue 1860
_. -
Fewer things are considered branches now. Lambdas, comprehensions, and generator expressions are no longer marked as missing branches if they don't complete execution. Closes
issue 1852
_. -
Fix: the HTML report didn't properly show multi-line f-strings that end with a backslash continuation. This is now fixed, closing
issue 1836
, thanks toLiuYinCarl and Marco Ricci <pull 1838_>
. -
Fix: the LCOV report now has correct line numbers (fixing
issue 1846
) and better branch descriptions for BRDA records (fixingissue 1850
). There are other changes to lcov also, including a new configuration option :ref:line_checksums <config_lcov_line_checksums>
to control whether line checksums are included in the lcov report. The default is false. To keep checksums set it to true. All this work is thanks to Zack Weinberg (pull 1849
_ andpull 1851
_). -
Fixed the docs for multi-line regex exclusions, closing
issue 1863
_. -
Fixed a potential crash in the C tracer, closing
issue 1835
, thanks toJan Kühle <pull 1843_>
.
.. _issue 1835: https://github.com/nedbat/coveragepy/issues/1835 .. _issue 1836: https://github.com/nedbat/coveragepy/issues/1836 .. _pull 1838: https://github.com/nedbat/coveragepy/pull/1838 .. _pull 1843: https://github.com/nedbat/coveragepy/pull/1843 .. _issue 1846: https://github.com/nedbat/coveragepy/issues/1846 .. _pull 1849: https://github.com/nedbat/coveragepy/pull/1849 .. _issue 1850: https://github.com/nedbat/coveragepy/issues/1850 .. _pull 1851: https://github.com/nedbat/coveragepy/pull/1851 .. _issue 1852: https://github.com/nedbat/coveragepy/issues/1852 .. _issue 1860: https://github.com/nedbat/coveragepy/issues/1860 .. _issue 1863: https://github.com/nedbat/coveragepy/issues/1863
.. _changes_7-6-1:
v7.6.1
-
Fix: some descriptions of missing branches in HTML and LCOV reports were incorrect when multi-line statements were involved (
issue 1874
_ andissue 1875
_). These are now fixed. -
Fix: Python 3.14
defers evaluation of annotations <pep649_>
_ by moving them into separate code objects. That code is rarely executed, so coverage.py would mark them as missing, as reported inissue 1908
_. Now they are ignored by coverage automatically. -
Fixed an obscure and mysterious problem on PyPy 3.10 seemingly involving mocks, imports, and trace functions:
issue 1902
_. To be honest, I don't understand the problem or the solution, butgit bisect
helped find it, and now it's fixed. -
Docs: re-wrote the :ref:
subprocess
page to put multiprocessing first and to highlight the correct use of :class:multiprocessing.Pool <python:multiprocessing.pool.Pool>
.
.. _issue 1874: https://github.com/nedbat/coveragepy/issues/1874 .. _issue 1875: https://github.com/nedbat/coveragepy/issues/1875 .. _issue 1902: https://github.com/nedbat/coveragepy/issues/1902 .. _issue 1908: https://github.com/nedbat/coveragepy/issues/1908 .. _pep649: https://docs.python.org/3.14/whatsnew/3.14.html#pep-649-deferred-evaluation-of-annotations
.. _changes_7-6-9:
v7.6.0
-
Exclusion patterns can now be multi-line, thanks to
Daniel Diniz <pull 1807_>
. This enables many interesting exclusion use-cases, including those requested in issues118 <issue 118_>
(entire files),996 <issue 996_>
_ (multiple lines only when appearing together),1741 <issue 1741_>
_ (remainder of a function), and1803 <issue 1803_>
_ (arbitrary sequence of marked lines). See the :ref:multi_line_exclude
section of the docs for more details and examples. -
The JSON report now includes per-function and per-class coverage information. Thanks to
Daniel Diniz <pull 1809_>
_ for getting the work started. This closesissue 1793
_ andissue 1532
_. -
Fixed an incorrect calculation of "(no class)" lines in the HTML classes report.
-
Python 3.13.0b3 is supported.
.. _issue 118: https://github.com/nedbat/coveragepy/issues/118 .. _issue 996: https://github.com/nedbat/coveragepy/issues/996 .. _issue 1532: https://github.com/nedbat/coveragepy/issues/1532 .. _issue 1741: https://github.com/nedbat/coveragepy/issues/1741 .. _issue 1793: https://github.com/nedbat/coveragepy/issues/1793 .. _issue 1803: https://github.com/nedbat/coveragepy/issues/1803 .. _pull 1807: https://github.com/nedbat/coveragepy/pull/1807 .. _pull 1809: https://github.com/nedbat/coveragepy/pull/1809
.. _changes_7-5-4:
v7.5.4
-
If you attempt to combine statement coverage data with branch coverage data, coverage.py used to fail with the message "Can't combine arc data with line data" or its reverse, "Can't combine line data with arc data." These messages used internal terminology, making it hard for people to understand the problem. They are now changed to mention "branch coverage data" and "statement coverage data."
-
Fixed a minor branch coverage problem with wildcard match/case cases using names or guard clauses.
-
Started testing on 3.13 free-threading (nogil) builds of Python. I'm not claiming full support yet. Closes
issue 1799
_.
.. _issue 1799: https://github.com/nedbat/coveragepy/issues/1799
.. _changes_7-5-3:
v7.5.3
-
Performance improvements for combining data files, especially when measuring line coverage. A few different quadratic behaviors were eliminated. In one extreme case of combining 700+ data files, the time dropped from more than three hours to seven minutes. Thanks for Kraken Tech for funding the fix.
-
Performance improvements for generating HTML reports, with a side benefit of reducing memory use, closing
issue 1791
_. Thanks to Daniel Diniz for helping to diagnose the problem.
.. _issue 1791: https://github.com/nedbat/coveragepy/issues/1791
.. _changes_7-5-2:
v7.5.2
-
Fix: nested matches of exclude patterns could exclude too much code, as reported in
issue 1779
_. This is now fixed. -
Changed: previously, coverage.py would consider a module docstring to be an executable statement if it appeared after line 1 in the file, but not executable if it was the first line. Now module docstrings are never counted as executable statements. This can change coverage.py's count of the number of statements in a file, which can slightly change the coverage percentage reported.
-
In the HTML report, the filter term and "hide covered" checkbox settings are remembered between viewings, thanks to
Daniel Diniz <pull 1776_>
_. -
Python 3.13.0b1 is supported.
-
Fix: parsing error handling is improved to ensure bizarre source files are handled gracefully, and to unblock oss-fuzz fuzzing, thanks to
Liam DeVoe <pull 1788_>
. Closesissue 1787
.
.. _pull 1776: https://github.com/nedbat/coveragepy/pull/1776 .. _issue 1779: https://github.com/nedbat/coveragepy/issues/1779 .. _issue 1787: https://github.com/nedbat/coveragepy/issues/1787 .. _pull 1788: https://github.com/nedbat/coveragepy/pull/1788
.. _changes_7-5-1:
v7.5.1
-
Fix: a pragma comment on the continuation lines of a multi-line statement now excludes the statement and its body, the same as if the pragma is on the first line. This closes
issue 754
. The fix was contributed byDaniel Diniz <pull 1773_>
. -
Fix: very complex source files like
this one <resolvent_lookup_>
_ could cause a maximum recursion error when creating an HTML report. This is now fixed, closingissue 1774
_. -
HTML report improvements:
-
Support files (JavaScript and CSS) referenced by the HTML report now have hashes added to their names to ensure updated files are used instead of stale cached copies.
-
Missing branch coverage explanations that said "the condition was never false" now read "the condition was always true" because it's easier to understand.
-
Column sort order is remembered better as you move between the index pages, fixing
issue 1766
. Thanks,Daniel Diniz <pull 1768_>
.
-
.. _resolvent_lookup: https://github.com/sympy/sympy/blob/130950f3e6b3f97fcc17f4599ac08f70fdd2e9d4/sympy/polys/numberfields/resolvent_lookup.py .. _issue 754: https://github.com/nedbat/coveragepy/issues/754 .. _issue 1766: https://github.com/nedbat/coveragepy/issues/1766 .. _pull 1768: https://github.com/nedbat/coveragepy/pull/1768 .. _pull 1773: https://github.com/nedbat/coveragepy/pull/1773 .. _issue 1774: https://github.com/nedbat/coveragepy/issues/1774
.. _changes_7-5-0:
v7.5.0
-
Added initial support for function and class reporting in the HTML report. There are now three index pages which link to each other: files, functions, and classes. Other reports don't yet have this information, but it will be added in the future where it makes sense. Feedback gladly accepted! Finishes
issue 780
_. -
Other HTML report improvements:
-
There is now a "hide covered" checkbox to filter out 100% files, finishing
issue 1384
_. -
The index page is always sorted by one of its columns, with clearer indications of the sorting.
-
The "previous file" shortcut key didn't work on the index page, but now it does, fixing
issue 1765
_.
-
-
The debug output showing which configuration files were tried now shows absolute paths to help diagnose problems where settings aren't taking effect, and is renamed from "attempted_config_files" to the more logical "config_files_attempted."
-
Python 3.13.0a6 is supported.
.. _issue 780: https://github.com/nedbat/coveragepy/issues/780 .. _issue 1384: https://github.com/nedbat/coveragepy/issues/1384 .. _issue 1765: https://github.com/nedbat/coveragepy/issues/1765
.. _changes_7-4-4:
v7.4.4
-
Fix: in some cases, even with
[run] relative_files=True
, a data file could be created with absolute path names. When combined with other relative data files, it was random whether the absolute file names would be made relative or not. If they weren't, then a file would be listed twice in reports, as detailed inissue 1752
_. This is now fixed: absolute file names are always made relative when combining. Thanks to Bruno Rodrigues dos Santos for support. -
Fix: the last case of a match/case statement had an incorrect message if the branch was missed. It said the pattern never matched, when actually the branch is missed if the last case always matched.
-
Fix: clicking a line number in the HTML report now positions more accurately.
-
Fix: the
report:format
setting was defined as a boolean, but should be a string. Thanks,Tanaydin Sirin <pull 1754_>
_. It is also now documented on the :ref:configuration page <config_report_format>
.
.. _issue 1752: https://github.com/nedbat/coveragepy/issues/1752 .. _pull 1754: https://github.com/nedbat/coveragepy/pull/1754
.. _changes_7-4-3:
v7.4.3
- Fix: in some cases, coverage could fail with a RuntimeError: "Set changed
size during iteration." This is now fixed, closing
issue 1733
_.
.. _issue 1733: https://github.com/nedbat/coveragepy/issues/1733
.. _changes_7-4-2:
spulec/freezegun (freezegun)
v1.5.1
- Fix the typing of the
tick()
method, and improve it's behaviour.
v1.5.0
- The default ignore list now contains the
queue
-package - Added a missing
move_to
-function when callingfreeze_time(tick=True)
- Fixes a rounding error in
time.time_ns()
- Fixed a bug where the default ignore list could not be empty (
configure(default_ignore_list=[])
) - All
tick()
methods now return the new datetime (instead of None) - Type improvements
Marco-Sulla/python-frozendict (frozendict)
v2.4.6
- Added pure py wheel for Python 3.13
- Now
set
,setdefault
anddelete
does always a shallow copy, as the C extension,tuple
and the rest of the world.
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.5...v2.4.6
v2.4.5
What's Changed
- Improved speed of
set
,setdefault
anddelete
for pure py impl, iffrozendict
is hashable - Coverage by @Marco-Sulla in https://github.com/Marco-Sulla/python-frozendict/pull/101
- bumped cibuildwheel by @Marco-Sulla in https://github.com/Marco-Sulla/python-frozendict/pull/104
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.4...v2.4.5
v2.4.4
: frozendict v2.4.4
Added typing for deepfreeze, register and unregister (see #99)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.3...v2.4.4
v2.4.3
: frozendict v2.4.3
- Now enums are not modified by deepfreeze (see #98)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.2...v2.4.3
v2.4.2
: frozendict v2.4.2
deepfreeze doesn't change anymore the original object, by @kenodegard in https://github.com/Marco-Sulla/python-frozendict/pull/97
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.1...v2.4.2
v2.4.1
: frozendict v2.4.1
What's Changed
- In deepfreeze, prefer registered conversions by @eischaefer in https://github.com/Marco-Sulla/python-frozendict/pull/95
- Some little fixing to typing
- Documentation typo by @lurch in https://github.com/Marco-Sulla/python-frozendict/pull/94
New Contributors
- @eischaefer made their first contribution in https://github.com/Marco-Sulla/python-frozendict/pull/95
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.0...v2.4.1
gitpython-developers/GitPython (gitpython)
v3.1.44
What's Changed
- Fix typo in _get_exe_extensions PATHEXT fallback by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1890
- Don't suppress pytest warning summaries by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1892
- Update the comment about
--mixed
and paths by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1894 - Fixed an error updating shallow submodules by @EduardTalanov in https://github.com/gitpython-developers/GitPython/pull/1899
- Initial Migration of Fuzz Tests & Integration Scripts From the OSS-Fuzz Project Repo by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1901
- Fuzzer Migration Follow-ups by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1903
- Dockerize "Direct Execution of Fuzz Targets" by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1904
- Fix Fuzzer Crash in ClusterFuzz Due to Missing Git Executable by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1906
- Add GitPython's Standard License Header Comments to Shell Scripts by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1907
- Fix
IndexError
inGitConfigParser
When a Quoted Config Value Contains a Trailing New Line by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1908 - Attempt 2 - Fix Missing Git Executable Causing ClusterFuzz Crash by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1909
- Replace the Suboptimal
fuzz_tree.py
Harness With a Better Alternative by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1910 - Add git.Blob Fuzz Target by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1911
- lint: switch order Ruff's hooks
fix
->format
by @Borda in https://github.com/gitpython-developers/GitPython/pull/1912 - Update OSS-Fuzz Scripts to Use New QA-Assets Repo Structure by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1913
- Add
Diff
Fuzz Target by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1914 - Instrument test utility functions to increase fuzzer efficiency by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1915
- Add the
.git
subdir as anothersafe.directory
on Cygwin CI by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1916 - Bump Vampire/setup-wsl from 3.0.0 to 3.1.0 by @dependabot in https://github.com/gitpython-developers/GitPython/pull/1917
- Add Submodules Fuzz Target by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1919
- Add graceful handling of expected exceptions in fuzz_submodule.py by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1922
- precommit: enable
validate-pyproject
by @Borda in https://github.com/gitpython-developers/GitPython/pull/1921 - typing fixes - DiffIndex generic type and IndexFile items by @Andrej730 in https://github.com/gitpython-developers/GitPython/pull/1925
- Fix Improper Import Order Breaking
fuzz_submodule
Fuzzer by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1926 - Fix iter_change_type diff renamed property to prevent warning by @kamilkrzyskow in https://github.com/gitpython-developers/GitPython/pull/1918
- fixed doc to not faulty do #1924 by @zerothi in https://github.com/gitpython-developers/GitPython/pull/1932
- fix: fix incoherent beginning whitespace by @cardoeng in https://github.com/gitpython-developers/GitPython/pull/1933
- Change aliases to work around mypy issue. by @PatrickMassot in https://github.com/gitpython-developers/GitPython/pull/1935
- precommit: enable
end-of-file-fixer
by @Borda in https://github.com/gitpython-developers/GitPython/pull/1920 - lint: add typos check by @Borda in https://github.com/gitpython-developers/GitPython/pull/1888
- Add type of change to files_dict of a commit by @JonasScharpf in https://github.com/gitpython-developers/GitPython/pull/1943
- Enable Python 3.8 and 3.9 on M1 runners by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1944
- Use Alpine Linux in WSL on CI by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1945
- Remove the non-ARM macOS CI jobs by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1946
- Fix Several Bugs in the
fuzz_submodule
Causing a lot of False Alarms in the OSS-Fuzz Bug Tracker by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1950 - Gracefully handle
PermissionError
exceptions that crash fuzzer by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1951 - Fuzzing: Gracefully Handle Uninteresting Error to Fix OSS-Fuzz Issue by @DaveLak in https://github.com/gitpython-developers/GitPython/pull/1952
- Update and adjust pre-commit hooks by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1953
- Upgrade sphinx to ~7.1.2 by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1954
- Don't support building documentation on Python 3.7 by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1956
- _to_relative_path to support mixing slashes and backslashes by @Andrej730 in https://github.com/gitpython-developers/GitPython/pull/1961
- Update base.py by @alex20230721 in https://github.com/gitpython-developers/GitPython/pull/1965
- Fix Fetch progress bar by @fvalette-ledger in https://github.com/gitpython-developers/GitPython/pull/1971
New Contributors
- @EduardTalanov made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1899
- @DaveLak made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1901
- @Andrej730 made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1925
- @kamilkrzyskow made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1918
- @zerothi made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1932
- @cardoeng made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1933
- @PatrickMassot made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1935
- @JonasScharpf made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1943
- @alex20230721 made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1965
- @fvalette-ledger made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1971
Full Changelog: https://github.com/gitpython-developers/GitPython/compare/3.1.43...3.1.44
v3.1.43
Particularly Important Changes
These are likely to affect you, please do take a careful look.
- Issue and test deprecation warnings by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1886
- Fix version_info cache invalidation, typing, parsing, and serialization by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1838
- Document manual refresh path treatment by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1839
- Improve static typing and docstrings related to git object types by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1859
Other Changes
- Test in Docker with Alpine Linux on CI by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1826
- Build online docs (RTD) with -W and dependencies by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1843
- Suggest full-path refresh() in failure message by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1844
-
repo.blame
andrepo.blame_incremental
now acceptNone
as therev
parameter. by @Gaubbe in https://github.com/gitpython-developers/GitPython/pull/1846 - Make sure diff always uses the default diff driver when
create_patch=True
by @can-taslicukur in https://github.com/gitpython-developers/GitPython/pull/1832 - Revise docstrings, comments, and a few messages by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1850
- Expand what is included in the API Reference by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1855
- Restore building of documentation downloads by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1856
- Revise type annotations slightly by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1860
- Updating regex pattern to handle unicode whitespaces. by @jcole-crowdstrike in https://github.com/gitpython-developers/GitPython/pull/1853
- Use upgraded pip in test fixture virtual environment by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1864
- lint: replace
flake8
withruff
check by @Borda in https://github.com/gitpython-developers/GitPython/pull/1862 - lint: switch Black with
ruff-format
by @Borda in https://github.com/gitpython-developers/GitPython/pull/1865 - Update readme and tox.ini for recent tooling changes by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1868
- Split tox lint env into three envs, all safe by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1870
- Slightly broaden Ruff, and update and clarify tool configuration by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1871
- Add a "doc" extra for documentation build dependencies by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1872
- Describe
Submodule.__init__
parent_commit parameter by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1877 - Include TagObject in git.types.Tree_ish by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1878
- Improve Sphinx role usage, including linking Git manpages by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1879
- Replace all wildcard imports with explicit imports by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1880
- Clarify how tag objects are usually tree-ish and commit-ish by @EliahKagan in https://github.com/gitpython-developers/GitPython/pull/1881
New Contributors
- @Gaubbe made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1846
- @can-taslicukur made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1832
- @jcole-crowdstrike made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1853
- @Borda made their first contribution in https://github.com/gitpython-developers/GitPython/pull/1862
Full Changelog: https://github.com/gitpython-developers/GitPython/compare/3.1.42...3.1.43
pydantic/pydantic (pydantic)
v2.11.3
What's Changed
Packaging
Fixes
v2.11.2
What's Changed
Fixes
- Bump
pydantic-core
to v2.33.1 by @Viicos in #11678 - Make sure
__pydantic_private__
exists before setting private attributes by @Viicos in #11666 - Do not override
FieldInfo._complete
when using field from parent class by @Viicos in #11668 - Provide the available definitions when applying discriminated unions by @Viicos in #11670
- Do not expand root type in the mypy plugin for variables by @Viicos in #11676
- Mention the attribute name in model fields deprecation message by @Viicos in #11674
- Properly validate parameterized mappings by @Viicos in #11658
v2.11.1
What's Changed
Fixes
- Do not override
'definitions-ref'
schemas containing serialization schemas or metadata by @Viicos in #11644
v2.11.0
What's Changed
Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). See the blog post for more details.
Packaging
New Features
- Add
encoded_string()
method to the URL types by @YassinNouh21 in #11580 - Add support for
defer_build
with@validate_call
decorator by @Viicos in #11584 - Allow
@with_config
decorator to be used with keyword arguments by @Viicos in #11608 - Simplify customization of default value inclusion in JSON Schema generation by @Viicos in #11634
- Add
generate_arguments_schema()
function by @Viicos in #11572
Fixes
- Allow generic typed dictionaries to be used for unpacked variadic keyword parameters by @Viicos in #11571
- Fix runtime error when computing model string representation involving cached properties and self-referenced models by @Viicos in #11579
- Preserve other steps when using the ellipsis in the pipeline API by @Viicos in #11626
- Fix deferred discriminator application logic by @Viicos in #11591
New Contributors
- @cmenon12 made their first contribution in #11562
- @Jeukoh made their first contribution in #11611
v2.10.6
What's Changed
Fixes
- Fix JSON Schema reference collection with
'examples'
keys by @Viicos in #11325 - Fix url python serialization by @sydney-runkle in #11331
v2.10.5
What's Changed
Fixes
- Remove custom MRO implementation of Pydantic models by @Viicos in #11184
- Fix URL serialization for unions by @sydney-runkle in #11233
v2.10.4
What's Changed
Packaging
- Bump
pydantic-core
to v2.27.2 by @davidhewitt in #11138
Fixes
- Fix for comparison of
AnyUrl
objects by @alexprabhat99 in #11082 - Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by @Viicos in #11093
- Include JSON Schema input core schema in function schemas by @Viicos in #11085
- Add
len
to_BaseUrl
to avoid TypeError by @Kharianne in #11111 - Make sure the type reference is removed from the seen references by @Viicos in #11143
New Contributors
- @FyZzyss made their first contribution in #10789
- @tamird made their first contribution in #10948
- @felixxm made their first contribution in #11077
- @alexprabhat99 made their first contribution in #11082
- @Kharianne made their first contribution in #11111
v2.10.3
What's Changed
Fixes
- Set fields when
defer_build
is set on Pydantic dataclasses by @Viicos in #10984 - Do not resolve the JSON Schema reference for
dict
core schema keys by @Viicos in #10989 - Use the globals of the function when evaluating the return type for
PlainSerializer
andWrapSerializer
functions by @Viicos in #11008 - Fix host required enforcement for urls to be compatible with v2.9 behavior by @sydney-runkle in #11027
- Add a
default_factory_takes_validated_data
property toFieldInfo
by @Viicos in #11034 - Fix url json schema in
serialization
mode by @sydney-runkle in #11035
v2.10.2
What's Changed
Fixes
- Only evaluate FieldInfo annotations if required during schema building by @Viicos in #10769
- Do not evaluate annotations for private fields by @Viicos in #10962
- Support serialization as any for
Secret
types andUrl
types by @sydney-runkle in #10947 - Fix type hint of
Field.default
to be compatible with Python 3.8 and 3.9 by @Viicos in #10972 - Add hashing support for URL types by @sydney-runkle in #10975
- Hide
BaseModel.__replace__
definition from type checkers by @Viicos in #10979
v2.10.1
What's Changed
Packaging
- Bump
pydantic-core
version tov2.27.1
by @sydney-runkle in #10938
Fixes
- Use the correct frame when instantiating a parametrized
TypeAdapter
by @Viicos in #10893 - Relax check for validated data in
default_factory
utils by @sydney-runkle in #10909 - Fix type checking issue with
model_fields
andmodel_computed_fields
by @sydney-runkle in #10911 - Use the parent configuration during schema generation for stdlib
dataclass
es by @sydney-runkle in #10928 - Use the
globals
of the function when evaluating the return type of serializers andcomputed_field
s by @Viicos in #10929 - Fix URL constraint application by @sydney-runkle in #10922
- Fix URL equality with different validation methods by @sydney-runkle in #10934
- Fix JSON schema title when specified as
''
by @sydney-runkle in #10936 - Fix
python
mode serialization forcomplex
inference by @sydney-runkle in pydantic-core#1549
New Contributors
v2.10.0
The code released in v2.10.0 is practically identical to that of v2.10.0b2.
See the v2.10 release blog post for the highlights!
What's Changed
Packaging
- Bump
pydantic-core
tov2.27.0
by @sydney-runkle in #10825 - Replaced pdm with uv by @frfahim in #10727
New Features
- Support
fractions.Fraction
by @sydney-runkle in #10318 - Support
Hashable
for json validation by @sydney-runkle in #10324 - Add a
SocketPath
type forlinux
systems by @theunkn0wn1 in #10378 - Allow arbitrary refs in JSON schema
examples
by @sydney-runkle in #10417 - Support
defer_build
for Pydantic dataclasses by @Viicos in #10313 - Adding v1 / v2 incompatibility warning for nested v1 model by @sydney-runkle in #10431
- Add support for unpacked
TypedDict
to type hint variadic keyword arguments with@validate_call
by @Viicos in #10416 - Support compiled patterns in
protected_namespaces
by @sydney-runkle in #10522 - Add support for
propertyNames
in JSON schema by @FlorianSW in #10478 - Adding
__replace__
protocol for Python 3.13+ support by @sydney-runkle in #10596 - Expose public
sort
method for JSON schema generation by @sydney-runkle in #10595 - Add runtime validation of
@validate_call
callable argument by @kc0506 in #10627 - Add
experimental_allow_partial
support by @samuelcolvin in #10748 - Support default factories taking validated data as an argument by @Viicos in #10678
- Allow subclassing
ValidationError
andPydanticCustomError
by @Youssefares in pydantic/pydantic-core#1413 - Add
trailing-strings
support toexperimental_allow_partial
by @sydney-runkle in #10825 - Add
rebuild()
method forTypeAdapter
and simplifydefer_build
patterns by @sydney-runkle in #10537 - Improve
TypeAdapter
instance repr by @sydney-runkle in #10872
Changes
- Don't allow customization of
SchemaGenerator
until interface is more stable by @sydney-runkle in #10303 - Cleanly
defer_build
onTypeAdapters
, removing experimental flag by @sydney-runkle in #10329 - Fix
mro
of generic subclass by @kc0506 in #10100 - Strip whitespaces on JSON Schema title generation by @sydney-runkle in #10404
- Use
b64decode
andb64encode
forBase64Bytes
type by @sydney-runkle in #10486 - Relax protected namespace config default by @sydney-runkle in #10441
- Revalidate parametrized generics if instance's origin is subclass of OG class by @sydney-runkle in #10666
- Warn if configuration is specified on the
@dataclass
decorator and with the__pydantic_config__
attribute by @sydney-runkle in #10406 - Recommend against using
Ellipsis
(...) withField
by @Viicos in #10661 - Migrate to subclassing instead of annotated approach for pydantic url types by @sydney-runkle in #10662
- Change JSON schema generation of
Literal
s andEnums
by @Viicos in #10692 - Simplify unions involving
Any
orNever
when replacing type variables by @Viicos in #10338 - Do not require padding when decoding
base64
bytes by @bschoenmaeckers in pydantic/pydantic-core#1448 - Support dates all the way to 1BC by @changhc in pydantic/speedate#77
Performance
- Schema cleaning: skip unnecessary copies during schema walking by @Viicos in #10286
- Refactor namespace logic for annotations evaluation by @Viicos in #10530
- Improve email regexp on edge cases by @AlekseyLobanov in #10601
-
CoreMetadata
refactor with an emphasis on documentation, schema build time performance, and reducing complexity by @sydney-runkle in #10675
Fixes
- Remove guarding check on
computed_field
withfield_serializer
by @nix010 in #10390 - Fix
Predicate
issue inv2.9.0
by @sydney-runkle in #10321 - Fixing
annotated-types
bound by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Use correct types namespace when building
namedtuple
core schemas by @Viicos in #10337 - Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix
IncEx
type alias definition by @Viicos in #10339 - Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Fix nested type statement by @kc0506 in #10369
- Improve typing of
ModelMetaclass.mro
by @Viicos in #10372 - Fix class access of deprecated
computed_field
s by @Viicos in #10391 - Make sure
inspect.iscoroutinefunction
works on coroutines decorated with@validate_call
by @MovisLi in #10374 - Fix
NameError
when usingvalidate_call
with PEP 695 on a class by @kc0506 in #10380 - Fix
ZoneInfo
with various invalid types by @sydney-runkle in #10408 - Fix
PydanticUserError
on emptymodel_config
with annotations by @cdwilson in #10412 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix schema generation error when serialization schema holds references by @Viicos in #10444
- Inline references if possible when generating schema for
json_schema_input_type
by @Viicos in #10439 - Fix recursive arguments in
Representation
by @Viicos in #10480 - Fix representation for builtin function types by @kschwab in #10479
- Add python validators for decimal constraints (
max_digits
anddecimal_places
) by @sydney-runkle in #10506 - Only fetch
__pydantic_core_schema__
from the current class during schema generation by @Viicos in #10518 - Fix
stacklevel
on deprecation warnings forBaseModel
by @sydney-runkle in #10520 - Fix warning
stacklevel
inBaseModel.__init__
by @Viicos in #10526 - Improve error handling for in-evaluable refs for discriminator application by @sydney-runkle in #10440
- Change the signature of
ConfigWrapper.core_config
to take the title directly by @Viicos in #10562 - Do not use the previous config from the stack for dataclasses without config by @Viicos in #10576
- Fix serialization for IP types with
mode='python'
by @sydney-runkle in #10594 - Support constraint application for
Base64Etc
types by @sydney-runkle in #10584 - Fix
validate_call
ignoringField
inAnnotated
by @kc0506 in #10610 - Raise an error when
Self
is invalid by @kc0506 in #10609 - Using
core_schema.InvalidSchema
instead of metadata injection + checks by @sydney-runkle in #10523 - Tweak type alias logic by @kc0506 in #10643
- Support usage of
type
withtyping.Self
and type aliases by @kc0506 in #10621 - Use overloads for
Field
andPrivateAttr
functions by @Viicos in #10651 - Clean up the
mypy
plugin implementation by @Viicos in #10669 - Properly check for
typing_extensions
variant ofTypeAliasType
by @Daraan in #10713 - Allow any mapping in
BaseModel.model_copy()
by @Viicos in #10751 - Fix
isinstance
behavior for urls by @sydney-runkle in #10766 - Ensure
cached_property
can be set on Pydantic models by @Viicos in #10774 - Fix equality checks for primitives in literals by @sydney-runkle in pydantic/pydantic-core#1459
- Properly enforce
host_required
for URLs by @Viicos in pydantic/pydantic-core#1488 - Fix when
coerce_numbers_to_str
enabled and string has invalid Unicode character by @andrey-berenda in pydantic/pydantic-core#1515 - Fix serializing
complex
values inEnum
s by @changhc in pydantic/pydantic-core#1524 - Refactor
_typing_extra
module by @Viicos in #10725 - Support intuitive equality for urls by @sydney-runkle in #10798
- Add
bytearray
toTypeAdapter.validate_json
signature by @samuelcolvin in #10802 - Ensure class access of method descriptors is performed when used as a default with
Field
by @Viicos in #10816 - Fix circular import with
validate_call
by @sydney-runkle in #10807 - Fix error when using type aliases referencing other type aliases by @Viicos in #10809
- Fix
IncEx
type alias to be compatible with mypy by @Viicos in #10813 - Make
__signature__
a lazy property, do not deepcopy defaults by @Viicos in #10818 - Make
__signature__
lazy for dataclasses, too by @sydney-runkle in #10832 - Subclass all single host url classes from
AnyUrl
to preserve behavior from v2.9 by @sydney-runkle in #10856
New Contributors
- @jakob-keller made their first contribution in #10331
- @MovisLi made their first contribution in #10374
- @joaopalmeiro made their first contribution in #10405
- @theunkn0wn1 made their first contribution in #10378
- @cdwilson made their first contribution in #10412
- @dlax made their first contribution in #10421
- @kschwab made their first contribution in #10479
- @santibreo made their first contribution in #10453
- @FlorianSW made their first contribution in #10478
- @tkasuz made their first contribution in #10555
- @AlekseyLobanov made their first contribution in #10601
- @NiclasvanEyk made their first contribution in #10667
- @mschoettle made their first contribution in #10677
- @Daraan made their first contribution in #10713
- @k4nar made their first contribution in #10736
- @UriyaHarpeness made their first contribution in #10740
- @frfahim made their first contribution in #10727
v2.9.2
What's Changed
Fixes
- Do not error when trying to evaluate annotations of private attributes by @Viicos in #10358
- Adding notes on designing sound
Callable
discriminators by @sydney-runkle in #10400 - Fix serialization schema generation when using
PlainValidator
by @Viicos in #10427 - Fix
Union
serialization warnings by @sydney-runkle in pydantic/pydantic-core#1449 - Fix variance issue in
_IncEx
type alias, only allowTrue
by @Viicos in #10414 - Fix
ZoneInfo
validation with various invalid types by @sydney-runkle in #10408
v2.9.1
What's Changed
Fixes
- Fix Predicate issue in v2.9.0 by @sydney-runkle in #10321
- Fixing
annotated-types
bound to>=0.6.0
by @sydney-runkle in #10327 - Turn
tzdata
install requirement into optionaltimezone
dependency by @jakob-keller in #10331 - Fix
IncExc
type alias definition by @Viicos in #10339 - Use correct types namespace when building namedtuple core schemas by @Viicos in #10337
- Fix evaluation of stringified annotations during namespace inspection by @Viicos in #10347
- Fix tagged union serialization with alias generators by @sydney-runkle in pydantic/pydantic-core#1442
v2.9.0
The code released in v2.9.0 is practically identical to that of v2.9.0b2.
What's Changed
Packaging
- Bump
ruff
tov0.5.0
andpyright
tov1.1.369
by @sydney-runkle in #9801 - Bump
pydantic-extra-types
tov2.9.0
by @sydney-runkle in #9832 - Support compatibility with
pdm v2.18.1
by @Viicos in #10138 - Bump
v1
version stub tov1.10.18
by @sydney-runkle in #10214 - Bump
pydantic-core
tov2.23.2
by @sydney-runkle in #10311
New Features
- Add support for
ZoneInfo
by @Youssefares in #9896 - Add
Config.val_json_bytes
by @josh-newman in #9770 - Add DSN for Snowflake by @aditkumar72 in #10128
- Support
complex
number by @changhc in #9654 - Add support for
annotated_types.Not
by @aditkumar72 in #10210 - Allow
WithJsonSchema
to inject$ref
s w/http
orhttps
links by @dAIsySHEng1 in #9863 - Allow validators to customize validation JSON schema by @Viicos in #10094
- Support parametrized
PathLike
types by @nix010 in #9764 - Add tagged union serializer that attempts to use
str
orcallable
discriminators to select the correct serializer by @sydney-runkle in in pydantic/pydantic-core#1397
Changes
- Breaking Change: Merge
dict
typejson_schema_extra
by @sydney-runkle in #9792- For more info (how to replicate old behavior) on this change, see here
- Refactor annotation injection for known (often generic) types by @sydney-runkle in #9979
- Move annotation compatibility errors to validation phase by @sydney-runkle in #9999
- Improve runtime errors for string constraints like
pattern
for incompatible types by @sydney-runkle in #10158 - Remove
'allOf'
JSON schema workarounds by @dpeachey in #10029 - Remove
typed_dict_cls
data fromCoreMetadata
by @sydney-runkle in #10180 - Deprecate passing a dict to the
Examples
class by @Viicos in #10181 - Remove
initial_metadata
from internal metadata construct by @sydney-runkle in #10194 - Use
re.Pattern.search
instead ofre.Pattern.match
for consistency withrust
behavior by @tinez in pydantic/pydantic-core#1368 - Show value of wrongly typed data in
pydantic-core
serialization warning by @BoxyUwU in pydantic/pydantic-core#1377 - Breaking Change: in
pydantic-core
, changemetadata
type hint in core schemas fromAny
->Dict[str, Any] | None
by @sydney-runkle in pydantic/pydantic-core#1411 - Raise helpful warning when
self
isn't returned from model validator by @sydney-runkle in #10255
Performance
- Initial start at improving import times for modules, using caching primarily by @sydney-runkle in #10009
- Using cached internal import for
BaseModel
by @sydney-runkle in #10013 - Simplify internal generics logic - remove generator overhead by @sydney-runkle in #10059
- Remove default module globals from types namespace by @sydney-runkle in #10123
- Performance boost: skip caching parent namespaces in most cases by @sydney-runkle in #10113
- Update ns stack with already copied ns by @sydney-runkle in #10267
Minor Internal Improvements
-
Speed upmultiple_of_validator()
by 31% inpydantic/_internal/_validators.py
by @misrasaurabh1 in #9839 -
Speed upModelPrivateAttr.__set_name__()
by 18% inpydantic/fields.py
by @misrasaurabh1 in #9841 -
Speed updataclass()
by 7% inpydantic/dataclasses.py
by @misrasaurabh1 in #9843 -
Speed up function_field_name_for_signature
by 37% inpydantic/_internal/_signature.py
by @misrasaurabh1 in #9951 -
Speed up methodGenerateSchema._unpack_refs_defs
by 26% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9949 -
Speed up functionapply_each_item_validators
by 100% inpydantic/_internal/_generate_schema.py
by @misrasaurabh1 in #9950 -
Speed up methodConfigWrapper.core_config
by 28% inpydantic/_internal/_config.py
by @misrasaurabh1 in #9953
Fixes
- Respect
use_enum_values
onLiteral
types by @kwint in #9787 - Prevent type error for exotic
BaseModel/RootModel
inheritance by @dmontagu in #9913 - Fix typing issue with field_validator-decorated methods by @dmontagu in #9914
- Replace
str
type annotation withAny
in validator factories in documentation on validators by @maximilianfellhuber in #9885 - Fix
ComputedFieldInfo.wrapped_property
pointer when a property setter is assigned by @tlambert03 in #9892 - Fix recursive typing of
main.IncEnx
by @tlambert03 in #9924 - Allow usage of
type[Annotated[...]]
by @Viicos in #9932 -
mypy
plugin: handle frozen fields on a per-field basis by @dmontagu in #9935 - Fix typo in
invalid-annotated-type
error code by @sydney-runkle in #9948 - Simplify schema generation for
uuid
,url
, andip
types by @sydney-runkle in #9975 - Move
date
schemas to_generate_schema.py
by @sydney-runkle in #9976 - Move
decimal.Decimal
validation to_generate_schema.py
by @sydney-runkle in #9977 - Simplify IP address schema in
_std_types_schema.py
by @sydney-runkle in #9959 - Fix type annotations for some potentially generic
GenerateSchema.match_type
options by @sydney-runkle in #9961 - Add class name to "has conflict" warnings by @msabramo in #9964
- Fix
dataclass
ignoringdefault_factory
passed in Annotated by @kc0506 in #9971 - Fix
Sequence
ignoringdiscriminator
by @kc0506 in #9980 - Fix typing for
IPvAnyAddress
andIPvAnyInterface
by @haoyun in #9990 - Fix false positives on v1 models in
mypy
plugin forfrom_orm
check requiring from_attributes=True config by @radekwlsk in #9938 - Apply
strict=True
to__init__
inmypy
plugin by @kc0506 in #9998 - Refactor application of
deque
annotations by @sydney-runkle in #10018 - Raise a better user error when failing to evaluate a forward reference by @Viicos in #10030
- Fix evaluation of
__pydantic_extra__
annotation in specific circumstances by @Viicos in #10070 - Fix
frozen
enforcement fordataclasses
by @sydney-runkle in #10066 - Remove logic to handle unused
__get_pydantic_core_schema__
signature by @Viicos in #10075 - Use
is_annotated
consistently by @Viicos in #10095 - Fix
PydanticDeprecatedSince26
typo by @kc0506 in #10101 - Improve
pyright
tests, refactor model decorators signatures by @Viicos in #10092 - Fix
ip
serialization logic by @sydney-runkle in #10112 - Warn when frozen defined twice for
dataclasses
by @mochi22 in #10082 - Do not compute JSON Schema default when plain serializers are used with
when_used
set to'json-unless-none'
and the default value isNone
by @Viicos in #10121 - Fix
ImportString
special cases by @sydney-runkle in #10137 - Blacklist default globals to support exotic user code with
__
prefixed annotations by @sydney-runkle in #10136 - Handle
nullable
schemas withserialization
schema available during JSON Schema generation by @Viicos in #10132 - Reorganize
BaseModel
annotations by @kc0506 in #10110 - Fix core schema simplification when serialization schemas are involved in specific scenarios by @Viicos in #10155
- Add support for stringified annotations when using
PrivateAttr
withAnnotated
by @Viicos in #10157 - Fix JSON Schema
number
type for literal and enum schemas by @Viicos in #10172 - Fix JSON Schema generation of fields with plain validators in serialization mode by @Viicos in #10167
- Fix invalid JSON Schemas being generated for functions in certain scenarios by @Viicos in #10188
- Make sure generated JSON Schemas are valid in tests by @Viicos in #10182
- Fix key error with custom serializer by @sydney-runkle in #10200
- Add 'wss' for allowed schemes in NatsDsn by @swelborn in #10224
- Fix
Mapping
andMutableMapping
annotations to use mapping schema instead of dict schema by @sydney-runkle in #10020 - Fix JSON Schema generation for constrained dates by @Viicos in #10185
- Fix discriminated union bug regression when using enums by @kfreezen in pydantic/pydantic-core#1286
- Fix
field_serializer
with computed field when using*
by @nix010 in pydantic/pydantic-core#1349 - Try each option in
Union
serializer before inference by @sydney-runkle in pydantic/pydantic-core#1398 - Fix
float
serialization behavior instrict
mode by @sydney-runkle in pydantic/pydantic-core#1400 - Introduce
exactness
into Decimal validation logic to improve union validation behavior by @sydney-runkle in in pydantic/pydantic-core#1405 - Fix new warnings assertions to use
pytest.warns()
by @mgorny in #10241 - Fix a crash when cleaning the namespace in
ModelMetaclass
by @Viicos in #10242 - Fix parent namespace issue with model rebuilds by @sydney-runkle in #10257
- Remove defaults filter for namespace by @sydney-runkle in #10261
- Use identity instead of equality after validating model in
__init__
by @Viicos in #10264 - Support
BigInt
serialization forint
subclasses by @kxx317 in pydantic/pydantic-core#1417 - Support signature for wrap validators without
info
by @sydney-runkle in #10277 - Ensure
__pydantic_complete__
is set when rebuildingdataclasses
by @Viicos in #10291 - Respect
schema_generator
config value inTypeAdapter
by @sydney-runkle in #10300
New Contributors
pydantic
- @kwint made their first contribution in #9787
- @seekinginfiniteloop made their first contribution in #9822
- @a-alexander made their first contribution in #9848
- @maximilianfellhuber made their first contribution in #9885
- @karmaBonfire made their first contribution in #9945
- @s-rigaud made their first contribution in #9958
- @msabramo made their first contribution in #9964
- @DimaCybr made their first contribution in #9972
- @kc0506 made their first contribution in #9971
- @haoyun made their first contribution in #9990
- @radekwlsk made their first contribution in #9938
- @dpeachey made their first contribution in #10029
- @BoxyUwU made their first contribution in #10085
- @mochi22 made their first contribution in #10082
- @aditkumar72 made their first contribution in #10128
- @changhc made their first contribution in #9654
- @insumanth made their first contribution in #10229
- @AdolfoVillalobos made their first contribution in #10240
- @bllchmbrs made their first contribution in #10270
pydantic-core
- @kfreezen made their first contribution in pydantic/pydantic-core#1286
- @tinez made their first contribution in pydantic/pydantic-core#1368
- @fft001 made their first contribution in pydantic/pydantic-core#1362
- @nix010 made their first contribution in pydantic/pydantic-core#1349
- @BoxyUwU made their first contribution in pydantic/pydantic-core#1379
- @candleindark made their first contribution in pydantic/pydantic-core#1404
- @changhc made their first contribution in pydantic/pydantic-core#1331
v2.8.2
What's Changed
Fixes
- Fix issue with assertion caused by pluggable schema validator by @dmontagu in #9838
v2.8.1
What's Changed
Packaging
- Bump
ruff
tov0.5.0
andpyright
tov1.1.369
by @sydney-runkle in #9801 - Bump
pydantic-core
tov2.20.1
,pydantic-extra-types
tov2.9.0
by @sydney-runkle in #9832
Fixes
- Fix breaking change in
to_snake
from v2.7 -> v2.8 by @sydney-runkle in #9812 - Fix list constraint json schema application by @sydney-runkle in #9818
- Support time duration more than 23 by @nix010 in pydantic/speedate#64
- Fix millisecond fraction being handled with the wrong scale by @davidhewitt in pydantic/speedate#65
- Handle negative fractional durations correctly by @sydney-runkle in pydantic/speedate#71
v2.8.0
The code released in v2.8.0 is functionally identical to that of v2.8.0b1.
What's Changed
Packaging
- Update citation version automatically with new releases by @sydney-runkle in #9673
- Bump pyright to
v1.1.367
and add type checking tests for pipeline API by @adriangb in #9674 - Update
pydantic.v1
stub tov1.10.17
by @sydney-runkle in #9707 - General package updates to prep for
v2.8.0b1
by @sydney-runkle in #9741 - Bump
pydantic-core
tov2.20.0
by @sydney-runkle in #9745 - Add support for Python 3.13 by @sydney-runkle in #9743
- Update
pdm
version used forpdm.lock
to v2.16.1 by @sydney-runkle in #9761 - Update to
ruff
v0.4.8
by @Viicos in #9585
New Features
- Experimental: support
defer_build
forTypeAdapter
by @MarkusSintonen in #8939 - Implement
deprecated
field in json schema by @NeevCohen in #9298 - Experimental: Add pipeline API by @adriangb in #9459
- Add support for programmatic title generation by @NeevCohen in #9183
- Implement
fail_fast
feature by @uriyyo in #9708 - Add
ser_json_inf_nan='strings'
mode to produce valid JSON by @josh-newman in pydantic/pydantic-core#1307
Changes
- Add warning when "alias" is set in ignored
Annotated
field by @nix010 in #9170 - Support serialization of some serializable defaults in JSON schema by @sydney-runkle in #9624
- Relax type specification for
__validators__
values increate_model
by @sydney-runkle in #9697 -
Breaking Change: Improve
smart
union matching logic by @sydney-runkle in pydantic/pydantic-core#1322 You can read more about oursmart
union matching logic here. In some cases, if the old behavior is desired, you can switch toleft-to-right
mode and change the order of yourUnion
members.
Performance
Internal Improvements
-
Speed up_display_error_loc()
by 25% inpydantic/v1/error_wrappers.py
by @misrasaurabh1 in #9653 -
Speed up_get_all_json_refs()
by 34% inpydantic/json_schema.py
by @misrasaurabh1 in #9650 -
Speed upis_pydantic_dataclass()
by 41% inpydantic/dataclasses.py
by @misrasaurabh1 in #9652 -
Speed upto_snake()
by 27% inpydantic/alias_generators.py
by @misrasaurabh1 in #9747 -
Speed upunwrap_wrapped_function()
by 93% inpydantic/_internal/_decorators.py
by @misrasaurabh1 in #9727
Fixes
- Replace
__spec__.parent
with__package__
by @hramezani in #9331 - Fix Outputted Model JSON Schema for
Sequence
type by @anesmemisevic in #9303 - Fix typing of
_frame_depth
by @Viicos in #9353 - Make
ImportString
json schema compatible by @amitschang in #9344 - Hide private attributes (
PrivateAttr
) from__init__
signature in type checkers by @idan22moral in #9293 - Make detection of
TypeVar
defaults robust to the CPythonPEP-696
implementation by @AlexWaygood in #9426 - Fix usage of
PlainSerializer
with builtin types by @Viicos in #9450 - Add more robust custom validation examples by @ChrisPappalardo in #9468
- Fix ignored
strict
specification forStringConstraint(strict=False)
by @vbmendes in #9476 - Breaking Change: Use PEP 570 syntax by @Viicos in #9479
- Use
Self
where possible by @Viicos in #9479 - Do not alter
RootModel.model_construct
signature in themypy
plugin by @Viicos in #9480 - Fixed type hint of
validation_context
by @OhioDschungel6 in #9508 - Support context being passed to TypeAdapter's
dump_json
/dump_python
by @alexcouper in #9495 - Updates type signature for
Field()
constructor by @bjmc in #9484 - Improve builtin alias generators by @sydney-runkle in #9561
- Fix typing of
TypeAdapter
by @Viicos in #9570 - Add fallback default value for private fields in
__setstate__
of BaseModel by @anhpham1509 in #9584 - Support
PEP 746
by @adriangb in #9587 - Allow validator and serializer functions to have default values by @Viicos in #9478
- Fix bug with mypy plugin's handling of covariant
TypeVar
fields by @dmontagu in #9606 - Fix multiple annotation / constraint application logic by @sydney-runkle in #9623
- Respect
regex
flags in validation and json schema by @sydney-runkle in #9591 - Fix type hint on
IpvAnyAddress
by @sydney-runkle in #9640 - Allow a field specifier on
__pydantic_extra__
by @dmontagu in #9659 - Use normalized case for file path comparison by @sydney-runkle in #9737
- Modify constraint application logic to allow field constraints on
Optional[Decimal]
by @lazyhope in #9754 -
validate_call
type params fix by @sydney-runkle in #9760 - Check all warnings returned by pytest.warns() by @s-t-e-v-e-n-k in #9702
- Reuse
re.Pattern
object in regex patterns to allow for regex flags by @sydney-runkle in pydantic/pydantic-core#1318
New Contributors
- @idan22moral made their first contribution in #9294
- @anesmemisevic made their first contribution in #9303
- @max-muoto made their first contribution in #9338
- @amitschang made their first contribution in #9344
- @paulmartin91 made their first contribution in #9410
- @OhioDschungel6 made their first contribution in #9405
- @AlexWaygood made their first contribution in #9426
- @kinuax made their first contribution in #9433
- @antoni-jamiolkowski made their first contribution in #9431
- @candleindark made their first contribution in #9448
- @nix010 made their first contribution in #9170
- @tomy0000000 made their first contribution in #9457
- @vbmendes made their first contribution in #9470
- @micheleAlberto made their first contribution in #9471
- @ChrisPappalardo made their first contribution in #9468
- @blueTurtz made their first contribution in #9475
- @WinterBlue16 made their first contribution in #9477
- @bittner made their first contribution in #9500
- @alexcouper made their first contribution in #9495
- @bjmc made their first contribution in #9484
- @pjvv made their first contribution in #9529
- @nedbat made their first contribution in #9530
- @gunnellEvan made their first contribution in #9469
- @jaymbans made their first contribution in #9531
- @MarcBresson made their first contribution in #9534
- @anhpham1509 made their first contribution in #9584
- @K-dash made their first contribution in #9595
- @s-t-e-v-e-n-k made their first contribution in #9527
- @airwoodix made their first contribution in #9506
- @misrasaurabh1 made their first contribution in #9653
- @AlessandroMiola made their first contribution in #9740
- @mylapallilavanyaa made their first contribution in #9746
- @lazyhope made their first contribution in #9754
- @YassinNouh21 made their first contribution in #9759
v2.7.4
What's Changed
Packaging
- Bump
pydantic.v1
tov1.10.16
reference by @sydney-runkle in #9639
Fixes
v2.7.3
What's Changed
Packaging
- Bump
pydantic-core
tov2.18.4
by @sydney-runkle in #9550
Fixes
- Fix u style unicode strings in python @samuelcolvin in pydantic/jiter#110
v2.7.2
What's Changed
Packaging
- Bump
pydantic-core
tov2.18.3
by @sydney-runkle in #9515
Fixes
- Replace
__spec__.parent
with__package__
by @hramezani in #9331 - Fix validation of
int
s with leading unary minus by @RajatRajdeep in pydantic/pydantic-core#1291 - Fix
str
subclass validation for enums by @sydney-runkle in pydantic/pydantic-core#1273 - Support
BigInt
s inLiteral
s andEnum
s by @samuelcolvin in pydantic/pydantic-core#1297 - Fix: uuid - allow
str
subclass as input by @davidhewitt in pydantic/pydantic-core#1296
v2.7.1
What's Changed
Packaging
- Bump
pydantic-core
tov2.18.2
by @sydney-runkle in #9307
New Features
- Ftp and Websocket connection strings support by @CherrySuryp in #9205
Changes
- Use field description for RootModel schema description when there is
…
by @LouisGobert in #9214
Fixes
- Fix
validation_alias
behavior withmodel_construct
forAliasChoices
andAliasPath
by @sydney-runkle in #9223 - Revert
typing.Literal
and import it outside the TYPE_CHECKING block by @frost-nzcr4 in #9232 - Fix
Secret
serialization schema, applicable for unions by @sydney-runkle in #9240 - Fix
strict
application tofunction-after
withuse_enum_values
by @sydney-runkle in #9279 - Address case where
model_construct
on a class which definesmodel_post_init
fails withAttributeError
by @babygrimes in #9168 - Fix
model_json_schema
with config types by @NeevCohen in #9287 - Support multiple zeros as an
int
by @samuelcolvin in pydantic/pydantic-core#1269 - Fix validation of
int
s with leading unary plus by @cknv in pydantic/pydantic-core#1272 - Fix interaction between
extra != 'ignore'
andfrom_attributes=True
by @davidhewitt in pydantic/pydantic-core#1276 - Handle error from
Enum
'smissing
function asValidationError
by @sydney-runkle in pydantic/pydantic-core#1274 - Fix memory leak with
Iterable
validation by @davidhewitt in pydantic/pydantic-core#1271
New Contributors
- @zzstoatzz made their first contribution in #9219
- @frost-nzcr4 made their first contribution in #9232
- @CherrySuryp made their first contribution in #9205
- @vagenas made their first contribution in #9268
- @ollz272 made their first contribution in #9262
- @babygrimes made their first contribution in #9168
- @swelborn made their first contribution in #9296
- @kf-novi made their first contribution in #9236
- @lgeiger made their first contribution in #9288
v2.7.0
The code released in v2.7.0 is practically identical to that of v2.7.0b1.
What's Changed
Packaging
- Reorganize
pyproject.toml
sections by @Viicos in #8899 - Bump
pydantic-core
tov2.18.1
by @sydney-runkle in #9211 - Adopt
jiter
v0.2.0
by @samuelcolvin in pydantic/pydantic-core#1250
New Features
- Extract attribute docstrings from
FieldInfo.description
by @Viicos in #6563 - Add a
with_config
decorator to comply with typing spec by @Viicos in #8611 - Allow an optional separator splitting the value and unit of the result of
ByteSize.human_readable
by @jks15satoshi in #8706 - Add generic
Secret
base type by @conradogarciaberrotaran in #8519 - Make use of
Sphinx
inventories for cross references in docs by @Viicos in #8682 - Add environment variable to disable plugins by @geospackle in #8767
- Add support for
deprecated
fields by @Viicos in #8237 - Allow
field_serializer('*')
by @ornariece in #9001 - Handle a case when
model_config
is defined as a model property by @alexeyt101 in #9004 - Update
create_model()
to supporttyping.Annotated
as input by @wannieman98 in #8947 - Add
ClickhouseDsn
support by @solidguy7 in #9062 - Add support for
re.Pattern[str]
topattern
field by @jag-k in #9053 - Support for
serialize_as_any
runtime setting by @sydney-runkle in #8830 - Add support for
typing.Self
by @Youssefares in #9023 - Ability to pass
context
to serialization by @ornariece in #8965 - Add feedback widget to docs with flarelytics integration by @sydney-runkle in #9129
- Support for parsing partial JSON strings in Python by @samuelcolvin in pydantic/jiter#66
Finalized in v2.7.0, rather than v2.7.0b1:
- Add support for field level number to str coercion option by @NeevCohen in #9137
- Update
warnings
parameter for serialization utilities to allow raising a warning by @Lance-Drane in #9166
Changes
- Correct docs, logic for
model_construct
behavior withextra
by @sydney-runkle in #8807 - Improve error message for improper
RootModel
subclasses by @sydney-runkle in #8857 -
Breaking Change: Use
PEP570
syntax by @Viicos in #8940 - Add
enum
andtype
to the JSON schema for single item literals by @dmontagu in #8944 - Deprecate
update_json_schema
internal function by @sydney-runkle in #9125 - Serialize duration to hour minute second, instead of just seconds by @kakilangit in pydantic/speedate#50
- Trimming str before parsing to int and float by @hungtsetse in pydantic/pydantic-core#1203
Performance
-
enum
validator improvements by @samuelcolvin in #9045 - Move
enum
validation and serialization to Rust by @samuelcolvin in #9064 - Improve schema generation for nested dataclasses by @sydney-runkle in #9114
- Fast path for ASCII python string creation in JSON by @samuelcolvin in in pydantic/jiter#72
- SIMD integer and string JSON parsing on
aarch64
(Note: SIMD on x86 will be implemented in a future release) by @samuelcolvin in in pydantic/jiter#65 - Support JSON
Cow<str>
fromjiter
by @davidhewitt in pydantic/pydantic-core#1231 - MAJOR performance improvement: update to PyO3 0.21 final by @davidhewitt in pydantic/pydantic-core#1248
- cache Python strings by @samuelcolvin in pydantic/pydantic-core#1240
Fixes
- Fix strict parsing for some
Sequence
s by @sydney-runkle in #8614 - Add a check on the existence of
__qualname__
by @anci3ntr0ck in #8642 - Handle
__pydantic_extra__
annotation being a string or inherited by @alexmojaki in #8659 - Fix json validation for
NameEmail
by @Holi0317 in #8650 - Fix type-safety of attribute access in
BaseModel
by @bluenote10 in #8651 - Fix bug with
mypy
plugin andno_strict_optional = True
by @dmontagu in #8666 - Fix
ByteSize
errortype
change by @sydney-runkle in #8681 - Fix inheriting annotations in dataclasses by @sydney-runkle in #8679
- Fix regression in core schema generation for indirect definition references by @dmontagu in #8702
- Fix unsupported types bug with plain validator by @sydney-runkle in #8710
- Reverting problematic fix from 2.6 release, fixing schema building bug by @sydney-runkle in #8718
- fixes
__pydantic_config__
ignored for TypeDict by @13sin in #8734 - Fix test failures with
pytest v8.0.0
due topytest.warns()
starting to work insidepytest.raises()
by @mgorny in #8678 - Use
is_valid_field
from 1.x formypy
plugin by @DanielNoord in #8738 - Better-support
mypy
strict equality flag by @dmontagu in #8799 - model_json_schema export with Annotated types misses 'required' parameters by @LouisGobert in #8793
- Fix default inclusion in
FieldInfo.__repr_args__
by @sydney-runkle in #8801 - Fix resolution of forward refs in dataclass base classes that are not present in the subclass module namespace by @matsjoyce-refeyn in #8751
- Fix
BaseModel
type annotations to be resolvable bytyping.get_type_hints
by @devmonkey22 in #7680 - Fix: allow empty string aliases with
AliasGenerator
by @sydney-runkle in #8810 - Fix test along with
date
->datetime
timezone assumption fix by @sydney-runkle in #8823 - Fix deprecation warning with usage of
ast.Str
by @Viicos in #8837 - Add missing
deprecated
decorators by @Viicos in #8877 - Fix serialization of
NameEmail
if name includes an email address by @NeevCohen in #8860 - Add information about class in error message of schema generation by @Czaki in #8917
- Make
TypeAdapter
's typing compatible with special forms by @adriangb in #8923 - Fix issue with config behavior being baked into the ref schema for
enum
s by @dmontagu in #8920 - More helpful error re wrong
model_json_schema
usage by @sydney-runkle in #8928 - Fix nested discriminated union schema gen, pt 2 by @sydney-runkle in #8932
- Fix schema build for nested dataclasses / TypedDicts with discriminators by @sydney-runkle in #8950
- Remove unnecessary logic for definitions schema gen with discriminated unions by @sydney-runkle in #8951
- Fix handling of optionals in
mypy
plugin by @dmontagu in #9008 - Fix
PlainSerializer
usage with std type constructor by @sydney-runkle in #9031 - Remove unnecessary warning for config in plugin by @dmontagu in #9039
- Fix default value serializing by @NeevCohen in #9066
- Fix extra fields check in
Model.__getattr__()
by @NeevCohen in #9082 - Fix
ClassVar
forward ref inherited from parent class by @alexmojaki in #9097 - fix sequence like validator with strict
True
by @andresliszt in #8977 - Improve warning message when a field name shadows a field in a parent model by @chan-vince in #9105
- Do not warn about shadowed fields if they are not redefined in a child class by @chan-vince in #9111
- Fix discriminated union bug with unsubstituted type var by @sydney-runkle in #9124
- Support serialization of
deque
when passed toSequence[blah blah blah]
by @sydney-runkle in #9128 - Init private attributes from super-types in
model_post_init
by @Viicos in #9134 - fix
model_construct
withvalidation_alias
by @ornariece in #9144 - Ensure json-schema generator handles
Literal
null
types by @bruno-f-cruz in #9135 - Fixed in v2.7.0: Fix allow extra generic by @dmontagu in #9193
New Contributors
- @hungtsetse made their first contribution in #8546
- @StrawHatDrag0n made their first contribution in #8583
- @anci3ntr0ck made their first contribution in #8642
- @Holi0317 made their first contribution in #8650
- @bluenote10 made their first contribution in #8651
- @ADSteele916 made their first contribution in #8703
- @musicinmybrain made their first contribution in #8731
- @jks15satoshi made their first contribution in #8706
- @13sin made their first contribution in #8734
- @DanielNoord made their first contribution in #8738
- @conradogarciaberrotaran made their first contribution in #8519
- @chris-griffin made their first contribution in #8775
- @LouisGobert made their first contribution in #8793
- @matsjoyce-refeyn made their first contribution in #8751
- @devmonkey22 made their first contribution in #7680
- @adamency made their first contribution in #8847
- @MamfTheKramf made their first contribution in #8851
- @ornariece made their first contribution in #9001
- @alexeyt101 made their first contribution in #9004
- @wannieman98 made their first contribution in #8947
- @solidguy7 made their first contribution in #9062
- @kloczek made their first contribution in #9047
- @jag-k made their first contribution in #9053
- @priya-gitTest made their first contribution in #9088
- @Youssefares made their first contribution in #9023
- @chan-vince made their first contribution in #9105
- @bruno-f-cruz made their first contribution in #9135
- @Lance-Drane made their first contribution in #9166
v2.6.4
What's Changed
Fixes
- Fix usage of
AliasGenerator
withcomputed_field
decorator by @sydney-runkle in #8806 - Fix nested discriminated union schema gen, pt 2 by @sydney-runkle in #8932
- Fix bug with no_strict_optional=True caused by API deferral by @dmontagu in #8826
v2.6.3
What's Changed
Packaging
- Update
pydantic-settings
version in the docs by @hramezani in #8906
Fixes
- Fix discriminated union schema gen bug by @sydney-runkle in #8904
v2.6.2
What's Changed
Packaging
- Upgrade to
pydantic-core
2.16.3 by @sydney-runkle in #8879
Fixes
- 'YYYY-MM-DD' date string coerced to datetime shouldn't infer timezone by @sydney-runkle in pydantic/pydantic-core#1193
dateutil/dateutil (python-dateutil)
v2.9.0
Version 2.9.0 (2024-02-29)
Data updates
- Updated tzdata version to 2024a. (gh pr #1342)
Features
- Made all
dateutil
submodules lazily imported using PEP 562. On Python 3.7+, things likeimport dateutil; dateutil.tz.gettz("America/New_York")
will now work without explicitly importingdateutil.tz
, with the import occurring behind the scenes on first use. The old behavior remains on Python 3.6 and earlier. Fixed by Orson Adams. (gh issue #771, gh pr #1007)
Bugfixes
- Removed a call to
datetime.utcfromtimestamp
, which is deprecated as of Python 3.12. Reported by Hugo van Kemenade (gh pr #1284), fixed by Thomas Grainger (gh pr #1285).
Documentation changes
- Added note into docs and tests where relativedelta would return last day of the month only if the same day on a different month resolves to a date that doesn't exist. Reported by @hawkEye-01 (gh issue #1167). Fixed by @Mifrill (gh pr #1168)
yaml/pyyaml (pyyaml)
v6.0.2
What's Changed
- Support for Cython 3.x and Python 3.13.
Full Changelog: https://github.com/yaml/pyyaml/compare/6.0.1...6.0.2
psf/requests (requests)
v2.32.3
Bugfixes
- Fixed bug breaking the ability to specify custom SSLContexts in sub-classes of HTTPAdapter. (#6716)
- Fixed issue where Requests started failing to run on Python versions compiled
without the
ssl
module. (#6724)
v2.32.2
Deprecations
-
To provide a more stable migration for custom HTTPAdapters impacted by the CVE changes in 2.32.0, we've renamed
_get_connection
to a new public API,get_connection_with_tls_context
. Existing custom HTTPAdapters will need to migrate their code to use this new API.get_connection
is considered deprecated in all versions of Requests>=2.32.0.A minimal (2-line) example has been provided in the linked MR to ease migration, but we strongly urge users to evaluate if their custom adapter is subject to the same issue described in CVE-2024-35195. (#6710)
v2.32.1
Bugfixes
- Add missing test certs to the sdist distributed on PyPI.
v2.32.0
Security
- Fixed an issue where setting
verify=False
on the first request from a Session will cause subsequent requests to the same origin to also ignore cert verification, regardless of the value ofverify
. (https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56)
Improvements
-
verify=True
now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. (#6667) - Requests now supports optional use of character detection
(
chardet
orcharset_normalizer
) when repackaged or vendored. This enablespip
and other projects to minimize their vendoring surface area. TheResponse.text()
andapparent_encoding
APIs will default toutf-8
if neither library is present. (#6702)
Bugfixes
- Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. (#6589)
- Fixed deserialization bug in JSONDecodeError. (#6629)
- Fixed bug where an extra leading
/
(path separator) could lead urllib3 to unnecessarily reparse the request URI. (#6644)
Deprecations
- Requests has officially added support for CPython 3.12 (#6503)
- Requests has officially added support for PyPy 3.9 and 3.10 (#6641)
- Requests has officially dropped support for CPython 3.7 (#6642)
- Requests has officially dropped support for PyPy 3.7 and 3.8 (#6641)
Documentation
- Various typo fixes and doc improvements.
Packaging
- Requests has started adopting some modern packaging practices.
The source files for the projects (formerly
requests
) is now located insrc/requests
in the Requests sdist. (#6506) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system
using
hatchling
. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format.
jamielennox/requests-mock (requests-mock)
v1.12.1
Set python_requires to >3 to prevent installation in python2 deployments.
Full Changelog: https://github.com/jamielennox/requests-mock/compare/1.12.0...1.12.1
v1.12.0
What's Changed
- Update copyright year by @KrishanBhasin in https://github.com/jamielennox/requests-mock/pull/239
- Remove py2 by @jamielennox in https://github.com/jamielennox/requests-mock/pull/248
- Allow
raw
parameter to accept callable like body elements by @jamielennox in https://github.com/jamielennox/requests-mock/pull/249 - Improve type definition of
Mocker.__call__
by @Viicos in https://github.com/jamielennox/requests-mock/pull/244 - Drop PBR Support by @jamielennox in https://github.com/jamielennox/requests-mock/pull/250
- fix(mocker.pyi): fix Mocker class type hints by @pavellos21 in https://github.com/jamielennox/requests-mock/pull/251
- Remove unused
six
dependency by @Viicos in https://github.com/jamielennox/requests-mock/pull/252
New Contributors
- @KrishanBhasin made their first contribution in https://github.com/jamielennox/requests-mock/pull/239
- @Viicos made their first contribution in https://github.com/jamielennox/requests-mock/pull/244
- @pavellos21 made their first contribution in https://github.com/jamielennox/requests-mock/pull/251
Full Changelog: https://github.com/jamielennox/requests-mock/compare/1.11.0...1.12.0
python/typing_extensions (typing-extensions)
v4.13.1
Bugfixes:
- Fix regression in 4.13.0 on Python 3.10.2 causing a
TypeError
when usingConcatenate
. Patch by Daraan. - Fix
TypeError
when usingevaluate_forward_ref
on Python 3.10.1-2 and 3.9.8-10. Patch by Daraan.
v4.13.0
No user-facing changes since 4.13.0rc1.
v4.12.2
- Fix regression in v4.12.0 where specialization of certain
generics with an overridden
__eq__
method would raise errors. Patch by Jelle Zijlstra. - Fix tests so they pass on 3.13.0b2
v4.12.1
- Preliminary changes for compatibility with the draft implementation of PEP 649 in Python 3.14. Patch by Jelle Zijlstra.
- Fix regression in v4.12.0 where nested
Annotated
types would causeTypeError
to be raised if the nestedAnnotated
type had unhashable metadata. Patch by Alex Waygood.
v4.12.0
This release is mostly the same as 4.12.0rc1 but fixes one more longstanding bug.
- Fix incorrect behaviour of
typing_extensions.ParamSpec
on Python 3.8 and 3.9 that meant thatisinstance(typing_extensions.ParamSpec("P"), typing.TypeVar)
would have a different result in some situations depending on whether or not a profiling function had been set usingsys.setprofile
. Patch by Alex Waygood.
v4.11.0
This feature release provides improvements to various recently added features, most importantly type parameter defaults (PEP 696).
There are no changes since 4.11.0rc1.
v4.10.0
This feature release adds support for PEP 728 (TypedDict with extra
items) and PEP 742 (TypeIs
).
There are no changes since 4.10.0rc1.
uis/devops/continuous-delivery/ci-templates (uis/devops/continuous-delivery/ci-templates)
v2.7.0
Added
- terraform-module: Extend the GitLab Terraform Module to ensure the tag being used to version the module exists in the CHANGELOG.
urllib3/urllib3 (urllib3)
v2.3.0
==================
Features
- Added
HTTPResponse.shutdown()
to stop any ongoing or future reads for a specific response. It callsshutdown(SHUT_RD)
on the underlying socket. This feature wassponsored by LaunchDarkly <https://opencollective.com/urllib3/contributions/815307>
. (#​2868 <https://github.com/urllib3/urllib3/issues/2868>
) - Added support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly
requests and streaming, and makes it possible to use in Node.js if you launch it as
node --experimental-wasm-stack-switching
. (#​3400 <https://github.com/urllib3/urllib3/issues/3400>
__) - Added the
proxy_is_tunneling
property toHTTPConnection
andHTTPSConnection
. (#​3285 <https://github.com/urllib3/urllib3/issues/3285>
__) - Added pickling support to
NewConnectionError
andNameResolutionError
. (#​3480 <https://github.com/urllib3/urllib3/issues/3480>
__)
Bugfixes
- Fixed an issue in debug logs where the HTTP version was rendering as "HTTP/11" instead of "HTTP/1.1". (
#​3489 <https://github.com/urllib3/urllib3/issues/3489>
__)
Deprecations and Removals
- Removed support for Python 3.8. (
#​3492 <https://github.com/urllib3/urllib3/issues/3492>
__)
v2.2.3
==================
Features
- Added support for Python 3.13. (
#​3473 <https://github.com/urllib3/urllib3/issues/3473>
__)
Bugfixes
- Fixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.
All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (
#​3053 <https://github.com/urllib3/urllib3/issues/3053>
__) - Fixed ResourceWarning on CONNECT with Python < 3.11.4 by backporting https://github.com/python/cpython/issues/103472. (
#​3252 <https://github.com/urllib3/urllib3/issues/3252>
__) - Adjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (
#​3413 <https://github.com/urllib3/urllib3/issues/3413>
__) - Fixed a crash where certain standard library hash functions were absent in restricted environments. (
#​3432 <https://github.com/urllib3/urllib3/issues/3432>
__) - Fixed mypy error when adding to
HTTPConnection.default_socket_options
. (#​3448 <https://github.com/urllib3/urllib3/issues/3448>
__)
HTTP/2 (experimental)
HTTP/2 support is still in early development.
-
Excluded Transfer-Encoding: chunked from HTTP/2 request body (
#​3425 <https://github.com/urllib3/urllib3/issues/3425>
__) -
Added version checking for
h2
(https://pypi.org/project/h2/) usage.Now only accepting supported h2 major version 4.x.x. (
#​3290 <https://github.com/urllib3/urllib3/issues/3290>
__) -
Added a probing mechanism for determining whether a given target origin supports HTTP/2 via ALPN. (
#​3301 <https://github.com/urllib3/urllib3/issues/3301>
__) -
Add support for sending a request body with HTTP/2 (
#​3302 <https://github.com/urllib3/urllib3/issues/3302>
__)
Deprecations and Removals
- Note for downstream distributors: the
_version.py
file has been removed and is now created at build time by hatch-vcs. (#​3412 <https://github.com/urllib3/urllib3/issues/3412>
__) - Drop support for end-of-life PyPy3.8 and PyPy3.9. (
#​3475 <https://github.com/urllib3/urllib3/issues/3475>
__)
v2.2.2
==================
- Added the
Proxy-Authorization
header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set viaRetry.remove_headers_on_redirect
. - Allowed passing negative integers as
amt
to read methods ofhttp.client.HTTPResponse
as an alternative toNone
. (#​3122 <https://github.com/urllib3/urllib3/issues/3122>
__) - Fixed return types representing copying actions to use
typing.Self
. (#​3363 <https://github.com/urllib3/urllib3/issues/3363>
__)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.