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 across 1 directory with 8 updates #638

Open dependabot[bot] opened 3 months ago

dependabot[bot] commented 3 months ago

Bumps the benchmark group with 8 updates in the /benchmark directory:

Package From To
cattrs 23.1.2 23.2.3
marshmallow 3.20.1 3.21.2
mashumaro 3.10 3.13
matplotlib 3.8.0 3.9.0
pandas 2.1.1 2.2.2
pydantic 2.4.2 2.7.2
typedload 2.26 2.31
pyserde 0.12.3 0.17.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.2

Changelog

Sourced from marshmallow's changelog.

3.21.2 (2024-05-01)


Bug fixes:

  • Allow timestamp 0 in fields.DateTime (:issue:2133). Thanks :user:flydzen for reporting.

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
  • 511b8c5 Bump version and update changelog
  • 03f56a4 Merge pull request #2264 from marshmallow-code/allow_timestamp_0
  • 58fbbcd Encapsulate timestamp boolean check in utils
  • 6e72beb DateTime field: reject timestamp True/False
  • 845f573 DateTime field: allow timestamp 0
  • 183c411 Merge pull request #2263 from marshmallow-code/pre-commit-ci-update-config
  • 2d6e5c2 Use format specifiers instead of percent format
  • a2ee924 [pre-commit.ci] pre-commit autoupdate
  • 38dc356 [pre-commit.ci] pre-commit autoupdate
  • ccc8c72 Bump sphinx from 7.3.6 to 7.3.7
  • Additional commits viewable in compare view


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.9.0

Release notes

Sourced from matplotlib's releases.

REL: 3.9.0

Highlights of this release include:

  • Plotting and Annotation improvements
    • Axes.inset_axes is no longer experimental
    • Legend support for Boxplot
    • Percent sign in pie labels auto-escaped with usetex=True
    • hatch parameter for stackplot
    • Add option to plot only one half of violin plot
    • axhline and axhspan on polar axes
    • Subplot titles can now be automatically aligned
    • axisartist can now be used together with standard Formatters
    • Toggle minorticks on Axis
    • StrMethodFormatter now respects axes.unicode_minus
  • Figure, Axes, and Legend Layout
    • Subfigures now have controllable zorders
    • Getters for xmargin, ymargin and zmargin
  • Mathtext improvements
    • mathtext documentation improvements
    • mathtext spacing corrections
  • Widget Improvements
    • Check and Radio Button widgets support clearing
  • 3D plotting improvements
    • Setting 3D axis limits now set the limits exactly
  • Other improvements
    • New BackendRegistry for plotting backends
    • Add widths, heights and angles setter to EllipseCollection
    • image.interpolation_stage rcParam
    • Arrow patch position is now modifiable
    • NonUniformImage now has mouseover support

REL: v3.9.0rc2

This is the second release candidate for the meso release 3.9.0.

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.

... (truncated)

Commits
  • be56634 REL: v3.9.0
  • 846ce8a DOC: Finish documentation for 3.9.0
  • 8604f67 Merge pull request #28206 from meeseeksmachine/auto-backport-of-pr-28205-on-v...
  • 196c8db TST: Followup corrections to #28205
  • d8f3016 Backport PR #28205: TST: Fix tests with older versions of ipython
  • 4db5ac9 Merge pull request #28203 from QuLogic/auto-backport-of-pr-28164-on-v3.9.x
  • ef1a2db Merge pull request #28204 from meeseeksmachine/auto-backport-of-pr-28195-on-v...
  • e4384b8 Merge pull request #28191 from QuLogic/no-dev-theme
  • 3b65546 Backport PR #28195: TST: Prepare for pytest 9
  • 1b526c3 Backport PR #28164: CI: Ensure code coverage is always uploaded
  • 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.2

Release notes

Sourced from pydantic's releases.

v2.7.2 (2024-05-28)

What's Changed

Packaging

Fixes

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

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

... (truncated)

Changelog

Sourced from pydantic's changelog.

v2.7.2 (2024-05-28)

GitHub release

What's Changed

Packaging

Fixes

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

... (truncated)

Commits


Updates typedload from 2.26 to 2.31

Updates pyserde from 0.12.3 to 0.17.1

Release notes

Sourced from pyserde's releases.

v0.17.1

What's Changed

Bug fixes

Build

Documentation

Full Changelog: https://github.com/yukinarit/pyserde/compare/v0.17.0...v0.17.1

v0.17.0

What's Changed

pyserde now experimentally support SQLAlchemy integration. Thanks @​barsa-net for nice work!

@serde
class User(Base):
    __tablename__ = "users"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(Text, nullable=False)
fullname: Mapped[str] = mapped_column(Text, nullable=False)
nickname: Mapped[Optional[str]] = mapped_column(Text)
attributes: Mapped[Optional[dict[str, str]]] = mapped_column(JSON)
projects: Mapped[list[Project]] = relationship(backref=&quot;owner&quot;)

New features

Build

New Contributors

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

v0.16.1

What's Changed

... (truncated)

Commits


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