wyfo / apischema

JSON (de)serialization, GraphQL and JSON schema generation using Python typing.
https://wyfo.github.io/apischema/
MIT License
226 stars 18 forks source link

Bump the benchmark group in /benchmark with 8 updates #633

Closed dependabot[bot] closed 3 months ago

dependabot[bot] commented 4 months ago

Bumps the benchmark group in /benchmark with 8 updates:

Package From To
cattrs 23.1.2 23.2.3
marshmallow 3.20.1 3.21.1
mashumaro 3.10 3.13
matplotlib 3.8.0 3.8.4
pandas 2.1.1 2.2.2
pydantic 2.4.2 2.7.1
typedload 2.26 2.28
pyserde 0.12.3 0.16.1

Updates cattrs from 23.1.2 to 23.2.3

Release notes

Sourced from cattrs's releases.

v23.2.3

  • Fix a regression when unstructuring dictionary values typed as Any. (#453 #462)
  • Fix a regression when unstructuring unspecialized generic classes. (#465 #466)
  • Optimize function source code caching. (#445 #464)
  • Generate unique files only in case of linecache enabled. (#445 #441)

v23.2.2

  • Fix a regression when unstructuring Any | None. (#453)

v23.2.1

23.2.1 (2023-11-18)

  • Fix unnecessary typing_extensions import on Python 3.11. (#446 #447)

For the v23.2.0 release notes, see here.

v23.2.0

23.2.0 (2023-11-17)

Welcome to cattrs 23.2.0! Thanks to all our wonderful contributors, this release happens to have the largest changelog so far.

Here are some of the noteworthy additions, see below for the entire changelog.

More Powerful Unions in preconf

Courtesy of the union passthrough strategy, the following class (and others like it, this is just a complex example) will work out-of-the-box on any preconf converter:

@define
class MyClass:
    my_field: str | Literal[1] | MyOtherClass

The strategy has been preapplied to all preconf converters, but it can be manually applied to any converter.

Default Disambiguation via Literals

When structuring a union of attrs classes, cattrs will default to the default union strategy.

This strategy works by finding required unique fields in the given classes. It has been enhanced with support for matching on fields annotated as Literals.

from typing import Literal
</tr></table> 

... (truncated)

Changelog

Sourced from cattrs's changelog.

23.2.3 (2023-11-30)

  • Fix a regression when unstructuring dictionary values typed as Any. (#453 #462)
  • Fix a regression when unstructuring unspecialized generic classes. (#465 #466)
  • Optimize function source code caching. (#445 #464)
  • Generate unique files only in case of linecache enabled. (#445 #441)

23.2.2 (2023-11-21)

  • Fix a regression when unstructuring Any | None. (#453 #454)

23.2.1 (2023-11-18)

  • Fix unnecessary typing_extensions import on Python 3.11. (#446 #447)

23.2.0 (2023-11-17)

  • Potentially breaking: skip attrs fields marked as init=False by default. This change is potentially breaking for unstructuring. See here for instructions on how to restore the old behavior. (#40 #395)
  • Potentially breaking: {py:func}cattrs.gen.make_dict_structure_fn and {py:func}cattrs.gen.typeddicts.make_dict_structure_fn will use the values for the detailed_validation and forbid_extra_keys parameters from the given converter by default now. If you're using these functions directly, the old behavior can be restored by passing in the desired values directly. (#410 #411)
  • Potentially breaking: The default union structuring strategy will also use fields annotated as typing.Literal to help guide structuring. See here for instructions on how to restore the old behavior. (#391)
  • Python 3.12 is now supported. Python 3.7 is no longer supported; use older releases there. (#424)
  • Implement the union passthrough strategy, enabling much richer union handling for preconfigured converters. Learn more here.
  • Introduce the use_class_methods strategy. Learn more here. (#405)
  • The omit parameter of {py:func}cattrs.override is now of type bool | None (from bool). None is the new default and means to apply default cattrs handling to the attribute, which is to omit the attribute if it's marked as init=False, and keep it otherwise.
  • Converters can now be initialized with custom fallback hook factories for un/structuring. (#331 #441)
  • Add support for date to preconfigured converters. (#420)
  • Add support for datetime.dates to the PyYAML preconfigured converter. (#393)
  • Fix {py:func}format_exception() <cattrs.v.format_exception> parameter working for recursive calls to {py:func}transform_error <cattrs.transform_error>. (#389)
  • attrs aliases are now supported, although aliased fields still map to their attribute name instead of their alias by default when un/structuring. (#322 #391)
  • Fix TypedDicts with periods in their field names.

... (truncated)

Commits


Updates marshmallow from 3.20.1 to 3.21.1

Changelog

Sourced from marshmallow's changelog.

3.21.1 (2024-03-04)


Bug fixes:

  • Fix error message when field is declared as a class and not an instance (:issue:2245). Thanks :user:travnick for reporting.

3.21.0 (2024-02-26)


Bug fixes:

  • Fix validation of URL fields to allow missing user field, per NWG RFC 3986 (:issue:2232). Thanks :user:ddennerline3 for reporting and :user:deckar01 for the PR.

Other changes:

  • Backwards-incompatible: __version__, __parsed_version__, and __version_info__ attributes are deprecated (:issue:2227). Use feature detection or importlib.metadata.version("marshmallow") instead.

3.20.2 (2024-01-09)


Bug fixes:

  • Fix Nested field type hint for lambda Schema types (:pr:2164). Thanks :user:somethingnew2-0 for the PR.

Other changes:

  • Officially support Python 3.12 (:pr:2188). Thanks :user:hugovk for the PR.
Commits


Updates mashumaro from 3.10 to 3.13

Release notes

Sourced from mashumaro's releases.

v3.13

Changes

  • Added support for Python 3.13 (#208, #209)
  • Added support for PEP 695 (#211)
  • Added initial support for PEP 696 with typing-extensions 4.11.0 reference implementation (#216)
  • Added support for MappingProxyType (#218)
  • Added forbid_extra_keys config option to reject extra keys on deserialization (#197, #198)
  • Added an alternative way to assign a field alias with Alias(...) annotation (#214), see updated documentation
  • Improved union encoding performance (#194)
  • Fixed a case when omit_default didn't work for Enum with basic types mixed in (#204)
  • Fixed RecursionError when annotated SerializationStrategy was used as a field serialization strategy (#219)

v3.12

Changes

  • Added support for associating multiple tags with a single variant by returning a list of tags from variant_tagger_fn (#184)
  • Added support for locally defined types (#180, #182, #189)
  • Added support for ForwardRef in JSON Schema generation (#187)
  • Fixed serialization of IntFlag when omit_default is enabled (#188)
  • Improved type annotations for serialization_strategy config option

v3.11

Changes

  • Added "codecs" feature to separate data models from serialization and work with top-level lists, dataclasses without mixins etc. (#108, #69), see updated documentation
  • Added new allow_deserialization_not_by_alias config option to allow deserialization by both alias and field name, see documentation (Fatal1ty/mashumaro#175)
  • Fixed UnserializableDataError for generic serializable types and generic serialization strategies with postponed evaluation of annotations (#177)
  • Fixed regression when ValueError was not thrown if invalid value type was passed to from_* method
  • Added serialize_by_alias dialect option
  • Added namedtuple_as_dict dialect option
Commits
  • bffc024 Bump version
  • 28c1521 Merge branch 'update-github-actions'
  • a1845fa Revert "Try to use Python 3.13 on Windows"
  • e5abdda Try to fix ignore_errors option
  • ac64553 Fix duplicated section
  • e8c92a5 Set ignore_errors to ignore SyntaxError on old Python versions
  • 12612a0 Try to use Python 3.13 on Windows
  • c6c4181 Update actions
  • 1791aab Merge pull request #220 from Fatal1ty/fix-field-annotated-strategy
  • b00f834 Fix RecursionError on annotated serialization strategy for a dataclass field
  • Additional commits viewable in compare view


Updates matplotlib from 3.8.0 to 3.8.4

Release notes

Sourced from matplotlib's releases.

REL: v3.8.4

This is the fourth micro release of the 3.8 series.

Highlights of the 3.8.4 release include:

  • Enable building against numpy 2.0; released wheels are built against numpy 2
  • macosx: Clean up single-shot timers correctly
  • Add a draw during show for macos backend
  • Fix color sequence data for Set2 and Set3
  • gtk: Ensure pending draws are done before GTK draw
  • Update "Created with" url in hand.svg
  • Avoid modifying user input to Axes.bar
  • fix quiver3d incorrect arrow colors

REL: v3.8.3

This is the third micro release of the 3.8 series.

Highlights of the 3.8.3 release include:

  • Improvements to the MacOS backend
    • Fix hanging on plt.pause
    • Fix warnings about "Secure coding is not enabled for restorable state"
  • Fix crash at exit for PGF backend

REL: v3.8.2

This is the second bugfix release of the 3.8 series.

Highlights of this release include:

  • Fix a segfault in the MacOS backend when running on Python 3.12
  • Fix Contour labeling manual positions selecting incorrect contours.
  • Various documentation improvements

REL: v3.8.1

This is the first bugfix release of the 3.8.x series.

This release contains several bug fixes and adjustments:

  • Bump setuptools required version because of setuptools_scm v8
  • Update find_nearest_contour and revert contour deprecations
  • allsegs and allkinds return individual segments
  • Restore default behavior of hexbin mincnt with C provided
  • Try/except import of Axes3D
  • Ensure valid path mangling for ContourLabeler
  • BLD: Remove development dependencies from sdists
  • FIX 2-tuple of colors in to_rgba_array
  • Fix issue with non-string labels and legend
  • Fix issue with locale comma when not using math text

... (truncated)

Commits
  • 8fb842c REL: v3.8.4
  • 149521e Release prep v3.8.4
  • 39e91a4 Merge branch 'v3.8.3-doc' into v3.8.x
  • e5dd407 Github stats for v3.8.4
  • dbb4e04 Merge pull request #28015 from meeseeksmachine/auto-backport-of-pr-27955-on-v...
  • e0a38c6 Merge pull request #27993 from ksunden/np_2_build
  • dea6de9 Backport PR #27955: Add a draw during show for macos backend
  • 0ec1774 Unpin numpy 2 for install, build against numpy rc for isolated builds
  • 8f1698f Merge pull request #28001 from meeseeksmachine/auto-backport-of-pr-28000-on-v...
  • 79ee5af Backport PR #28000: Fix color sequence data for Set2 and Set3
  • Additional commits viewable in compare view


Updates pandas from 2.1.1 to 2.2.2

Release notes

Sourced from pandas's releases.

Pandas 2.2.2

We are pleased to announce the release of pandas 2.2.2. This release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes. Pandas 2.2.2 supports Python 3.9 and higher.

The release will be available on the defaults and conda-forge channels:

conda install pandas

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

Pandas 2.2.1

We are pleased to announce the release of pandas 2.2.1. This release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes. Pandas 2.2.1 supports Python 3.9 and higher.

The release will be available on the defaults and conda-forge channels:

conda install pandas

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

Pandas 2.2.0

We are pleased to announce the release of pandas 2.2.0. This release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes. Pandas 2.2.0 supports Python 3.9 and higher.

The release will be available on the defaults and conda-forge channels:

conda install pandas

Or via PyPI:

... (truncated)

Commits


Updates pydantic from 2.4.2 to 2.7.1

Release notes

Sourced from pydantic's releases.

v2.7.1 (2024-04-23)

What's Changed

Packaging

New Features

Changes

  • Use field description for RootModel schema description when there is by @​LouisGobert in #9214

Fixes

New Contributors

Full Changelog: https://github.com/pydantic/pydantic/compare/v2.7.0...v2.7.1/

v2.7.0 (2024-04-11)

The code released in v2.7.0 is practically identical to that of v2.7.0b1.

What's Changed

Packaging

... (truncated)

Changelog

Sourced from pydantic's changelog.

v2.7.1 (2024-04-23)

GitHub release

What's Changed

Packaging

New Features

Changes

  • Use field description for RootModel schema description when there is by @​LouisGobert in #9214

Fixes

New Contributors

v2.7.0 (2024-04-11)

GitHub release

The code released in v2.7.0 is practically identical to that of v2.7.0b1.

... (truncated)

Commits
  • 2612947 2.7.1 release prep (#9307)
  • 2b8efa2 Move TODO regarding pickling to markdown (#9288)
  • 73d1049 adds test case for unexpected discriminated union behavior (#9236)
  • c33b925 Change CI to use macos-13 for Python 3.8 and 3.9 (#9305)
  • 82e4664 Fix model json schema with config types (#9287)
  • a0f18e3 Fix bullets in Strict Mode docs (#9296)
  • 77b0e1c Address case where model_construct on a class which defines model_post_init f...
  • 6322b24 Fix strict application to function-after with use_enum_values (#9279)
  • bb857bd docs(performance): remove section on literal vs enum performance (#9262)
  • 3c15a8b docs: make TypeAdapter example PEP-8 compliant (#9268)
  • Additional commits viewable in compare view


Updates typedload from 2.26 to 2.28

Release notes

Sourced from typedload's releases.

2.28

  • Add support for uuid.UUID

2.27

  • Add support for re.Patterns
Changelog

Sourced from typedload's changelog.

2.28

  • Add support for uuid.UUID

2.27

  • Add support for re.Patterns
Commits


Updates pyserde from 0.12.3 to 0.16.1

Release notes

Sourced from pyserde's releases.

v0.16.1

What's Changed

Bug fixes

Build

Refactoring

Other changes

New Contributors

Full Changelog: https://github.com/yukinarit/pyserde/compare/v0.16.0...v0.16.1

v0.16.0

What's Changed

New features

CI

Build

Refactoring

Other changes

Full Changelog: https://github.com/yukinarit/pyserde/compare/v0.15.0...v0.16.0

v0.15.0

What's Changed

Bug fixes

Breaking changes

... (truncated)

Commits
  • cbf3639 Merge pull request #522 from yukinarit/update-contributors
  • 9ddf15d Merge pull request #520 from yukinarit/dependabot/pip/coverage-eq-7.5.0
  • e1e9f0e Merge pull request #521 from yukinarit/dependabot/pip/mypy-eq-1.10.0
  • 2c02973 👥 Add @​JWSong as a contributor
  • 8707ce4 Update mypy requirement from ==1.9.0 to ==1.10.0
  • 902e79e Update coverage requirement from ==7.4.4 to ==7.5.0
  • c5a8586 Merge pull request #519 from yukinarit/fix-pathlib
  • 272b1a0 Fix pathlib serialization
  • f0d38e6 Merge pull request #511 from JWSong/chore/add-examples
  • fb93ed7 update docs/en/types.md
  • Additional commits viewable in compare view


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 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 more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
dependabot[bot] commented 3 months ago

Superseded by #638.