1
0

70 Commits

Author SHA256 Message Date
3228196e9e Accepting request 1287850 from devel:languages:python
To stage with the python-pydantic-core 2.35.1 update in sr#1287849

- Add patch bump-pydantic-core-2.35.1.patch to support latest
  pydantic-core, gh#pydantic/pydantic#11963
- Add patch field-name-validator-core-schemas.patch to remove
  deprecation warning, gh#pydantic/pydantic#11761
- Update to 2.11.7
  * Copy FieldInfo instance if necessary during FieldInfo build by @Viicos in #11980
2.11.6
  * Rebuild dataclass fields before schema generation by @Viicos in #11949
  * Always store the original field assignment on FieldInfo by @Viicos in #11946
2.11.5
  * Check if FieldInfo is complete after applying type variable map by @Viicos in #11855
  * Do not delete mock validator/serializer in model_rebuild() by @Viicos in #11890
  * Do not duplicate metadata on model rebuild by @Viicos in #11902

- Update to 2.11.4
  * Bump mkdocs-llmstxt to v0.2.0
  * Allow config and bases to be specified together in create_model()
  * This change was backported as it was previously possible
    (although not meant to be supported)
  * To provide model_config as a field, which would make it
    possible to provide both configuration and bases.
  * Remove generics cache workaround
  * Remove coercion of decimal constraints
  * Fix crash when expanding root type in the mypy plugin
  * Fix issue with recursive generic models
  * Traverse function-before schemas during schema gathering
- Drop field_name.patch, merged upstream
- Update BuildRequires and Requires from pyproject.toml

OBS-URL: https://build.opensuse.org/request/show/1287850
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=33
2025-06-24 18:46:02 +00:00
5af452c66c - Add patch bump-pydantic-core-2.35.1.patch to support latest
pydantic-core, gh#pydantic/pydantic#11963
- Add patch field-name-validator-core-schemas.patch to remove
  deprecation warning, gh#pydantic/pydantic#11761
- Update to 2.11.7
  * Copy FieldInfo instance if necessary during FieldInfo build by @Viicos in #11980
2.11.6
  * Rebuild dataclass fields before schema generation by @Viicos in #11949
  * Always store the original field assignment on FieldInfo by @Viicos in #11946
2.11.5
  * Check if FieldInfo is complete after applying type variable map by @Viicos in #11855
  * Do not delete mock validator/serializer in model_rebuild() by @Viicos in #11890
  * Do not duplicate metadata on model rebuild by @Viicos in #11902

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=73
2025-06-23 06:57:01 +00:00
7adac6edca Accepting request 1274365 from home:glaubitz:branches:devel:languages:python
- Update to 2.11.4
  * Bump mkdocs-llmstxt to v0.2.0
  * Allow config and bases to be specified together in create_model()
  * This change was backported as it was previously possible
    (although not meant to be supported)
  * To provide model_config as a field, which would make it
    possible to provide both configuration and bases.
  * Remove generics cache workaround
  * Remove coercion of decimal constraints
  * Fix crash when expanding root type in the mypy plugin
  * Fix issue with recursive generic models
  * Traverse function-before schemas during schema gathering
- Drop field_name.patch, merged upstream
- Update BuildRequires and Requires from pyproject.toml

OBS-URL: https://build.opensuse.org/request/show/1274365
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=72
2025-05-05 14:56:49 +00:00
436ce7ee8c Accepting request 1272629 from devel:languages:python
- Add upstream field_name.patch for compatibility with recent pydantic-core
- Add missing Requires on typing-inspection.
- update to 2.11.3:
  * Preserve field description when rebuilding model fields
- update to 2.11.2:
  * Make sure __pydantic_private__ exists before setting private attributes
  * Do not override FieldInfo._complete when using field from parent class
  * Provide the available definitions when applying discriminated unions
  * Do not expand root type in the mypy plugin for variables
  * Mention the attribute name in model fields deprecation message
  * Properly validate parameterized mappings
- update to 2.11.1:
  * Do not override 'definitions-ref' schemas containing serialization schemas or metadata
- update to 2.11.0:
  * Re-enable memray related tests on Python 3.12+
  * Add a check_pydantic_core_version() function
  * Remove greenlet development dependency
  * Support unsubstituted type variables with both a default and a bound or constraints
  * Add a default_factory_takes_validated_data property to FieldInfo
  * Raise a better error when a generic alias is used inside type[]
  * Properly support PEP 695 generics syntax
  * Properly support type variable defaults
  * Add support for validating v6, v7, v8 UUIDs
  * Improve alias configuration APIs
  * Add experimental support for free threading
  * Add encoded_string() method to the URL types
  * Add support for defer_build with @validate_call decorator
  * Allow @with_config decorator to be used with keyword arguments
  * Simplify customization of default value inclusion in JSON Schema generation
  * Add generate_arguments_schema() function
  * Rework create_model field definitions format
  * Raise a deprecation warning when a field is annotated as final with a default value
  * Deprecate accessing model_fields and model_computed_fields on instances
  * Move core schema generation logic for path types inside the GenerateSchema class
  * Move Mapping schema gen to GenerateSchema to complete removal of prepare_annotations_for_known_type workaround
  * Remove Python 3.8 Support
  * Optimize calls to get_type_ref
  * Disable pydantic-core core schema validation
  * Only evaluate FieldInfo annotations if required during schema building
  * Improve __setattr__ performance of Pydantic models by caching setter functions
  * Improve annotation application performance
  * Improve performance of _typing_extra module
  * Refactor and optimize schema cleaning logic
  * Create a single dictionary when creating a CoreConfig instance
  * Reuse cached core schemas for parametrized generic Pydantic models
  * Add validation tests for _internal/_validators.py
  * Subclass all single host url classes from AnyUrl to preserve behavior from v2.9
  * Improve TypeAdapter instance repr
  * Use the correct frame when instantiating a parametrized TypeAdapter
  * Relax check for validated data in default factory utils
  * Fix type checking issue with model_fields and model_computed_fields
  * Use the parent configuration during schema generation for stdlib dataclasses
  * Use the globals of the function when evaluating the return type of serializers and computed_fields
  * Fix url constraint application
  * Fix URL equality with different validation methods
  * Fix JSON schema title when specified as ''
  * Do not evaluate annotations for private fields
  * Support serialization as any for Secret types and Url types
  * Fix type hint of Field.default to be compatible with Python 3.8 and 3.9
  * hashing support for urls
  * Hide BaseModel.__replace__ definition from type checkers
  * Set fields when defer_build is set on Pydantic dataclasses
  * Do not resolve the JSON Schema reference for dict core schema keys
  * Use the globals of the function when evaluating the return type for PlainSerializer and WrapSerializer functions
  * Fix host required enforcement for urls to be compatible with v2.9 behavior
  * Fix url json schema in serialization mode
  * Fix for comparison of AnyUrl objects
  * Properly fetch PEP 695 type params for functions, do not fetch annotations from signature
  * Infer final fields with a default value as class variables in the mypy plugin
  * Recursively unpack Literal values if using PEP 695 type aliases
  * Override __subclasscheck__ on ModelMetaclass to avoid memory leak and performance issues
  * Include JSON Schema input core schema in function schemas
  * Add len to _BaseUrl to avoid TypeError
  * Make sure the type reference is removed from the seen references
  * Add FastAPI and SQLModel to third-party tests
  * Improve discriminated union error message for invalid union variants
  * Unpack PEP 695 type aliases if using the Annotated form
  * Remove custom MRO implementation of Pydantic models
  * Add pandera third-party tests
  * Add ODMantic third-party tests
  * Copy WithJsonSchema schema to avoid sharing mutated data
  * Do not cache parametrized models when in the process of parametrizing another model
  * Add discriminated union related metadata entries to the CoreMetadata definition
  * Consolidate schema definitions logic in the _Definitions class
  * Fix url serialization for unions
  * Support initializing root model fields with values of the root type in the mypy plugin
  * Move deque schema gen to GenerateSchema class

OBS-URL: https://build.opensuse.org/request/show/1272629
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=32
2025-04-25 20:17:56 +00:00
32e7f1b8ff - Add upstream field_name.patch for compatibility with recent pydantic-core
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=70
2025-04-25 09:37:37 +00:00
3f75a1e5fd - Add missing Requires on typing-inspection.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=69
2025-04-24 04:47:31 +00:00
dd01ec6e92 need pytest-run-parallel
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=68
2025-04-23 09:35:07 +00:00
eb3735017a Accepting request 1240305 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1240305
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=31
2025-01-29 15:09:40 +00:00
f4aac336ef - Update to 2.10.6
* Fixes
    - Fix JSON Schema reference collection with 'examples' keys by @Viicos in #11325
    - Fix url python serialization by @sydney-runkle in #11331
- Changes from 2.10.5
  * Fixes
    - Remove custom MRO implementation of Pydantic models by @Viicos in #11184
    - Fix URL serialization for unions by @sydney-runkle in #11233
- Changes from 2.10.4
  * 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
- Changes from 2.10.3
  * 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 and WrapSerializer 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 to FieldInfo by @Viicos in #11034
    - Fix url json schema in serialization mode by @sydney-runkle in #11035
- Changes from 2.10.2
  * 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 and Url 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
- Changes from 2.10.1
  * Packaging
    - Bump pydantic-core version to v2.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 and model_computed_fields by @sydney-runkle in #10911
    - Use the parent configuration during schema generation for stdlib dataclasses by @sydney-runkle in #10928
    - Use the globals of the function when evaluating the return type of serializers and computed_fields 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 for complex inference by @sydney-runkle in pydantic-core#1549
- Changes from 2.10.0
  * Packaging
    - Bump pydantic-core to v2.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 for linux 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 and PydanticCustomError by @Youssefares in pydantic/pydantic-core#1413
    - Add trailing-strings support to experimental_allow_partial by @sydney-runkle in #10825
    - Add rebuild() method for TypeAdapter and simplify defer_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 on TypeAdapters, 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 and b64encode for Base64Bytes 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 (...) with Field 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 Literals and Enums by @Viicos in #10692
    - Simplify unions involving Any or Never 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 with field_serializer by @nix010 in #10390
    - Fix Predicate issue in v2.9.0 by @sydney-runkle in #10321
    - Fixing annotated-types bound by @sydney-runkle in #10327
    - Turn tzdata install requirement into optional timezone 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_fields by @Viicos in #10391
    - Make sure inspect.iscoroutinefunction works on coroutines decorated with @validate_call by @MovisLi in #10374
    - Fix NameError when using validate_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 empty model_config with annotations by @cdwilson in #10412
    - Fix variance issue in _IncEx type alias, only allow True 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 and decimal_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 for BaseModel by @sydney-runkle in #10520
    - Fix warning stacklevel in BaseModel.__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 ignoring Field in Annotated 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 [#1...

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=66
2025-01-25 21:10:38 +00:00
d90714d9d3 Accepting request 1218159 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1218159
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=30
2024-10-25 17:19:09 +00:00
de0fe174bb SUSE AI needs a more recent version
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=64
2024-10-25 05:27:29 +00:00
10800831eb Accepting request 1184776 from devel:languages:python
- update to 2.8.0:
  * Update citation version automatically with new releases
  * Bump pyright to `v1.1.367` and add type checking tests for
    pipeline API
  * Update `pydantic.v1` stub to `v1.10.17`
  * General package updates to prep for `v2.8.0b1`
  * Bump `pydantic-core` to `v2.20.0`
  * Add support for Python 3.13
  * Update `pdm` version used for `pdm.lock` to v2.16.1
  * Update to `ruff` `v0.4.8`
  * Experimental: support `defer_build` for `TypeAdapter`
  * Implement `deprecated` field in json schema
  * Experimental: Add pipeline API
  * Add support for programmatic title generation
  * Implement `fail_fast` feature
  * Add `ser_json_inf_nan='strings'` mode to produce valid JSON
  * Replace `__spec__.parent` with `__package__`
  * Fix Outputted Model JSON Schema for `Sequence` type
  * Fix typing of `_frame_depth`
  * Make `ImportString` json schema compatible
  * Hide private attributes (`PrivateAttr`) from `__init__`
    signature in type checkers
  * Make detection of `TypeVar` defaults robust to the CPython
    `PEP-696` implementation
  * Fix usage of `PlainSerializer` with builtin types
  * Add more robust custom validation examples
  * Fix ignored `strict` specification for
    `StringConstraint(strict=False)`
  * Use `Self` where possible
  * Do not alter `RootModel.model_construct` signature in the

OBS-URL: https://build.opensuse.org/request/show/1184776
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=29
2024-07-02 16:14:50 +00:00
7eef3033c2 Accepting request 1183039 from devel:languages:python
- update to 2.7.4:
  * Bump `pydantic.v1` to `v1.10.16` reference
  * Specify `recursive_guard` as kwarg in `FutureRef._evaluate`

OBS-URL: https://build.opensuse.org/request/show/1183039
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=28
2024-06-25 21:06:41 +00:00
cb7d2bb3bd - update to 2.7.4:
* Bump `pydantic.v1` to `v1.10.16` reference
  * Specify `recursive_guard` as kwarg in `FutureRef._evaluate`

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=55
2024-06-24 15:45:18 +00:00
734ab25439 Accepting request 1179027 from devel:languages:python
- update to 2.7.3:
  * Bump `pydantic-core` to `v2.18.4`
  * Fix u style unicode strings in python @samuelcolvin in
    pydantic/jiter#110
  * Replace `__spec__.parent` with `__package__`
  * Fix validation of `int`s with leading unary minus
  * Fix `str` subclass validation for enums
  * Support `BigInt`s in `Literal`s and `Enum`s
  * Fix: uuid - allow `str` subclass as input

OBS-URL: https://build.opensuse.org/request/show/1179027
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=27
2024-06-07 13:02:31 +00:00
04583b9d88 - update to 2.7.3:
* Bump `pydantic-core` to `v2.18.4`
  * Fix u style unicode strings in python @samuelcolvin in
    pydantic/jiter#110
  * Replace `__spec__.parent` with `__package__`
  * Fix validation of `int`s with leading unary minus
  * Fix `str` subclass validation for enums
  * Support `BigInt`s in `Literal`s and `Enum`s
  * Fix: uuid - allow `str` subclass as input

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=53
2024-06-06 14:15:35 +00:00
a7a968c9ea Accepting request 1177661 from devel:languages:python
- Add patch support-pytest-8.patch:
  * Support changes in pytest 8.x.

OBS-URL: https://build.opensuse.org/request/show/1177661
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=26
2024-06-04 10:50:30 +00:00
88c4e704d0 - Add patch support-pytest-8.patch:
* Support changes in pytest 8.x.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=51
2024-05-30 04:57:46 +00:00
e81026f868 Accepting request 1170440 from devel:languages:python
- update to 2.7.1:
  * Bump `pydantic-core` to `v2.18.2`
  * Ftp and Websocket connection strings support
  * Use field description for RootModel schema description when
    there is `…`
  * Fix `validation_alias` behavior with `model_construct` for
    `AliasChoices` and `AliasPath`
  * Revert `typing.Literal` and import it outside the
    TYPE_CHECKING block
  * Fix `Secret` serialization schema, applicable for unions
  * Fix `strict` application to `function-after` with
    `use_enum_values`
  * Address case where `model_construct` on a class which defines
    `model_post_init` fails with `AttributeError`
  * Fix `model_json_schema` with config types
  * Support multiple zeros as an `int`
  * Fix validation of `int`s with leading unary plus
  * Fix interaction between `extra != 'ignore'` and
    `from_attributes=True`
  * Handle error from `Enum`'s `missing` function as
    `ValidationError`
  * Fix memory leak with `Iterable` validation
  * Adopt `jiter` `v0.2.0`
  * Extract attribute docstrings from `FieldInfo.description`
  * Add a `with_config` decorator to comply with typing spec
  * Allow an optional separator splitting the value and unit of
    the result of `ByteSize.human_readable`
  * Add generic `Secret` base type
  * Make use of `Sphinx` inventories for cross references in docs
  * Add environment variable to disable plugins

OBS-URL: https://build.opensuse.org/request/show/1170440
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=25
2024-04-30 15:25:41 +00:00
84df81fd33 - update to 2.7.1:
* Bump `pydantic-core` to `v2.18.2`
  * Ftp and Websocket connection strings support
  * Use field description for RootModel schema description when
    there is `…`
  * Fix `validation_alias` behavior with `model_construct` for
    `AliasChoices` and `AliasPath`
  * Revert `typing.Literal` and import it outside the
    TYPE_CHECKING block
  * Fix `Secret` serialization schema, applicable for unions
  * Fix `strict` application to `function-after` with
    `use_enum_values`
  * Address case where `model_construct` on a class which defines
    `model_post_init` fails with `AttributeError`
  * Fix `model_json_schema` with config types
  * Support multiple zeros as an `int`
  * Fix validation of `int`s with leading unary plus
  * Fix interaction between `extra != 'ignore'` and
    `from_attributes=True`
  * Handle error from `Enum`'s `missing` function as
    `ValidationError`
  * Fix memory leak with `Iterable` validation
  * Adopt `jiter` `v0.2.0`
  * Extract attribute docstrings from `FieldInfo.description`
  * Add a `with_config` decorator to comply with typing spec
  * Allow an optional separator splitting the value and unit of
    the result of `ByteSize.human_readable`
  * Add generic `Secret` base type
  * Make use of `Sphinx` inventories for cross references in docs
  * Add environment variable to disable plugins

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=49
2024-04-27 07:47:30 +00:00
312eeab7fc Accepting request 1167847 from devel:languages:python
- Update to 2.6.3 (bsc#1222806, CVE-2024-3772):

OBS-URL: https://build.opensuse.org/request/show/1167847
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=24
2024-04-16 18:04:04 +00:00
efaca0f748 - Update to 2.6.3 (bsc#1222806, CVE-2024-3772):
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=47
2024-04-15 15:33:55 +00:00
3d0b3f5b7a Accepting request 1158460 from devel:languages:python
- update to 2.6.4:
  * Fix usage of `AliasGenerator` with `computed_field` decorator
  * Fix nested discriminated union schema gen, pt 2
  * Fix bug with no_strict_optional=True caused by API deferral

  * Fix issue `unittest.mock` deprecation warnings

OBS-URL: https://build.opensuse.org/request/show/1158460
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=23
2024-03-18 15:44:15 +00:00
d7f8adba16 - update to 2.6.4:
* Fix usage of `AliasGenerator` with `computed_field` decorator
  * Fix nested discriminated union schema gen, pt 2
  * Fix bug with no_strict_optional=True caused by API deferral
  * Fix issue `unittest.mock` deprecation warnings

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=45
2024-03-16 11:56:33 +00:00
d0b4d41d73 Accepting request 1155773 from devel:languages:python
- Update to 2.6.3:
  * Fix inheriting `Field` annotations in dataclasses
  * Fix warning for tuple of wrong size in `Union`
  * Fix `computed_field` JSON serializer `exclude_none` behavior
  * Check for `email-validator` version >= 2.0
  * Add `NatsDsn`
  * Add `ConfigDict.ser_json_inf_nan`
  * Support `AliasGenerator` usage
  * Support `yyyy-MM-DD` datetime parsing
  * Added bits conversions to the `ByteSize` class
  * Add `eval_type_backport` to handle union operator
  * Add support for `dataclass` fields `init`
  * Implement pickling for `ValidationError`
  * Add unified tuple validator that can handle "variadic" tuples via PEP-646
  * Drop Python3.7 support
  * Make `@validate_call` return a function instead of a custom descriptor
  * Introducing `classproperty` decorator for `model_computed_fields`
  * Move `getattr` warning in deprecated `BaseConfig`
  * Only hash `model_fields`, not whole `__dict__`
  * Fix overload position of `computed_field`
  * Fix issue `unittest.mock` deprecation warnings 
  * Fix `to_snake` conversion
  * Add support for field `alias` in `dataclass` signature
  * Fix ordering of keys in `__dict__` with `model_construct` call
  * Fix usage of `@deprecated`
  * Add more support for private attributes in `model_construct` call
  * Support `pydantic.Field(repr=False)` in dataclasses
  * Override `dataclass_transform` behavior for `RootModel`
  * Refactor signature generation for simplicity
  * Fix ordering bug of PlainValidator annotation

OBS-URL: https://build.opensuse.org/request/show/1155773
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=22
2024-03-14 16:42:10 +00:00
22684d68f4 - Update to 2.6.3:
* Fix inheriting `Field` annotations in dataclasses
  * Fix warning for tuple of wrong size in `Union`
  * Fix `computed_field` JSON serializer `exclude_none` behavior
  * Check for `email-validator` version >= 2.0
  * Add `NatsDsn`
  * Add `ConfigDict.ser_json_inf_nan`
  * Support `AliasGenerator` usage
  * Support `yyyy-MM-DD` datetime parsing
  * Added bits conversions to the `ByteSize` class
  * Add `eval_type_backport` to handle union operator
  * Add support for `dataclass` fields `init`
  * Implement pickling for `ValidationError`
  * Add unified tuple validator that can handle "variadic" tuples via PEP-646
  * Drop Python3.7 support
  * Make `@validate_call` return a function instead of a custom descriptor
  * Introducing `classproperty` decorator for `model_computed_fields`
  * Move `getattr` warning in deprecated `BaseConfig`
  * Only hash `model_fields`, not whole `__dict__`
  * Fix overload position of `computed_field`
  * Fix issue `unittest.mock` deprecation warnings 
  * Fix `to_snake` conversion
  * Add support for field `alias` in `dataclass` signature
  * Fix ordering of keys in `__dict__` with `model_construct` call
  * Fix usage of `@deprecated`
  * Add more support for private attributes in `model_construct` call
  * Support `pydantic.Field(repr=False)` in dataclasses
  * Override `dataclass_transform` behavior for `RootModel`
  * Refactor signature generation for simplicity
  * Fix ordering bug of PlainValidator annotation

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=43
2024-03-07 03:28:22 +00:00
4546c32b6a Accepting request 1140422 from devel:languages:python
- update to 1.10.14:
  * Update install.md
  * Fixes ci to only deploy docs on release
  * Fix cached_property handling in dataclasses when copied

OBS-URL: https://build.opensuse.org/request/show/1140422
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=21
2024-01-22 19:30:52 +00:00
57e34151e0 - update to 1.10.14:
* Update install.md
  * Fixes ci to only deploy docs on release
  * Fix cached_property handling in dataclasses when copied

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=41
2024-01-22 09:25:00 +00:00
2ce2973d16 Accepting request 1137356 from devel:languages:python
- update to 1.10.13:
  * Fix: Add max length check to `pydantic.validate_email`
  * Docs: Fix pip commands to install v1
  * Fixes the `maxlen` property being dropped on `deque`
    validation. Happened only if the deque item has been typed.
    Changes the `_validate_sequence_like` func, #6581 by
  * Importing create_model in tools.py through relative path
    instead of absolute path - so that it doesn't import V2 code
    when copied over to V2 branch, #6361 by @SharathHuddar
  * Add Pydantic `Json` field support to settings management,
  * Fixed literal validator errors for unhashable values
  * Fixed bug with generics receiving forward refs
  * Update install method of FastAPI for internal tests in CI,
    #6117 by @Kludex
- add Fix-Python-3.12-test-failures.patch: fix test fails with
  Python 3.12

  * Use packaging, not pkg_resources for versions.
- Skip some truculent tests.
  * Security fix: Fix date and datetime parsing so passing either 'infinity'
  * BaseSettings now uses the special env settings to define which
  * Change the precedence of aliases so child model aliases override
  * Add support for required Optional with name: Optional[AnyType] = Field(...)
  * alias precedence logic changed so aliases on a field always take

OBS-URL: https://build.opensuse.org/request/show/1137356
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=20
2024-01-07 20:38:56 +00:00
2d2b00865f - add Fix-Python-3.12-test-failures.patch: fix test fails with
Python 3.12

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=39
2024-01-07 13:54:22 +00:00
f4095052db - update to 1.10.13:
* Fix: Add max length check to `pydantic.validate_email`
  * Docs: Fix pip commands to install v1
  * Fixes the `maxlen` property being dropped on `deque`
    validation. Happened only if the deque item has been typed.
    Changes the `_validate_sequence_like` func, #6581 by
  * Importing create_model in tools.py through relative path
    instead of absolute path - so that it doesn't import V2 code
    when copied over to V2 branch, #6361 by @SharathHuddar
  * Add Pydantic `Json` field support to settings management,
  * Fixed literal validator errors for unhashable values
  * Fixed bug with generics receiving forward refs
  * Update install method of FastAPI for internal tests in CI,
    #6117 by @Kludex
  * Use packaging, not pkg_resources for versions.
- Skip some truculent tests.
  * Security fix: Fix date and datetime parsing so passing either 'infinity'
  * BaseSettings now uses the special env settings to define which
  * Change the precedence of aliases so child model aliases override
  * Add support for required Optional with name: Optional[AnyType] = Field(...)
  * alias precedence logic changed so aliases on a field always take

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=38
2023-11-16 10:00:07 +00:00
dd1507fb60 Accepting request 1096962 from devel:languages:python
- update to 1.10.9:
  * Fix trailing zeros not ignored in Decimal validation
  * Fix mypy plugin for v1.4.0
  * Add future and past date hypothesis strategies
  * Discourage usage of Cython 3 with Pydantic 1.x

OBS-URL: https://build.opensuse.org/request/show/1096962
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=19
2023-07-06 16:28:06 +00:00
6ef8ef7895 - update to 1.10.9:
* Fix trailing zeros not ignored in Decimal validation
  * Fix mypy plugin for v1.4.0
  * Add future and past date hypothesis strategies
  * Discourage usage of Cython 3 with Pydantic 1.x

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=36
2023-07-05 13:08:50 +00:00
d54d0324da Accepting request 1088976 from devel:languages:python
- Update to v1.10.8
  * Fix a bug in `Literal` usage with `typing-extension==4.6.0`, #5826
    by @hramezani
  * This solves the (closed) issue #3849 where aliased fields that use
    discriminated union fail to validate when the data contains the
    non-aliased field name, #5736 by @benwah
  * Update email-validator dependency to >=2.0.0post2, #5627 by
    @adriangb
  * update `AnyClassMethod` for changes in
    [python/typeshed#9771](https://github.com/python/typeshed/issues/9771),
    #5505 by @ITProKyle

OBS-URL: https://build.opensuse.org/request/show/1088976
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=18
2023-05-26 18:14:59 +00:00
30f29da82f - Update to v1.10.8
* Fix a bug in `Literal` usage with `typing-extension==4.6.0`, #5826
    by @hramezani
  * This solves the (closed) issue #3849 where aliased fields that use
    discriminated union fail to validate when the data contains the
    non-aliased field name, #5736 by @benwah
  * Update email-validator dependency to >=2.0.0post2, #5627 by
    @adriangb
  * update `AnyClassMethod` for changes in
    [python/typeshed#9771](https://github.com/python/typeshed/issues/9771),
    #5505 by @ITProKyle

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=34
2023-05-25 07:35:03 +00:00
bbdbcbdacc Accepting request 1074635 from devel:languages:python
- update to 1.10.7:
  * Fix creating schema from model using `ConstrainedStr` with
    `regex` as dict key
  * Address bug in mypy plugin caused by
    explicit_package_bases=True
  * Add implicit defaults in the mypy plugin for Field with no
    default argument
  * Fix schema generated for Enum values used as Literals in
    discriminated unions
  * Fix mypy failures caused by the pydantic mypy plugin when
    users define `from_orm` in their own classes
  * Fix `InitVar` usage with pydantic dataclasses, mypy version
    `1.1.1` and the custom mypy plugin
  * Implement logic to support creating validators from non
    standard callables by using defaults to identify them and
    unwrapping `functools.partial` and `functools.partialmethod`
    when checking the signature
  * Fix mypy plugin for v1.1.1, and fix `dataclass_transform`
    decorator for pydantic dataclasses
  * Raise `ValidationError`, not `ConfigError`, when a
    discriminator value is unhashable
  * Fix broken parametrized bases handling with `GenericModel`s
    with complex sets of models
  * Invalidate mypy cache if plugin config changes
  * Fix `RecursionError` when deep-copying dataclass types
    wrapped by pydantic
  * Fix `X | Y` union syntax breaking `GenericModel`

OBS-URL: https://build.opensuse.org/request/show/1074635
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=17
2023-03-29 21:26:32 +00:00
432b74e3d2 - update to 1.10.7:
* Fix creating schema from model using `ConstrainedStr` with
    `regex` as dict key
  * Address bug in mypy plugin caused by
    explicit_package_bases=True
  * Add implicit defaults in the mypy plugin for Field with no
    default argument
  * Fix schema generated for Enum values used as Literals in
    discriminated unions
  * Fix mypy failures caused by the pydantic mypy plugin when
    users define `from_orm` in their own classes
  * Fix `InitVar` usage with pydantic dataclasses, mypy version
    `1.1.1` and the custom mypy plugin
  * Implement logic to support creating validators from non
    standard callables by using defaults to identify them and
    unwrapping `functools.partial` and `functools.partialmethod`
    when checking the signature
  * Fix mypy plugin for v1.1.1, and fix `dataclass_transform`
    decorator for pydantic dataclasses
  * Raise `ValidationError`, not `ConfigError`, when a
    discriminator value is unhashable
  * Fix broken parametrized bases handling with `GenericModel`s
    with complex sets of models
  * Invalidate mypy cache if plugin config changes
  * Fix `RecursionError` when deep-copying dataclass types
    wrapped by pydantic
  * Fix `X | Y` union syntax breaking `GenericModel`

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=32
2023-03-27 10:02:30 +00:00
5798310c1f Accepting request 1072306 from devel:languages:python
- Disable DeprecationWarning in tests to avoid error with the latest
  setuptools and pkg_resources deprecation

OBS-URL: https://build.opensuse.org/request/show/1072306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=16
2023-03-17 16:01:00 +00:00
3859f30f38 - Disable DeprecationWarning in tests to avoid error with the latest
setuptools and pkg_resources deprecation

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=30
2023-03-16 07:19:57 +00:00
9d61d746f4 Accepting request 1055778 from devel:languages:python
- update to v1.10.4:
  * Change dependency to typing-extensions>=4.2.0, #4885 by @samuelcolvin
  * fix parsing of custom root models, #4883 by @gou177
  * fix: use dataclass proxy for frozen or empty dataclasses, #4878 by
    @PrettyWood
  * Fix schema and schema_json on models where a model instance is a one of
    default values, #4781 by @Bobronium
  * Add Jina AI to sponsors on docs index page, #4767 by @samuelcolvin
  * fix: support assignment on DataclassProxy, #4695 by @PrettyWood
  * Add postgresql+psycopg as allowed scheme for PostgreDsn to make it
    usable with SQLAlchemy 2, #4689 by @morian
  * Allow dict schemas to have both patternProperties and
    additionalProperties, #4641 by @jparise
  * Fixes error passing None for optional lists with unique_items, #4568 by
    @mfulgo
  * Fix GenericModel with Callable param raising a TypeError, #4551 by
    @mfulgo
  * Fix field regex with StrictStr type annotation, #4538 by @sisp
  * Correct dataclass_transform keyword argument name from field_descriptors
    to field_specifiers, #4500 by @samuelcolvin
  * fix: avoid multiple calls of __post_init__ when dataclasses are
    inherited, #4487 by @PrettyWood
  * Reduce the size of binary wheels, #2276 by @samuelcolvin

OBS-URL: https://build.opensuse.org/request/show/1055778
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=15
2023-01-04 16:53:14 +00:00
250101fc0c - update to v1.10.4:
* Change dependency to typing-extensions>=4.2.0, #4885 by @samuelcolvin
  * fix parsing of custom root models, #4883 by @gou177
  * fix: use dataclass proxy for frozen or empty dataclasses, #4878 by
    @PrettyWood
  * Fix schema and schema_json on models where a model instance is a one of
    default values, #4781 by @Bobronium
  * Add Jina AI to sponsors on docs index page, #4767 by @samuelcolvin
  * fix: support assignment on DataclassProxy, #4695 by @PrettyWood
  * Add postgresql+psycopg as allowed scheme for PostgreDsn to make it
    usable with SQLAlchemy 2, #4689 by @morian
  * Allow dict schemas to have both patternProperties and
    additionalProperties, #4641 by @jparise
  * Fixes error passing None for optional lists with unique_items, #4568 by
    @mfulgo
  * Fix GenericModel with Callable param raising a TypeError, #4551 by
    @mfulgo
  * Fix field regex with StrictStr type annotation, #4538 by @sisp
  * Correct dataclass_transform keyword argument name from field_descriptors
    to field_specifiers, #4500 by @samuelcolvin
  * fix: avoid multiple calls of __post_init__ when dataclasses are
    inherited, #4487 by @PrettyWood
  * Reduce the size of binary wheels, #2276 by @samuelcolvin

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=28
2023-01-02 20:23:23 +00:00
5677243c16 Accepting request 1002215 from devel:languages:python
- Update to 1.10.2:
  * Prevent long (length > 4_300) strings/bytes as input to int fields, see
    python/cpython#95778 and CVE-2020-10735
  * fix: dataclass wrapper was not always called
  * Use tomllib on Python 3.11 when parsing mypy configuration
  * Basic fix of GenericModel cache to detect order of arguments in Union models
  * Fix mypy plugin when using bare types like list and dict as default_factory
  * Add __hash__ method to pydancic.color.Color class
  * Refactor the whole pydantic dataclass decorator to really act like its
    standard lib equivalent. It hence keeps __eq__, __hash__, ... and makes
    comparison with its non-validated version possible.
  * Now that Config.extra is supported, dataclass ignores by default extra
    arguments (like BaseModel)
  * Fix PEP487 __set_name__ protocol in BaseModel for PrivateAttrs
  * Allow for custom parsing of environment variables via parse_env_var in
    Config
  * Fix StrictStr does not raise ValidationError when max_length is present
    in Field
  * Make SecretStr and SecretBytes hashable
  * Fix StrictBytes does not raise ValidationError when max_length is present
    in Field
  * Add support for bare type
  * Support Python 3.11, including binaries for 3.11 in PyPI
  * Add support for re.Pattern
  * Fix __post_init_post_parse__ is incorrectly passed keyword arguments when
    no __post_init__ is defined
  * Fix implicitly importing ForwardRef and Callable from pydantic.typing
    instead of typing and also expose MappingIntStrAny
  * remove Any types from the dataclass decorator so it can be used with the
    disallow_any_expr mypy option

OBS-URL: https://build.opensuse.org/request/show/1002215
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=14
2022-09-09 16:28:03 +00:00
4b1c6e6331 - Update to 1.10.2:
* Prevent long (length > 4_300) strings/bytes as input to int fields, see
    python/cpython#95778 and CVE-2020-10735
  * fix: dataclass wrapper was not always called
  * Use tomllib on Python 3.11 when parsing mypy configuration
  * Basic fix of GenericModel cache to detect order of arguments in Union models
  * Fix mypy plugin when using bare types like list and dict as default_factory
  * Add __hash__ method to pydancic.color.Color class
  * Refactor the whole pydantic dataclass decorator to really act like its
    standard lib equivalent. It hence keeps __eq__, __hash__, ... and makes
    comparison with its non-validated version possible.
  * Now that Config.extra is supported, dataclass ignores by default extra
    arguments (like BaseModel)
  * Fix PEP487 __set_name__ protocol in BaseModel for PrivateAttrs
  * Allow for custom parsing of environment variables via parse_env_var in
    Config
  * Fix StrictStr does not raise ValidationError when max_length is present
    in Field
  * Make SecretStr and SecretBytes hashable
  * Fix StrictBytes does not raise ValidationError when max_length is present
    in Field
  * Add support for bare type
  * Support Python 3.11, including binaries for 3.11 in PyPI
  * Add support for re.Pattern
  * Fix __post_init_post_parse__ is incorrectly passed keyword arguments when
    no __post_init__ is defined
  * Fix implicitly importing ForwardRef and Callable from pydantic.typing
    instead of typing and also expose MappingIntStrAny
  * remove Any types from the dataclass decorator so it can be used with the
    disallow_any_expr mypy option

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=26
2022-09-09 00:58:49 +00:00
184bb573ac Accepting request 990100 from devel:languages:python
- Add patch remove-pkg_resources.patch:
  * Use packaging, not pkg_resources for versions.

OBS-URL: https://build.opensuse.org/request/show/990100
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=13
2022-08-08 06:44:54 +00:00
bf67906633 - Add patch remove-pkg_resources.patch:
* Use packaging, not pkg_resources for versions.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=24
2022-07-19 09:21:21 +00:00
61fc7f81fa Accepting request 983628 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/983628
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=12
2022-06-19 19:10:33 +00:00
a8bc96b8c7 Accepting request 983594 from home:stroeder:python
Update to 1.9.1

OBS-URL: https://build.opensuse.org/request/show/983594
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=22
2022-06-18 19:21:32 +00:00
d28ccba1a8 Accepting request 950593 from devel:languages:python
- Skip some truculent tests. 
- Clean up non-required Python 3.6 {Build,}Requires.

OBS-URL: https://build.opensuse.org/request/show/950593
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=11
2022-02-03 22:16:14 +00:00
256cc834ee - Skip some truculent tests.
- Clean up non-required Python 3.6 {Build,}Requires.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=21
2022-02-02 04:14:28 +00:00
e83968e6bd Accepting request 944133 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/944133
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=10
2022-01-06 14:51:16 +00:00
cdd36c50e2 Accepting request 944129 from home:bnavigator:py310_nonring
Update for python310 compatibility.

This is resolvable in Factory/standard, but obviously not in snapshots yet.

OBS-URL: https://build.opensuse.org/request/show/944129
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=20
2022-01-05 23:16:35 +00:00
60877a4359 Accepting request 892677 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/892677
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=9
2021-05-15 21:15:56 +00:00
35d63c53cf Accepting request 892675 from home:mcalabkova:branches:devel:languages:python
- Update to 1.8.2 (bsc#1186019, CVE-2021-29510)
  * Security fix: Fix date and datetime parsing so passing either 'infinity' 
    or float('inf') (or their negative values) does not cause an infinite loop
  * Allow passing json_encoders in class kwargs
  * support arbitrary types with custom __eq__
  * Hypothesis plugin for testing
  * support for NamedTuple and TypedDict
  * Support Annotated hints on model fields
  * frozen parameter on Config to allow models to be hashed
  * Breaking Change, remove old deprecation aliases from v1
  * Breaking Change: always validate only first sublevel items with each_item
  * many more changes, see upstream changelog

OBS-URL: https://build.opensuse.org/request/show/892675
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=18
2021-05-13 11:44:17 +00:00
e4c2cdf56b Accepting request 861664 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/861664
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=8
2021-01-11 16:11:19 +00:00
2980a88758 Accepting request 861663 from home:mcalabkova:branches:devel:languages:python
Staging:I

- Update to 1.7.3
  * python 3.9 support
  * Private model attributes
  * "secrets files" support in BaseSettings
  * convert stdlib dataclasses to pydantic dataclasses and use stdlib dataclasses in models
  * few bugfixes
- Drop validate-config.patch

OBS-URL: https://build.opensuse.org/request/show/861663
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=16
2021-01-08 13:36:08 +00:00
d4aab483f6 Accepting request 853456 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/853456
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=7
2020-12-12 19:28:50 +00:00
eefd1e9b88 Accepting request 853452 from home:bnavigator:branches:devel:languages:python
- Add dataclasses requirement for Python 3.6: Fixes Leap 15.2 build
  and future TW python36 flavor gh#openSUSE/python-rpm-macros#66

OBS-URL: https://build.opensuse.org/request/show/853452
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=14
2020-12-07 02:13:16 +00:00
f7bbcbc24b Accepting request 841235 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/841235
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=6
2020-10-29 08:47:36 +00:00
9829629887 Accepting request 841234 from home:mcalabkova:branches:devel:languages:python:pytest
- Add upstream patch validate-config.patch which fixes build with new pytest

OBS-URL: https://build.opensuse.org/request/show/841234
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=12
2020-10-12 09:00:06 +00:00
1ef0b3ea70 Accepting request 824184 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/824184
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=5
2020-08-04 18:21:50 +00:00
a7cf5b3f7d Accepting request 824025 from home:jayvdb:py-submit
- Update to v1.6.1
  * fix validation and parsing of nested models with default_factory
- from v1.6
  * ...

OBS-URL: https://build.opensuse.org/request/show/824025
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=10
2020-08-03 15:45:24 +00:00
857f71e6d8 Accepting request 813030 from devel:languages:python
- update to 1.5.1
  * Signature generation with `extra: allow` never uses a field name, #1418 by @prettywood
  * Avoid mutating `Field` default value, #1412 by @prettywood

OBS-URL: https://build.opensuse.org/request/show/813030
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=4
2020-06-09 22:53:49 +00:00
4da4f1c674 - update to 1.5.1
* Signature generation with `extra: allow` never uses a field name, #1418 by @prettywood
  * Avoid mutating `Field` default value, #1412 by @prettywood

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=8
2020-06-09 19:24:43 +00:00
b86091a5b2 Accepting request 795465 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/795465
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=3
2020-04-21 11:05:44 +00:00
Tomáš Chvátal
2d2e1aa133 Accepting request 795387 from home:mnhauke
- Update to version 1.5
  * Make includes/excludes arguments for .dict(), ._iter(), ...,
    immutable
  * Always use a field's real name with includes/excludes in
    model._iter(), regardless of by_alias, #1397 by @AlexECX
  * Update constr regex example to include start and end lines,
  * Confirm that shallow model.copy() does make a shallow copy of
    attributes
  * Renaming model_name argument of main.create_model()
    to __model_name to allow using model_name as a field name
  * Replace raising of exception to silent passing for non-Var
    attributes in mypy plugin
  * Remove typing_extensions dependency for python 3.8
  * Make SecretStr and SecretBytes initialization idempotent
  * document making secret types dumpable using the json method
  * fix card number length check in PaymentCardNumber,
    PaymentCardBrand  now inherits from str
  * Have BaseModel inherit from Representation to make mypy happy
    when overriding __str__
  * Allow None as input to all optional list fields
  * Add datetime field to default_factory example
  * Allow subclasses of known types to be encoded with superclass
    encoder
  * Exclude exported fields from all elements of a list/tuple of
    submodels/dicts with '__all__', #1286 by @masalim2
  * Add pydantic.color.Color objects as available input for Color
    fields
  * In examples, type nullable fields as Optional, so that these
    are valid mypy annotations
  * Make pattern_validator() accept pre-compiled Pattern objects.

OBS-URL: https://build.opensuse.org/request/show/795387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=6
2020-04-19 09:15:51 +00:00
f3402b817c Accepting request 786483 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/786483
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=2
2020-03-19 18:53:17 +00:00
Tomáš Chvátal
83bc55a86a Accepting request 786480 from home:mcalabkova:branches:devel:languages:python
- Update to version 1.4
  * rename Schema to Field, make it a function to placate mypy
  * Implement root_validator and rename root errors from __obj__ to __root__
  * Added initvars support to post_init_post_parse
  * complete rewrite of URL parsing logic
  * BaseSettings now uses the special env settings to define which 
    environment variables to read, not aliases
  * add support for assert statements inside validators
  * Change the precedence of aliases so child model aliases override 
    parent aliases, including using alias_generator
  * Add a mypy plugin for type checking BaseModel.__init__ and more
  * Add support for typing.Literal for Python 3.8
  * Add a ByteSize type for converting byte string (1GB) to plain bytes
  * Add support for required Optional with name: Optional[AnyType] = Field(...) 
    and refactor ModelField creation to preserve required parameter value
  * Add __eq__ to SecretStr and SecretBytes to allow "value equals"
  * Add support for nested generic models
  * alias precedence logic changed so aliases on a field always take 
    priority over an alias from alias_generator
  * many more fixes and improvements

OBS-URL: https://build.opensuse.org/request/show/786480
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=4
2020-03-19 13:37:43 +00:00
e79e4f9946 Accepting request 732119 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/732119
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pydantic?expand=0&rev=1
2019-09-23 10:37:58 +00:00
Tomáš Chvátal
afb20ae79e - Format with spec-cleaner
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=2
2019-09-20 09:57:08 +00:00
Tomáš Chvátal
996be1231d Accepting request 732025 from home:mnhauke
Initial package fro python-pydantic

OBS-URL: https://build.opensuse.org/request/show/732025
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydantic?expand=0&rev=1
2019-09-20 09:56:46 +00:00
6 changed files with 1117 additions and 7 deletions

View File

@@ -0,0 +1,424 @@
From 4494c31a4834bdc2301cfa3d94f4bbc62c2774dc Mon Sep 17 00:00:00 2001
From: Viicos <65306057+Viicos@users.noreply.github.com>
Date: Wed, 11 Jun 2025 14:52:26 +0200
Subject: [PATCH] Bump `pydantic-core` to v2.35.1
Make use of `ensure_ascii` option
Update typechecking tests
Remove core schema validation hook
---
docs/api/standard_library_types.md | 2 +-
docs/why.md | 2 +-
pydantic/_internal/_core_utils.py | 8 -
pydantic/_internal/_generate_schema.py | 5 +-
pydantic/functional_serializers.py | 4 +-
pydantic/functional_validators.py | 10 +-
pydantic/main.py | 4 +
pydantic/type_adapter.py | 3 +
pydantic/version.py | 2 +-
pyproject.toml | 4 +-
tests/typechecking/decorators.py | 79 +++++++--
12 files changed, 203 insertions(+), 140 deletions(-)
Index: pydantic-2.11.7/docs/api/standard_library_types.md
===================================================================
--- pydantic-2.11.7.orig/docs/api/standard_library_types.md
+++ pydantic-2.11.7/docs/api/standard_library_types.md
@@ -81,7 +81,7 @@ event = Event(dt='2032-04-23T10:20:30.40
print(event.model_dump())
"""
-{'dt': datetime.datetime(2032, 4, 23, 10, 20, 30, 400000, tzinfo=TzInfo(+02:30))}
+{'dt': datetime.datetime(2032, 4, 23, 10, 20, 30, 400000, tzinfo=TzInfo(9000))}
"""
```
Index: pydantic-2.11.7/docs/why.md
===================================================================
--- pydantic-2.11.7.orig/docs/why.md
+++ pydantic-2.11.7/docs/why.md
@@ -363,7 +363,7 @@ Functional validators and serializers, a
print(Meeting(when='2020-01-01T12:00+01:00'))
- #> when=datetime.datetime(2020, 1, 1, 12, 0, tzinfo=TzInfo(+01:00))
+ #> when=datetime.datetime(2020, 1, 1, 12, 0, tzinfo=TzInfo(3600))
print(Meeting(when='now'))
#> when=datetime.datetime(2032, 1, 2, 3, 4, 5, 6)
print(Meeting(when='2020-01-01T12:00'))
Index: pydantic-2.11.7/pydantic/_internal/_core_utils.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/_internal/_core_utils.py
+++ pydantic-2.11.7/pydantic/_internal/_core_utils.py
@@ -1,12 +1,10 @@
from __future__ import annotations
import inspect
-import os
from collections.abc import Mapping, Sequence
from typing import TYPE_CHECKING, Any, Union
from pydantic_core import CoreSchema, core_schema
-from pydantic_core import validate_core_schema as _validate_core_schema
from typing_extensions import TypeGuard, get_args, get_origin
from typing_inspection import typing_objects
@@ -109,12 +107,6 @@ def get_ref(s: core_schema.CoreSchema) -
return s.get('ref', None)
-def validate_core_schema(schema: CoreSchema) -> CoreSchema:
- if os.getenv('PYDANTIC_VALIDATE_CORE_SCHEMAS'):
- return _validate_core_schema(schema)
- return schema
-
-
def _clean_schema_for_pretty_print(obj: Any, strip_metadata: bool = True) -> Any: # pragma: no cover
"""A utility function to remove irrelevant information from a core schema."""
if isinstance(obj, Mapping):
Index: pydantic-2.11.7/pydantic/_internal/_generate_schema.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/_internal/_generate_schema.py
+++ pydantic-2.11.7/pydantic/_internal/_generate_schema.py
@@ -70,7 +70,6 @@ from ._core_utils import (
get_ref,
get_type_ref,
is_list_like_schema_with_items_schema,
- validate_core_schema,
)
from ._decorators import (
Decorator,
@@ -666,9 +665,7 @@ class GenerateSchema:
return schema
def clean_schema(self, schema: CoreSchema) -> CoreSchema:
- schema = self.defs.finalize_schema(schema)
- schema = validate_core_schema(schema)
- return schema
+ return self.defs.finalize_schema(schema)
def _add_js_function(self, metadata_schema: CoreSchema, js_function: Callable[..., Any]) -> None:
metadata = metadata_schema.get('metadata', {})
Index: pydantic-2.11.7/pydantic/functional_serializers.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/functional_serializers.py
+++ pydantic-2.11.7/pydantic/functional_serializers.py
@@ -300,7 +300,7 @@ def field_serializer(
if TYPE_CHECKING:
# The first argument in the following callables represent the `self` type:
- ModelPlainSerializerWithInfo: TypeAlias = Callable[[Any, SerializationInfo], Any]
+ ModelPlainSerializerWithInfo: TypeAlias = Callable[[Any, SerializationInfo[Any]], Any]
"""A model serializer method with the `info` argument, in `plain` mode."""
ModelPlainSerializerWithoutInfo: TypeAlias = Callable[[Any], Any]
@@ -309,7 +309,7 @@ if TYPE_CHECKING:
ModelPlainSerializer: TypeAlias = 'ModelPlainSerializerWithInfo | ModelPlainSerializerWithoutInfo'
"""A model serializer method in `plain` mode."""
- ModelWrapSerializerWithInfo: TypeAlias = Callable[[Any, SerializerFunctionWrapHandler, SerializationInfo], Any]
+ ModelWrapSerializerWithInfo: TypeAlias = Callable[[Any, SerializerFunctionWrapHandler, SerializationInfo[Any]], Any]
"""A model serializer method with the `info` argument, in `wrap` mode."""
ModelWrapSerializerWithoutInfo: TypeAlias = Callable[[Any, SerializerFunctionWrapHandler], Any]
Index: pydantic-2.11.7/pydantic/functional_validators.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/functional_validators.py
+++ pydantic-2.11.7/pydantic/functional_validators.py
@@ -332,7 +332,7 @@ if TYPE_CHECKING:
def __call__(self, cls: Any, value: Any, /) -> Any: ...
class _V2ValidatorClsMethod(Protocol):
- def __call__(self, cls: Any, value: Any, info: _core_schema.ValidationInfo, /) -> Any: ...
+ def __call__(self, cls: Any, value: Any, info: core_schema.ValidationInfo[Any], /) -> Any: ...
class _OnlyValueWrapValidatorClsMethod(Protocol):
def __call__(self, cls: Any, value: Any, handler: _core_schema.ValidatorFunctionWrapHandler, /) -> Any: ...
@@ -343,7 +343,7 @@ if TYPE_CHECKING:
cls: Any,
value: Any,
handler: _core_schema.ValidatorFunctionWrapHandler,
- info: _core_schema.ValidationInfo,
+ info: core_schema.ValidationInfo[Any],
/,
) -> Any: ...
@@ -559,7 +559,7 @@ class ModelWrapValidator(Protocol[_Model
# thus validators _must_ handle all cases
value: Any,
handler: ModelWrapValidatorHandler[_ModelType],
- info: _core_schema.ValidationInfo,
+ info: core_schema.ValidationInfo[Any],
/,
) -> _ModelType: ...
@@ -604,7 +604,7 @@ class FreeModelBeforeValidator(Protocol)
# or anything else that gets passed to validate_python
# thus validators _must_ handle all cases
value: Any,
- info: _core_schema.ValidationInfo,
+ info: core_schema.ValidationInfo[Any],
/,
) -> Any: ...
@@ -619,7 +619,7 @@ class ModelBeforeValidator(Protocol):
# or anything else that gets passed to validate_python
# thus validators _must_ handle all cases
value: Any,
- info: _core_schema.ValidationInfo,
+ info: core_schema.ValidationInfo[Any],
/,
) -> Any: ...
@@ -629,7 +629,7 @@ ModelAfterValidatorWithoutInfo = Callabl
have info argument.
"""
-ModelAfterValidator = Callable[[_ModelType, _core_schema.ValidationInfo], _ModelType]
+ModelAfterValidator = Callable[[_ModelType, core_schema.ValidationInfo[Any]], _ModelType]
"""A `@model_validator` decorated function signature. This is used when `mode='after'`."""
_AnyModelWrapValidator = Union[ModelWrapValidator[_ModelType], ModelWrapValidatorWithoutInfo[_ModelType]]
Index: pydantic-2.11.7/pydantic/main.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/main.py
+++ pydantic-2.11.7/pydantic/main.py
@@ -480,6 +480,7 @@ class BaseModel(metaclass=_model_constru
self,
*,
indent: int | None = None,
+ ensure_ascii: bool = False,
include: IncEx | None = None,
exclude: IncEx | None = None,
context: Any | None = None,
@@ -499,6 +500,8 @@ class BaseModel(metaclass=_model_constru
Args:
indent: Indentation to use in the JSON output. If None is passed, the output will be compact.
+ ensure_ascii: If `True`, the output is guaranteed to have all incoming non-ASCII characters escaped.
+ If `False` (the default), these characters will be output as-is.
include: Field(s) to include in the JSON output.
exclude: Field(s) to exclude from the JSON output.
context: Additional context to pass to the serializer.
@@ -519,6 +522,7 @@ class BaseModel(metaclass=_model_constru
return self.__pydantic_serializer__.to_json(
self,
indent=indent,
+ ensure_ascii=ensure_ascii,
include=include,
exclude=exclude,
context=context,
Index: pydantic-2.11.7/pydantic/type_adapter.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/type_adapter.py
+++ pydantic-2.11.7/pydantic/type_adapter.py
@@ -591,6 +591,7 @@ class TypeAdapter(Generic[T]):
/,
*,
indent: int | None = None,
+ ensure_ascii: bool = False,
include: IncEx | None = None,
exclude: IncEx | None = None,
by_alias: bool | None = None,
@@ -611,6 +612,8 @@ class TypeAdapter(Generic[T]):
Args:
instance: The instance to be serialized.
indent: Number of spaces for JSON indentation.
+ ensure_ascii: If `True`, the output is guaranteed to have all incoming non-ASCII characters escaped.
+ If `False` (the default), these characters will be output as-is.
include: Fields to include.
exclude: Fields to exclude.
by_alias: Whether to use alias names for field names.
Index: pydantic-2.11.7/pydantic/version.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/version.py
+++ pydantic-2.11.7/pydantic/version.py
@@ -66,7 +66,7 @@ def version_info() -> str:
def check_pydantic_core_version() -> bool:
"""Check that the installed `pydantic-core` dependency is compatible."""
# Keep this in sync with the version constraint in the `pyproject.toml` dependencies:
- return __pydantic_core_version__ == '2.33.2'
+ return __pydantic_core_version__ == '2.35.1'
def parse_mypy_version(version: str) -> tuple[int, int, int]:
Index: pydantic-2.11.7/pyproject.toml
===================================================================
--- pydantic-2.11.7.orig/pyproject.toml
+++ pydantic-2.11.7/pyproject.toml
@@ -43,10 +43,10 @@ classifiers = [
]
requires-python = '>=3.9'
dependencies = [
- 'typing-extensions>=4.12.2',
+ 'typing-extensions>=4.13.0',
'annotated-types>=0.6.0',
# Keep this in sync with the version in the `check_pydantic_core_version()` function:
- 'pydantic-core==2.33.2',
+ 'pydantic-core==2.35.1',
'typing-inspection>=0.4.0',
]
dynamic = ['version', 'readme']
Index: pydantic-2.11.7/tests/typechecking/decorators.py
===================================================================
--- pydantic-2.11.7.orig/tests/typechecking/decorators.py
+++ pydantic-2.11.7/tests/typechecking/decorators.py
@@ -31,13 +31,25 @@ class BeforeModelValidator(BaseModel):
"""TODO This shouldn't be valid. At runtime, `self` is the actual value and `value` is the `ValidationInfo` instance."""
@model_validator(mode='before')
- def valid_method_info(self, value: Any, info: ValidationInfo) -> Any: ...
+ def valid_method_info_default(self, value: Any, info: ValidationInfo) -> Any: ...
+
+ @model_validator(mode='before')
+ def valid_method_info(self, value: Any, info: ValidationInfo[int]) -> Any:
+ assert_type(info.context, int)
@model_validator(mode='before')
@classmethod
def valid_classmethod(cls, value: Any) -> Any: ...
@model_validator(mode='before')
+ @classmethod
+ def valid_classmethod_info_default(cls, value: Any, info: ValidationInfo) -> Any: ...
+
+ @model_validator(mode='before')
+ @classmethod
+ def valid_classmethod_info(cls, value: Any, info: ValidationInfo[int]) -> Any: ...
+
+ @model_validator(mode='before')
@staticmethod
def valid_staticmethod(value: Any) -> Any: ...
@@ -91,7 +103,10 @@ class AfterModelValidator(BaseModel):
def valid_method_no_info(self) -> Self: ...
@model_validator(mode='after')
- def valid_method_info(self, info: ValidationInfo) -> Self: ...
+ def valid_method_info_default(self, info: ValidationInfo) -> Self: ...
+
+ @model_validator(mode='after')
+ def valid_method_info(self, info: ValidationInfo[int]) -> Self: ...
class BeforeFieldValidator(BaseModel):
@@ -114,7 +129,11 @@ class BeforeFieldValidator(BaseModel):
@field_validator('foo', mode='before', json_schema_input_type=int) # `json_schema_input_type` allowed here.
@classmethod
- def valid_with_info(cls, value: Any, info: ValidationInfo) -> Any: ...
+ def valid_with_info_default(cls, value: Any, info: ValidationInfo) -> Any: ...
+
+ @field_validator('foo', mode='before', json_schema_input_type=int) # `json_schema_input_type` allowed here.
+ @classmethod
+ def valid_with_info(cls, value: Any, info: ValidationInfo[int]) -> Any: ...
class AfterFieldValidator(BaseModel):
@@ -122,6 +141,14 @@ class AfterFieldValidator(BaseModel):
@classmethod
def valid_classmethod(cls, value: Any) -> Any: ...
+ @field_validator('foo', mode='after')
+ @classmethod
+ def valid_classmethod_info_default(cls, value: Any, info: ValidationInfo) -> Any: ...
+
+ @field_validator('foo', mode='after')
+ @classmethod
+ def valid_classmethod_info(cls, value: Any, info: ValidationInfo[int]) -> Any: ...
+
@field_validator('foo', mode='after', json_schema_input_type=int) # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]
@classmethod
def invalid_input_type_not_allowed(cls, value: Any) -> Any: ...
@@ -148,7 +175,13 @@ class WrapFieldValidator(BaseModel):
@field_validator('foo', mode='wrap', json_schema_input_type=int) # `json_schema_input_type` allowed here.
@classmethod
- def valid_with_info(cls, value: Any, handler: ValidatorFunctionWrapHandler, info: ValidationInfo) -> Any: ...
+ def valid_with_info_default(
+ cls, value: Any, handler: ValidatorFunctionWrapHandler, info: ValidationInfo
+ ) -> Any: ...
+
+ @field_validator('foo', mode='wrap', json_schema_input_type=int) # `json_schema_input_type` allowed here.
+ @classmethod
+ def valid_with_info(cls, value: Any, handler: ValidatorFunctionWrapHandler, info: ValidationInfo[int]) -> Any: ...
class PlainModelSerializer(BaseModel):
@@ -162,7 +195,10 @@ class PlainModelSerializer(BaseModel):
def valid_plain_serializer_2(self) -> Any: ...
@model_serializer(mode='plain')
- def valid_plain_serializer_info(self, info: SerializationInfo) -> Any: ...
+ def valid_plain_serializer_info_default(self, info: SerializationInfo) -> Any: ...
+
+ @model_serializer(mode='plain')
+ def valid_plain_serializer_info(self, info: SerializationInfo[int]) -> Any: ...
class WrapModelSerializer(BaseModel):
@@ -175,7 +211,12 @@ class WrapModelSerializer(BaseModel):
return value
@model_serializer(mode='wrap')
- def valid_info(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Any:
+ def valid_info_default(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo) -> Any:
+ value = handler(self)
+ return value
+
+ @model_serializer(mode='wrap')
+ def valid_info(self, handler: SerializerFunctionWrapHandler, info: SerializationInfo[int]) -> Any:
value = handler(self)
return value
@@ -205,7 +246,10 @@ class PlainFieldSerializer(BaseModel):
"""
@field_serializer('a', mode='plain')
- def valid_method_info(self, value: Any, info: FieldSerializationInfo) -> Any: ...
+ def valid_method_info_default(self, value: Any, info: FieldSerializationInfo) -> Any: ...
+
+ @field_serializer('a', mode='plain')
+ def valid_method_info(self, value: Any, info: FieldSerializationInfo[int]) -> Any: ...
@field_serializer('a', mode='plain')
@staticmethod
@@ -213,7 +257,11 @@ class PlainFieldSerializer(BaseModel):
@field_serializer('a', mode='plain')
@staticmethod
- def valid_staticmethod_info(value: Any, info: FieldSerializationInfo) -> Any: ...
+ def valid_staticmethod_info_default(value: Any, info: FieldSerializationInfo) -> Any: ...
+
+ @field_serializer('a', mode='plain')
+ @staticmethod
+ def valid_staticmethod_info(value: Any, info: FieldSerializationInfo[int]) -> Any: ...
@field_serializer('a', mode='plain')
@classmethod
@@ -221,7 +269,11 @@ class PlainFieldSerializer(BaseModel):
@field_serializer('a', mode='plain')
@classmethod
- def valid_classmethod_info(cls, value: Any, info: FieldSerializationInfo) -> Any: ...
+ def valid_classmethod_info_default(cls, value: Any, info: FieldSerializationInfo) -> Any: ...
+
+ @field_serializer('a', mode='plain')
+ @classmethod
+ def valid_classmethod_info(cls, value: Any, info: FieldSerializationInfo[int]) -> Any: ...
partial_ = field_serializer('a', mode='plain')(partial(lambda v, x: v, x=1))
@@ -250,4 +302,11 @@ class WrapFieldSerializer(BaseModel):
def valid_no_info(self, value: Any, handler: SerializerFunctionWrapHandler) -> Any: ...
@field_serializer('a', mode='wrap')
- def valid_info(self, value: Any, handler: SerializerFunctionWrapHandler, info: FieldSerializationInfo) -> Any: ...
+ def valid_info_default(
+ self, value: Any, handler: SerializerFunctionWrapHandler, info: FieldSerializationInfo
+ ) -> Any: ...
+
+ @field_serializer('a', mode='wrap')
+ def valid_info(
+ self, value: Any, handler: SerializerFunctionWrapHandler, info: FieldSerializationInfo[int]
+ ) -> Any: ...

View File

@@ -0,0 +1,233 @@
From cd0d37c4c18f24b5624ae86cfe5288cd82edf2c1 Mon Sep 17 00:00:00 2001
From: Douwe Maan <hi@douwe.me>
Date: Wed, 16 Apr 2025 18:01:58 +0000
Subject: [PATCH 1/4] Stop using deprecated field_name argument on validation
function schemas
---
docs/concepts/types.md | 2 +-
pydantic/_internal/_generate_schema.py | 45 ++++++++++----------------
pydantic/functional_validators.py | 5 +--
tests/test_validators.py | 2 +-
4 files changed, 20 insertions(+), 34 deletions(-)
Index: pydantic-2.11.7/docs/concepts/types.md
===================================================================
--- pydantic-2.11.7.orig/docs/concepts/types.md
+++ pydantic-2.11.7/docs/concepts/types.md
@@ -979,7 +979,7 @@ class CustomType:
cls, source_type: Any, handler: GetCoreSchemaHandler
) -> core_schema.CoreSchema:
return core_schema.with_info_after_validator_function(
- cls.validate, handler(int), field_name=handler.field_name
+ cls.validate, handler(int)
)
Index: pydantic-2.11.7/pydantic/_internal/_generate_schema.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/_internal/_generate_schema.py
+++ pydantic-2.11.7/pydantic/_internal/_generate_schema.py
@@ -222,7 +222,6 @@ def filter_field_decorator_info_by_field
def apply_each_item_validators(
schema: core_schema.CoreSchema,
each_item_validators: list[Decorator[ValidatorDecoratorInfo]],
- field_name: str | None,
) -> core_schema.CoreSchema:
# This V1 compatibility shim should eventually be removed
@@ -234,21 +233,20 @@ def apply_each_item_validators(
# note that this won't work for any Annotated types that get wrapped by a function validator
# but that's okay because that didn't exist in V1
if schema['type'] == 'nullable':
- schema['schema'] = apply_each_item_validators(schema['schema'], each_item_validators, field_name)
+ schema['schema'] = apply_each_item_validators(schema['schema'], each_item_validators)
return schema
elif schema['type'] == 'tuple':
if (variadic_item_index := schema.get('variadic_item_index')) is not None:
schema['items_schema'][variadic_item_index] = apply_validators(
schema['items_schema'][variadic_item_index],
each_item_validators,
- field_name,
)
elif is_list_like_schema_with_items_schema(schema):
inner_schema = schema.get('items_schema', core_schema.any_schema())
- schema['items_schema'] = apply_validators(inner_schema, each_item_validators, field_name)
+ schema['items_schema'] = apply_validators(inner_schema, each_item_validators)
elif schema['type'] == 'dict':
inner_schema = schema.get('values_schema', core_schema.any_schema())
- schema['values_schema'] = apply_validators(inner_schema, each_item_validators, field_name)
+ schema['values_schema'] = apply_validators(inner_schema, each_item_validators)
else:
raise TypeError(
f'`@validator(..., each_item=True)` cannot be applied to fields with a schema of {schema["type"]}'
@@ -840,7 +838,7 @@ class GenerateSchema:
extras_keys_schema=extras_keys_schema,
model_name=cls.__name__,
)
- inner_schema = apply_validators(fields_schema, decorators.root_validators.values(), None)
+ inner_schema = apply_validators(fields_schema, decorators.root_validators.values())
inner_schema = apply_model_validators(inner_schema, model_validators, 'inner')
model_schema = core_schema.model_schema(
@@ -1380,9 +1378,9 @@ class GenerateSchema:
field_info.validate_default = True
each_item_validators = [v for v in this_field_validators if v.info.each_item is True]
this_field_validators = [v for v in this_field_validators if v not in each_item_validators]
- schema = apply_each_item_validators(schema, each_item_validators, name)
+ schema = apply_each_item_validators(schema, each_item_validators)
- schema = apply_validators(schema, this_field_validators, name)
+ schema = apply_validators(schema, this_field_validators)
# the default validator needs to go outside of any other validators
# so that it is the topmost validator for the field validator
@@ -1972,7 +1970,7 @@ class GenerateSchema:
collect_init_only=has_post_init,
)
- inner_schema = apply_validators(args_schema, decorators.root_validators.values(), None)
+ inner_schema = apply_validators(args_schema, decorators.root_validators.values())
model_validators = decorators.model_validators.values()
inner_schema = apply_model_validators(inner_schema, model_validators, 'inner')
@@ -2484,24 +2482,16 @@ class GenerateSchema:
_VALIDATOR_F_MATCH: Mapping[
tuple[FieldValidatorModes, Literal['no-info', 'with-info']],
- Callable[[Callable[..., Any], core_schema.CoreSchema, str | None], core_schema.CoreSchema],
+ Callable[[Callable[..., Any], core_schema.CoreSchema], core_schema.CoreSchema],
] = {
- ('before', 'no-info'): lambda f, schema, _: core_schema.no_info_before_validator_function(f, schema),
- ('after', 'no-info'): lambda f, schema, _: core_schema.no_info_after_validator_function(f, schema),
- ('plain', 'no-info'): lambda f, _1, _2: core_schema.no_info_plain_validator_function(f),
- ('wrap', 'no-info'): lambda f, schema, _: core_schema.no_info_wrap_validator_function(f, schema),
- ('before', 'with-info'): lambda f, schema, field_name: core_schema.with_info_before_validator_function(
- f, schema, field_name=field_name
- ),
- ('after', 'with-info'): lambda f, schema, field_name: core_schema.with_info_after_validator_function(
- f, schema, field_name=field_name
- ),
- ('plain', 'with-info'): lambda f, _, field_name: core_schema.with_info_plain_validator_function(
- f, field_name=field_name
- ),
- ('wrap', 'with-info'): lambda f, schema, field_name: core_schema.with_info_wrap_validator_function(
- f, schema, field_name=field_name
- ),
+ ('before', 'no-info'): lambda f, schema: core_schema.no_info_before_validator_function(f, schema),
+ ('after', 'no-info'): lambda f, schema: core_schema.no_info_after_validator_function(f, schema),
+ ('plain', 'no-info'): lambda f, _: core_schema.no_info_plain_validator_function(f),
+ ('wrap', 'no-info'): lambda f, schema: core_schema.no_info_wrap_validator_function(f, schema),
+ ('before', 'with-info'): lambda f, schema: core_schema.with_info_before_validator_function(f, schema),
+ ('after', 'with-info'): lambda f, schema: core_schema.with_info_after_validator_function(f, schema),
+ ('plain', 'with-info'): lambda f, _: core_schema.with_info_plain_validator_function(f),
+ ('wrap', 'with-info'): lambda f, schema: core_schema.with_info_wrap_validator_function(f, schema),
}
@@ -2512,7 +2502,6 @@ def apply_validators(
validators: Iterable[Decorator[RootValidatorDecoratorInfo]]
| Iterable[Decorator[ValidatorDecoratorInfo]]
| Iterable[Decorator[FieldValidatorDecoratorInfo]],
- field_name: str | None,
) -> core_schema.CoreSchema:
"""Apply validators to a schema.
@@ -2528,7 +2517,7 @@ def apply_validators(
info_arg = inspect_validator(validator.func, validator.info.mode)
val_type = 'with-info' if info_arg else 'no-info'
- schema = _VALIDATOR_F_MATCH[(validator.info.mode, val_type)](validator.func, schema, field_name)
+ schema = _VALIDATOR_F_MATCH[(validator.info.mode, val_type)](validator.func, schema)
return schema
Index: pydantic-2.11.7/pydantic/functional_validators.py
===================================================================
--- pydantic-2.11.7.orig/pydantic/functional_validators.py
+++ pydantic-2.11.7/pydantic/functional_validators.py
@@ -75,7 +75,7 @@ class AfterValidator:
info_arg = _inspect_validator(self.func, 'after')
if info_arg:
func = cast(core_schema.WithInfoValidatorFunction, self.func)
- return core_schema.with_info_after_validator_function(func, schema=schema, field_name=handler.field_name)
+ return core_schema.with_info_after_validator_function(func, schema=schema)
else:
func = cast(core_schema.NoInfoValidatorFunction, self.func)
return core_schema.no_info_after_validator_function(func, schema=schema)
@@ -136,7 +136,6 @@ class BeforeValidator:
return core_schema.with_info_before_validator_function(
func,
schema=schema,
- field_name=handler.field_name,
json_schema_input_schema=input_schema,
)
else:
@@ -230,7 +229,6 @@ class PlainValidator:
func = cast(core_schema.WithInfoValidatorFunction, self.func)
return core_schema.with_info_plain_validator_function(
func,
- field_name=handler.field_name,
serialization=serialization, # pyright: ignore[reportArgumentType]
json_schema_input_schema=input_schema,
)
@@ -307,7 +305,6 @@ class WrapValidator:
return core_schema.with_info_wrap_validator_function(
func,
schema=schema,
- field_name=handler.field_name,
json_schema_input_schema=input_schema,
)
else:
Index: pydantic-2.11.7/tests/test_validators.py
===================================================================
--- pydantic-2.11.7.orig/tests/test_validators.py
+++ pydantic-2.11.7/tests/test_validators.py
@@ -21,7 +21,7 @@ from unittest.mock import MagicMock
import pytest
from dirty_equals import HasRepr, IsInstance
from pydantic_core import core_schema
-from typing_extensions import TypedDict
+from typing_extensions import TypeAliasType, TypedDict
from pydantic import (
BaseModel,
@@ -2684,7 +2684,7 @@ def foobar_validate(value: Any, info: co
class Foobar:
@classmethod
def __get_pydantic_core_schema__(cls, source_type: Any, handler: GetCoreSchemaHandler) -> core_schema.CoreSchema:
- return core_schema.with_info_plain_validator_function(foobar_validate, field_name=handler.field_name)
+ return core_schema.with_info_plain_validator_function(foobar_validate)
def test_custom_type_field_name_model():
@@ -2779,6 +2779,29 @@ def test_plain_validator_field_name():
assert m.foobar == {'value': '1', 'field_name': 'foobar', 'data': {'x': 123}}
+def test_validator_field_name_with_reused_type_alias():
+ calls = []
+
+ def validate_my_field(value: str, info: ValidationInfo):
+ calls.append((info.field_name, value))
+ return value
+
+ MyField = TypeAliasType('MyField', Annotated[str, AfterValidator(validate_my_field)])
+
+ class MyModel(BaseModel):
+ field1: MyField
+ field2: MyField
+
+ MyModel.model_validate(
+ {
+ 'field1': 'value1',
+ 'field2': 'value2',
+ }
+ )
+
+ assert calls == [('field1', 'value1'), ('field2', 'value2')]
+
+
def validate_wrap(value: Any, handler: core_schema.ValidatorFunctionWrapHandler, info: core_schema.ValidationInfo):
data = info.data
if isinstance(data, dict):

BIN
pydantic-2.11.7.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:258c07f1b36b4840577fba9ad8ace243f3fb787c9619c003896b86cfeb519c06
size 2788643

View File

@@ -1,3 +1,447 @@
-------------------------------------------------------------------
Mon Jun 23 05:56:23 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add patch bump-pydantic-core-2.35.1.patch to support latest
pydantic-core, gh#pydantic/pydantic#11963
- Add patch field-name-validator-core-schemas.patch to remove
deprecation warning, gh#pydantic/pydantic#11761
- Update to 2.11.7
* Copy FieldInfo instance if necessary during FieldInfo build by @Viicos in #11980
2.11.6
* Rebuild dataclass fields before schema generation by @Viicos in #11949
* Always store the original field assignment on FieldInfo by @Viicos in #11946
2.11.5
* Check if FieldInfo is complete after applying type variable map by @Viicos in #11855
* Do not delete mock validator/serializer in model_rebuild() by @Viicos in #11890
* Do not duplicate metadata on model rebuild by @Viicos in #11902
-------------------------------------------------------------------
Mon May 5 08:19:26 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 2.11.4
* Bump mkdocs-llmstxt to v0.2.0
* Allow config and bases to be specified together in create_model()
* This change was backported as it was previously possible
(although not meant to be supported)
* To provide model_config as a field, which would make it
possible to provide both configuration and bases.
* Remove generics cache workaround
* Remove coercion of decimal constraints
* Fix crash when expanding root type in the mypy plugin
* Fix issue with recursive generic models
* Traverse function-before schemas during schema gathering
- Drop field_name.patch, merged upstream
- Update BuildRequires and Requires from pyproject.toml
-------------------------------------------------------------------
Fri Apr 25 09:30:29 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Add upstream field_name.patch for compatibility with recent pydantic-core
-------------------------------------------------------------------
Thu Apr 24 04:47:19 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- Add missing Requires on typing-inspection.
-------------------------------------------------------------------
Sun Apr 20 10:54:45 UTC 2025 - Richard Rahl <rrahl0@opensuse.org>
- update to 2.11.3:
* Preserve field description when rebuilding model fields
- update to 2.11.2:
* Make sure __pydantic_private__ exists before setting private attributes
* Do not override FieldInfo._complete when using field from parent class
* Provide the available definitions when applying discriminated unions
* Do not expand root type in the mypy plugin for variables
* Mention the attribute name in model fields deprecation message
* Properly validate parameterized mappings
- update to 2.11.1:
* Do not override 'definitions-ref' schemas containing serialization schemas or metadata
- update to 2.11.0:
* Re-enable memray related tests on Python 3.12+
* Add a check_pydantic_core_version() function
* Remove greenlet development dependency
* Support unsubstituted type variables with both a default and a bound or constraints
* Add a default_factory_takes_validated_data property to FieldInfo
* Raise a better error when a generic alias is used inside type[]
* Properly support PEP 695 generics syntax
* Properly support type variable defaults
* Add support for validating v6, v7, v8 UUIDs
* Improve alias configuration APIs
* Add experimental support for free threading
* Add encoded_string() method to the URL types
* Add support for defer_build with @validate_call decorator
* Allow @with_config decorator to be used with keyword arguments
* Simplify customization of default value inclusion in JSON Schema generation
* Add generate_arguments_schema() function
* Rework create_model field definitions format
* Raise a deprecation warning when a field is annotated as final with a default value
* Deprecate accessing model_fields and model_computed_fields on instances
* Move core schema generation logic for path types inside the GenerateSchema class
* Move Mapping schema gen to GenerateSchema to complete removal of prepare_annotations_for_known_type workaround
* Remove Python 3.8 Support
* Optimize calls to get_type_ref
* Disable pydantic-core core schema validation
* Only evaluate FieldInfo annotations if required during schema building
* Improve __setattr__ performance of Pydantic models by caching setter functions
* Improve annotation application performance
* Improve performance of _typing_extra module
* Refactor and optimize schema cleaning logic
* Create a single dictionary when creating a CoreConfig instance
* Reuse cached core schemas for parametrized generic Pydantic models
* Add validation tests for _internal/_validators.py
* Subclass all single host url classes from AnyUrl to preserve behavior from v2.9
* Improve TypeAdapter instance repr
* Use the correct frame when instantiating a parametrized TypeAdapter
* Relax check for validated data in default factory utils
* Fix type checking issue with model_fields and model_computed_fields
* Use the parent configuration during schema generation for stdlib dataclasses
* Use the globals of the function when evaluating the return type of serializers and computed_fields
* Fix url constraint application
* Fix URL equality with different validation methods
* Fix JSON schema title when specified as ''
* Do not evaluate annotations for private fields
* Support serialization as any for Secret types and Url types
* Fix type hint of Field.default to be compatible with Python 3.8 and 3.9
* hashing support for urls
* Hide BaseModel.__replace__ definition from type checkers
* Set fields when defer_build is set on Pydantic dataclasses
* Do not resolve the JSON Schema reference for dict core schema keys
* Use the globals of the function when evaluating the return type for PlainSerializer and WrapSerializer functions
* Fix host required enforcement for urls to be compatible with v2.9 behavior
* Fix url json schema in serialization mode
* Fix for comparison of AnyUrl objects
* Properly fetch PEP 695 type params for functions, do not fetch annotations from signature
* Infer final fields with a default value as class variables in the mypy plugin
* Recursively unpack Literal values if using PEP 695 type aliases
* Override __subclasscheck__ on ModelMetaclass to avoid memory leak and performance issues
* Include JSON Schema input core schema in function schemas
* Add len to _BaseUrl to avoid TypeError
* Make sure the type reference is removed from the seen references
* Add FastAPI and SQLModel to third-party tests
* Improve discriminated union error message for invalid union variants
* Unpack PEP 695 type aliases if using the Annotated form
* Remove custom MRO implementation of Pydantic models
* Add pandera third-party tests
* Add ODMantic third-party tests
* Copy WithJsonSchema schema to avoid sharing mutated data
* Do not cache parametrized models when in the process of parametrizing another model
* Add discriminated union related metadata entries to the CoreMetadata definition
* Consolidate schema definitions logic in the _Definitions class
* Fix url serialization for unions
* Support initializing root model fields with values of the root type in the mypy plugin
* Move deque schema gen to GenerateSchema class
-------------------------------------------------------------------
Fri Jan 24 15:21:26 UTC 2025 - ecsos <ecsos@opensuse.org>
- Update to 2.10.6
* Fixes
- Fix JSON Schema reference collection with 'examples' keys by @Viicos in #11325
- Fix url python serialization by @sydney-runkle in #11331
- Changes from 2.10.5
* Fixes
- Remove custom MRO implementation of Pydantic models by @Viicos in #11184
- Fix URL serialization for unions by @sydney-runkle in #11233
- Changes from 2.10.4
* 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
- Changes from 2.10.3
* 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 and WrapSerializer 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 to FieldInfo by @Viicos in #11034
- Fix url json schema in serialization mode by @sydney-runkle in #11035
- Changes from 2.10.2
* 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 and Url 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
- Changes from 2.10.1
* Packaging
- Bump pydantic-core version to v2.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 and model_computed_fields by @sydney-runkle in #10911
- Use the parent configuration during schema generation for stdlib dataclasses by @sydney-runkle in #10928
- Use the globals of the function when evaluating the return type of serializers and computed_fields 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 for complex inference by @sydney-runkle in pydantic-core#1549
- Changes from 2.10.0
* Packaging
- Bump pydantic-core to v2.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 for linux 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 and PydanticCustomError by @Youssefares in pydantic/pydantic-core#1413
- Add trailing-strings support to experimental_allow_partial by @sydney-runkle in #10825
- Add rebuild() method for TypeAdapter and simplify defer_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 on TypeAdapters, 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 and b64encode for Base64Bytes 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 (...) with Field 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 Literals and Enums by @Viicos in #10692
- Simplify unions involving Any or Never 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 with field_serializer by @nix010 in #10390
- Fix Predicate issue in v2.9.0 by @sydney-runkle in #10321
- Fixing annotated-types bound by @sydney-runkle in #10327
- Turn tzdata install requirement into optional timezone 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_fields by @Viicos in #10391
- Make sure inspect.iscoroutinefunction works on coroutines decorated with @validate_call by @MovisLi in #10374
- Fix NameError when using validate_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 empty model_config with annotations by @cdwilson in #10412
- Fix variance issue in _IncEx type alias, only allow True 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 and decimal_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 for BaseModel by @sydney-runkle in #10520
- Fix warning stacklevel in BaseModel.__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 ignoring Field in Annotated 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 [#1...
-------------------------------------------------------------------
Wed Oct 2 22:06:18 UTC 2024 - Meera Belur <mbelur@suse.com>
- update to 2.9.2.
* history updates
* v bump
* Fix `ZoneInfo` with various invalid types
* Fix variance issue in `_IncEx` type alias, only allow `True`
* Fix serialization schema generation when using `PlainValidator`
* Adding notes on designing callable discriminators
* Do not error when trying to evaluate annotations of private attributes
* bump
* Fix evaluation of stringified annotations during namespace inspection
* Use correct types namespace when building namedtuple core schemas
* Fix `IncEx` type alias definition
* Turn `tzdata` install requirement into optional `timezone` dependency
* Fixing `annotated-types` bound
* Fix `Predicate` issue in `v2.9.0`
* Prep for v2.9 release
* Fix lifecycle docs formatting
* Add schema generation benchmarks for models with custom serializers
* Add link for complex docs
* Respect `schema_generator` config value in `TypeAdapter`
* Ensure `__pydantic_complete__` is set when rebuilding dataclasses
* Try fix for `coverage` with hidden files
* Ensure coverage data artifact is correctly uploaded
* Support signature for wrap validators without `info`
* Reformat + add some benchmarks for annotated validators
* 👥 Update Pydantic People
* Fix typo in `orgs.toml`
* Add benchmarks for schema generation with custom validators
* Bump to `v2.9.0b2`
* Reorganize types ns functions
* Add in Hyperlint Base Style Guide + Spellcheck Configurations
* Bump `pydantic-core` to `v2.23.1` and other minor v bumps
* Use identity instead of equality after validating model in `__init__`
* Update ns stack with already copied ns
* Remove defaults filter for namespace
* Improve concepts documentation related to models
* Add benchmarks for direct model instantiation
* Fix parent namespace issue with model rebuilds
* Raise helpful warning when `self` isn't returned from model validator
* Fix history.md typos
* Minor reorganization of benchmarks
* Add comment reflecting unexpected union cache behavior that affects validation order
* Update release tweet to encourage usage for beta versions
* Add benchmarks for categories: serialization, validation and schema generation
* Fix a crash when cleaning the namespace in `ModelMetaclass`
* Fix warnings assertions to use `pytest.warns
* Prep for v2.9.0b1 release
* Add support for annotated_types.Not
* Add 'wss' for allowed schemes in NatsDsn
* Add missing imports in documentation example
* Bump `v1` version stub to `v1.10.18`
* Use `pppr` for insiders install
* Apply misc. improvements to "Get started" documentation
* Allow validators to customize validation JSON schema
* Update `mkdocs-material` to `9.5.31`
* Update and clean up several aspects of documentation tooling
* Fix key error with custom serializer
* Remove `initial_metadata` from internal metadata construct
* Remove unused environment variables in CI
* Make sure generated JSON Schemas are valid in tests
* Fix invalid JSON Schemas being generated for functions in certain scenarios
* Breaking Change: Fix JSON Schema generation for constrained dates
* Deprecate passing a dict to the `Examples` class
* Remove `typed_dict_cls` data from `CoreMetadata`
* Fix JSON Schema generation of fields with plain validators in serialization mode
* Fix JSON Schema `number` type for literal and enum schemas
* Remove docs about pydantic plugins
* Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links
* Improve runtime errors for string constraints like `pattern` for incompatible types
* Add support for stringified annotations when using `PrivateAttr` with `Annotated`
* Fix core schema simplification when serialization schemas are involved in specific scenarios
* Reorganize `BaseModel` annotations
* Support PDM `v2.18.1`
* Support complex number
* Add initial architeture documentation
* Handle `nullable` schemas with `serialization` schema available during JSON Schema generation
* Blacklist default globals to support exotic user code with `__` prefixed annotations
* Fix `ImportString` special cases
* Add dsn for Snowflake
* Temporary: cap `pdm` version for `mypy` tests
* Temporary: use `pdm` v2.17.3 to unblock CI failures
* Performance boost: skip caching parent namespaces in most cases
* Do not compute JSON Schema default when plain serializers are used with `when_used` set to `'json-unless-none'` and the default value is `None`
* Add warning for double `frozen` config setting on dataclass
* Revert "Experimental feature: opt-in fast build
* Remove default module globals from types namespace
* Docs update and warning frozen defined both
* Fix ip schema serialization logic
* Improve documentation of the `@computed_field` decorator
* Improve `pyright` tests, refactor model decorators signatures
* Update tests for changes to core
* Fix `PydanticDeprecatedSince26.since` argument
* Use `is_annotated` consistently
* Adding tests for TODO union serialization fixes
* Update `griffe_doclinks` plugin and misc. docs improvements
* Remove allOf JSON schema workarounds
* Remove logic to handle unused `__get_pydantic_core_schema__` signature
* Fix `frozen` enforcement for dataclasses
* Experimental feature: opt-in fast build
* Docs update for `types.py`
* Fix evaluation of `__pydantic_extra__` annotation in specific circumstances
* Removing old typing function
* Simplify internal generics logic - remove generator overhead
* Minor speedup / cleanup for internal `FieldInfo` functions
* Bump `pydantic-core` to v2.21.0
* Raise a better user error when failing to evaluate a forward reference
* Add `Config.val_json_bytes`
* Enable more lint rules
* Clarify `model_serializer
* Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema
* Bump CodSpeedHQ/action from 2 to 3
* Bump dawidd6/action-download-artifact from 3 to 6
* Move `import_module` import in `__getattr__`
* Refactor application of deque annotations
* Using cached internal import for `BaseModel`
* 👥 Update Pydantic People
* Initial start at improving import times for modules, using caching primarily
* Add import / isinstance benchmarks
* Move annotation compatibility errors to validation phase
* Support compatibility with `pdm v2.17.0`
* Apply `strict=True` to `__init__` in mypy plugin
* Fix false positives on v1 models in mypy plugin for from_orm check requiring from_attributes=True config
* Fix typing for `IPvAnyAddress` and `IPvAnyInterface`
* ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py`
* ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py`
* Refactor annotation injection for known
* Fix Sequence ignoring discriminator
* chore: fix entry in `.gitignore` to let `make format` work correctly
* Move `decimal.Decimal` validation to `_generate_schema.py`
* Move date schemas to `_generate_schema.py`
* Simplify schema generation for uuid, url, and ip types
* Fix dataclass ignoring default_factory passed in Annotated
* Changed `BaseModel.model_validate_json` raises docstring to mention `ValidationError` instead of `ValueError`
* ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py`
* Move enum schema gen to `_generate_schema.py` for consistency
* Add class name to "has conflict" warnings
* `Counter` is handled as a mapping, not a sequence, fix `SequenceValidator` accordingly
* Fix type annotations for some potentially generic `GenerateSchema.match_type` options
* Simplify IP address schema in `_std_types_schema.py`
* Fix typo in `invalid-annotated-type` error code
* Fix _field_name_for_signature docstring
* ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py`
* Add support for `ZoneInfo`
* Fix a typo on Validators doc page
* Adding new schema building benchmark
* Handle frozen fields on a per-field basis
* Allow usage of `type[Annotated[...]]`
* typing: fix recursive typing of `main.IncEnx`
* Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned
* ⚡️ Speed up `dataclass
* Replace str type annotation with Any in validator factories in documentation on validators
* Fix typing issue with field_validator-decorated methods
* Prevent type error for exotic BaseModel/RootModel inheritance
* ⚡️ Speed up `ModelPrivateAttr.__set_name__
* chore
* ⚡️ Speed up `multiple_of_validator
* Update functional_serializers.py Typo in Docs Example Simple Fix
* Update changelog to reflect breaking changes regarding PEP 570
* Update history, bump version to alpha on `main`
* Fix issue with assertion caused by pluggable schema validator
* Fix #9706 PathLike with subtype
* Adding coverage comment
* docs: Add documentation for Semantic Version and Timezone Name
* Bump `pydantic-core` to `v2.20.1`, `pydantic-extra-types` to `v2.9.0`
* Remove spooky meetings file
* Pedantic typo correction within explanation of Pydantic's root in 'pedantic' in index.md
* Breaking Change: Merge `dict` type `json_schema_extra`
* Fix list constraint json schema application
* Respect use_enum_values on Literal types
* Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369`
* Fix breaking change in `to_snake` from v2.7 -> v2.8
* Fix labeler, again
* Hooky - switch to reviewers, labeler, fix ci bug
-------------------------------------------------------------------
Fri Sep 27 02:01:34 UTC 2024 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- update to 2.8.2.
* Fix issue with assertion caused by pluggable schema validator by @dmontagu in #9838
-------------------------------------------------------------------
Mon Jul 1 16:29:01 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-pydantic
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2019, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -27,16 +27,21 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pydantic%{psuffix}
Version: 2.8.0
Version: 2.11.7
Release: 0
Summary: Data validation and settings management using python type hinting
License: MIT
URL: https://github.com/pydantic/pydantic
Source: https://github.com/pydantic/pydantic/archive/v%{version}.tar.gz#/pydantic-%{version}.tar.gz
# PATCH-FIX-UPSTREAM bump-pydantic-core-2.35.1.patch gh#pydantic/pydantic#11963
Patch0: bump-pydantic-core-2.35.1.patch
# PATCH-FIX-UPSTREAM field-name-validator-core-schemas.patch gh#pydantic/pydantic#11761
Patch1: field-name-validator-core-schemas.patch
BuildRequires: %{python_module hatch-fancy-pypi-readme}
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pydantic-core = 2.35.1}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -45,20 +50,24 @@ BuildRequires: %{python_module Faker}
BuildRequires: %{python_module cloudpickle}
BuildRequires: %{python_module dirty-equals}
BuildRequires: %{python_module email-validator >= 2.0}
BuildRequires: %{python_module jsonschema >= 4.23.0 }
BuildRequires: %{python_module pydantic = %{version}}
BuildRequires: %{python_module pytest-benchmark}
BuildRequires: %{python_module pytest-examples}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest-run-parallel}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module python-dotenv >= 0.10.4}
BuildRequires: %{python_module rich}
BuildRequires: %{python_module typing-inspection}
%endif
Requires: python-annotated-types >= 0.4.0
%if 0%{?python_version_nodots} < 310
Requires: python-eval-type-backport
%endif
Requires: python-pydantic-core = 2.20.0
Requires: python-typing-extensions >= 4.6.1
Requires: python-pydantic-core = 2.35.1
Requires: python-typing-extensions >= 4.12.2
Requires: python-typing-inspection
BuildArch: noarch
%python_subpackages