Sync from SUSE:ALP:Source:Standard:1.0 python-pydantic revision f3db0e0cbb16309fcdce36809087ab14
This commit is contained in:
commit
2972094ffd
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
120
CVE-2024-3772.patch
Normal file
120
CVE-2024-3772.patch
Normal file
@ -0,0 +1,120 @@
|
||||
Index: pydantic-1.10.7/pydantic/networks.py
|
||||
===================================================================
|
||||
--- pydantic-1.10.7.orig/pydantic/networks.py
|
||||
+++ pydantic-1.10.7/pydantic/networks.py
|
||||
@@ -701,7 +701,19 @@ class IPvAnyNetwork(_BaseNetwork): # ty
|
||||
raise errors.IPvAnyNetworkError()
|
||||
|
||||
|
||||
-pretty_email_regex = re.compile(r'([\w ]*?) *<(.*)> *')
|
||||
+def _build_pretty_email_regex() -> re.Pattern[str]:
|
||||
+ name_chars = r'[\w!#$%&\'*+\-/=?^_`{|}~]'
|
||||
+ unquoted_name_group = rf'((?:{name_chars}+\s+)*{name_chars}+)'
|
||||
+ quoted_name_group = r'"((?:[^"]|\")+)"'
|
||||
+ email_group = r'<(.+)>'
|
||||
+ return re.compile(rf'\s*(?:{unquoted_name_group}|{quoted_name_group})?\s*{email_group}\s*')
|
||||
+
|
||||
+pretty_email_regex = _build_pretty_email_regex()
|
||||
+
|
||||
+MAX_EMAIL_LENGTH = 2048
|
||||
+"""Maximum length for an email.
|
||||
+A somewhat arbitrary but very generous number compared to what is allowed by most implementations.
|
||||
+"""
|
||||
|
||||
|
||||
def validate_email(value: Union[str]) -> Tuple[str, str]:
|
||||
@@ -718,10 +730,14 @@ def validate_email(value: Union[str]) ->
|
||||
if email_validator is None:
|
||||
import_email_validator()
|
||||
|
||||
+ if len(value) > MAX_EMAIL_LENGTH:
|
||||
+ raise errors.EmailError()
|
||||
+
|
||||
m = pretty_email_regex.fullmatch(value)
|
||||
- name: Optional[str] = None
|
||||
+ name: str | None = None
|
||||
if m:
|
||||
- name, value = m.groups()
|
||||
+ unquoted_name, quoted_name, value = m.groups()
|
||||
+ name = unquoted_name or quoted_name
|
||||
|
||||
email = value.strip()
|
||||
|
||||
Index: pydantic-1.10.7/tests/test_networks.py
|
||||
===================================================================
|
||||
--- pydantic-1.10.7.orig/tests/test_networks.py
|
||||
+++ pydantic-1.10.7/tests/test_networks.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+from typing import Union
|
||||
+
|
||||
import pytest
|
||||
|
||||
from pydantic import (
|
||||
@@ -15,6 +17,7 @@ from pydantic import (
|
||||
PostgresDsn,
|
||||
RedisDsn,
|
||||
ValidationError,
|
||||
+ EmailError,
|
||||
stricturl,
|
||||
)
|
||||
from pydantic.networks import validate_email
|
||||
@@ -768,31 +771,37 @@ def test_address_valid(value, name, emai
|
||||
|
||||
@pytest.mark.skipif(not email_validator, reason='email_validator not installed')
|
||||
@pytest.mark.parametrize(
|
||||
- 'value',
|
||||
+ 'value,reason',
|
||||
[
|
||||
- 'f oo.bar@example.com ',
|
||||
- 'foo.bar@exam\nple.com ',
|
||||
- 'foobar',
|
||||
- 'foobar <foobar@example.com',
|
||||
- '@example.com',
|
||||
- 'foobar@.example.com',
|
||||
- 'foobar@.com',
|
||||
- 'foo bar@example.com',
|
||||
- 'foo@bar@example.com',
|
||||
- '\n@example.com',
|
||||
- '\r@example.com',
|
||||
- '\f@example.com',
|
||||
- ' @example.com',
|
||||
- '\u0020@example.com',
|
||||
- '\u001f@example.com',
|
||||
- '"@example.com',
|
||||
- '\"@example.com',
|
||||
- ',@example.com',
|
||||
- 'foobar <foobar<@example.com>',
|
||||
+ ('@example.com', 'There must be something before the @-sign.'),
|
||||
+ ('f oo.bar@example.com', 'The email address contains invalid characters before the @-sign'),
|
||||
+ ('foobar', 'An email address must have an @-sign.'),
|
||||
+ ('foobar@localhost', 'The part after the @-sign is not valid. It should have a period.'),
|
||||
+ ('foobar@127.0.0.1', 'The part after the @-sign is not valid. It is not within a valid top-level domain.'),
|
||||
+ ('foo.bar@exam\nple.com ', None),
|
||||
+ ('foobar <foobar@example.com', None),
|
||||
+ ('foobar@.example.com', None),
|
||||
+ ('foobar@.com', None),
|
||||
+ ('foo bar@example.com', None),
|
||||
+ ('foo@bar@example.com', None),
|
||||
+ ('\n@example.com', None),
|
||||
+ ('\r@example.com', None),
|
||||
+ ('\f@example.com', None),
|
||||
+ (' @example.com', None),
|
||||
+ ('\u0020@example.com', None),
|
||||
+ ('\u001f@example.com', None),
|
||||
+ ('"@example.com', None),
|
||||
+ (',@example.com', None),
|
||||
+ ('foobar <foobar<@example.com>', None),
|
||||
+ ('foobar <foobar@example.com>>', None),
|
||||
+ ('foobar <<foobar<@example.com>', None),
|
||||
+ ('foobar <>', None),
|
||||
+ ('first.last <first.last@example.com>', None),
|
||||
+ pytest.param('foobar <' + 'a' * 4096 + '@example.com>', 'Length must not exceed 2048 characters', id='long'),
|
||||
],
|
||||
)
|
||||
-def test_address_invalid(value):
|
||||
- with pytest.raises(ValueError):
|
||||
+def test_address_invalid(value: str, reason: Union[str, None]):
|
||||
+ with pytest.raises(EmailError):
|
||||
validate_email(value)
|
||||
|
||||
|
12
ignore-urllib3-pyopenssl-warning.patch
Normal file
12
ignore-urllib3-pyopenssl-warning.patch
Normal file
@ -0,0 +1,12 @@
|
||||
Index: pydantic-1.10.2/setup.cfg
|
||||
===================================================================
|
||||
--- pydantic-1.10.2.orig/setup.cfg
|
||||
+++ pydantic-1.10.2/setup.cfg
|
||||
@@ -11,6 +11,7 @@ filterwarnings =
|
||||
# for Python 3.11
|
||||
ignore:path is deprecated.*:DeprecationWarning:certifi
|
||||
ignore:module 'sre_constants' is deprecated:DeprecationWarning:pkg_resources
|
||||
+ ignore:.*urllib3.contrib.pyopenssl.*:DeprecationWarning
|
||||
|
||||
[flake8]
|
||||
max-line-length = 120
|
BIN
pydantic-1.10.7.tar.gz
(Stored with Git LFS)
Normal file
BIN
pydantic-1.10.7.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
394
python-pydantic.changes
Normal file
394
python-pydantic.changes
Normal file
@ -0,0 +1,394 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 24 08:25:07 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add CVE-2024-3772.patch to fix regular expression DDOS
|
||||
(bsc#1222806, CVE-2024-3772)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 27 10:00:20 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- 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`
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 16 07:18:03 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Disable DeprecationWarning in tests to avoid error with the latest
|
||||
setuptools and pkg_resources deprecation
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 2 20:22:05 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 9 00:47:25 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- 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
|
||||
* fix "extra fields not permitted" error when dataclass with Extra.forbid
|
||||
is validated multiple times
|
||||
* Discriminated union models now use oneOf instead of anyOf when generating
|
||||
OpenAPI schema definitions
|
||||
* Allow type checkers to infer inner type of Json type. Json[list[str]] will
|
||||
be now inferred as list[str]
|
||||
* Allow empty string aliases by using a alias is not None check, rather
|
||||
than bool(alias)
|
||||
* Use parent model's Config when validating nested NamedTuple fields
|
||||
* Update BaseModel.construct to work with aliased Fields
|
||||
* Catch certain raised errors in smart_deepcopy and revert to deepcopy if so
|
||||
* Add Config.anystr_upper and to_upper kwarg to constr and conbytes
|
||||
* Fix JSON schema for set and frozenset when they include default values
|
||||
* Teach the mypy plugin that methods decorated by @validator are classmethods
|
||||
* Improve mypy plugin's ability to detect required fields
|
||||
* Support fields of type Type[] in schema
|
||||
* Adds reserved word check to signature generation logic
|
||||
* Fix Json strategy failure for the complex nested field
|
||||
* Add JSON-compatible float constraint allow_inf_nan
|
||||
* Remove undefined behaviour when env_prefix had characters in common with
|
||||
env_nested_delimiter
|
||||
* Support generics model with create_model
|
||||
* allow submodels to overwrite extra field info
|
||||
* support overwriting dunder attributes of BaseModel instances
|
||||
* Support kw_only in dataclasses
|
||||
* Add comparison method for Color class
|
||||
* created new function to_lower_camel() for "non pascal case" camel case
|
||||
* Add checks to default and default_factory arguments in Mypy plugin
|
||||
* Fix parsing of very small numeric timedelta values
|
||||
* Update SecretsSettingsSource to respect config.case_sensitive
|
||||
* Add support for multiple dotenv files
|
||||
* Raise an explicit ConfigError when multiple fields are incorrectly set
|
||||
for a single validator
|
||||
* Allow ellipsis on Fields inside Annotated for TypedDicts required
|
||||
* Catch overflow errors in int_validator
|
||||
* validate_arguments decorator now supports alias
|
||||
* Add ability to use Final in a field type annotation
|
||||
* Update requirement to typing_extensions>=4.1.0 to guarantee
|
||||
dataclass_transform is available
|
||||
- Remove patch remove-pkg_resources.patch:
|
||||
* Included upstream.
|
||||
- Add patch ignore-urllib3-pyopenssl-warning.patch:
|
||||
* Ignore DeprecationWarning until requests-toolbelt is fixed.
|
||||
- Update {Build,}Requires to email-validator package.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 19 09:20:43 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Add patch remove-pkg_resources.patch:
|
||||
* Use packaging, not pkg_resources for versions.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 18 13:37:28 UTC 2022 - Michael Ströder <michael@stroeder.com>
|
||||
|
||||
- Update to 1.9.1
|
||||
* Limit the size of generics._generic_types_cache and generics._assigned_parameters
|
||||
to avoid unlimited increase in memory usage, #4083 by @samuelcolvin
|
||||
* Add Jupyverse and FPS as Jupyter projects using pydantic, #4082 by @davidbrochart
|
||||
* Speedup __isinstancecheck__ on pydantic models when the type is not a model,
|
||||
may also avoid memory "leaks", #4081 by @samuelcolvin
|
||||
* Fix in-place modification of FieldInfo that caused problems with
|
||||
PEP 593 type aliases, #4067 by @adriangb
|
||||
* Add support for autocomplete in VS Code via __dataclass_transform__
|
||||
when using pydantic.dataclasses.dataclass, #4006 by @giuliano-oliveira
|
||||
* Remove benchmarks from codebase and docs, #3973 by @samuelcolvin
|
||||
* Typing checking with pyright in CI, improve docs on vscode/pylance/pyright, #3972 by @samuelcolvin
|
||||
* Fix nested Python dataclass schema regression, #3819 by @himbeles
|
||||
* Update documentation about lazy evaluation of sources for Settings, #3806 by @garyd203
|
||||
* Prevent subclasses of bytes being converted to bytes, #3706 by @samuelcolvin
|
||||
* Fixed "error checking inheritance of" when using PEP585 and PEP604 type hints, #3681 by @aleksul
|
||||
* Allow self referencing ClassVars in models, #3679 by @samuelcolvin
|
||||
* Fix issue with self-referencing dataclass, #3675 by @uriyyo
|
||||
* Include non-standard port numbers in rendered URLs, #3652 by @dolfinus
|
||||
* Config.copy_on_model_validation does a deep copy and not a shallow one, #3641 by @PrettyWood
|
||||
* fix: clarify that discriminated unions do not support singletons, #3636 by @tommilligan
|
||||
* Add read_text(encoding='utf-8') for setup.py, #3625 by @hswong3i
|
||||
* Fix JSON Schema generation for Discriminated Unions within lists, #3608 by @samuelcolvin
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 2 04:12:37 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Skip some truculent tests.
|
||||
- Clean up non-required Python 3.6 {Build,}Requires.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 5 16:08:23 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to 1.9.0
|
||||
* add python 3.10 support, #2885 by @PrettyWood
|
||||
* Discriminated unions, #619 by @PrettyWood
|
||||
* Config.smart_union for better union logic, #2092 by @PrettyWood
|
||||
* Binaries for Macos M1 CPUs, #3498 by @samuelcolvin
|
||||
* Complex types can be set via nested environment variables, e.g.
|
||||
foo___bar, #3159 by @Air-Mark
|
||||
* add a dark mode to pydantic documentation, #2913 by @gbdlin
|
||||
* Add support for autocomplete in VS Code via
|
||||
__dataclass_transform__, #2721 by @tiangolo
|
||||
* Add "exclude" as a field parameter so that it can be configured
|
||||
using model config, #660 by @daviskirk
|
||||
- Full changelog in HISTORY.md
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 13 11:07:30 UTC 2021 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 8 13:10:40 UTC 2021 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 7 01:00:22 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||
|
||||
- Add dataclasses requirement for Python 3.6: Fixes Leap 15.2 build
|
||||
and future TW python36 flavor gh#openSUSE/python-rpm-macros#66
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 12 08:58:44 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
|
||||
|
||||
- Add upstream patch validate-config.patch which fixes build with new pytest
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 2 15:14:47 UTC 2020 - John Vandenberg <jayvdb@gmail.com>
|
||||
|
||||
- Add optional test dependencies
|
||||
- Recommend optional runtime dependency python-typing_extensions
|
||||
- Remove unused runtime dependency ujson
|
||||
- Update to v1.6.1
|
||||
* fix validation and parsing of nested models with default_factory
|
||||
- from v1.6
|
||||
* Modify validators for conlist and conset to not have always=True
|
||||
* Add port check to AnyUrl (can't exceed 65536) ports are 16 insigned
|
||||
bits: 0 <= port <= 2**16-1 src: rfc793 header format
|
||||
* Document default regex anchoring semantics
|
||||
* Use chain.from_iterable in class_validators.py. This is a faster
|
||||
and more idiomatic way of using itertools.chain. Instead of computing
|
||||
all the items in the iterable and storing them in memory, they are
|
||||
computed one-by-one and never stored as a huge list.
|
||||
This can save on both runtime and memory space
|
||||
* Add conset(), analogous to conlist()
|
||||
* make pydantic errors (un)pickable
|
||||
* Allow custom encoding for dotenv files
|
||||
* Ensure SchemaExtraCallable is always defined to get type hints on BaseConfig
|
||||
* Update datetime parser to support negative timestamps
|
||||
* Update mypy, remove AnyType alias for Type[Any]
|
||||
* Adjust handling of root validators so that errors are aggregated
|
||||
from all failing root validators, instead of reporting on only
|
||||
the first root validator to fail
|
||||
* Make __modify_schema__ on Enums apply to the enum schema rather
|
||||
than fields that use the enum
|
||||
* Fix behavior of __all__ key when used in conjunction with index
|
||||
keys in advanced include/exclude of fields that are sequences
|
||||
* Subclass validators do not run when referencing a List field
|
||||
defined in a parent class when each_item=True
|
||||
* change schema.field_class_to_schema to support frozenset in schema
|
||||
* Call __modify_schema__ only for the field schema
|
||||
* Move the assignment of field.validate_always in fields.py so the
|
||||
always parameter of validators work on inheritance
|
||||
* Added support for UUID instantiation through 16 byte strings such
|
||||
as b'\x12\x34\x56\x78' * 4.
|
||||
This was done to support BINARY(16) columns in sqlalchemy
|
||||
* Add a test assertion that default_factory can return a singleton
|
||||
* Add NameEmail.__eq__ so duplicate NameEmail instances are
|
||||
evaluated as equal
|
||||
* Add datamodel-code-generator link in pydantic document site
|
||||
* Added a "Discussion of Pydantic" section to the documentation,
|
||||
with a link to "Pydantic Introduction" video
|
||||
* Avoid some side effects of default_factory by calling it only
|
||||
once if possible and by not setting a default value in the schema
|
||||
* Added docs about dumping dataclasses to JSON
|
||||
* Make BaseModel.__signature__ class-only, so getting __signature__
|
||||
from model instance will raise AttributeError
|
||||
* include 'format': 'password' in the schema for secret types
|
||||
* Modify schema constraints on ConstrainedFloat so that
|
||||
exclusiveMinimum and minimum are not included in the schema if
|
||||
they are equal to -math.inf and exclusiveMaximum and maximum are
|
||||
not included if they are equal to math.inf
|
||||
* Squash internal __root__ dicts in .dict() (and, by extension, in .json())
|
||||
* Move const validator to post-validators so it validates the parsed value
|
||||
* Fix model validation to handle nested literals
|
||||
* Remove user_required = True from RedisDsn, neither user nor
|
||||
password are required
|
||||
* Remove extra allOf from schema for fields with Union and custom Field
|
||||
* Updates OpenAPI schema generation to output all enums as separate
|
||||
models. Instead of inlining the enum values in the model schema,
|
||||
models now use a $ref property to point to the enum definition
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 9 19:24:27 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 18 19:11:39 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- 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.
|
||||
Fix str_validator() return type to str
|
||||
* Support instance methods and class methods with
|
||||
@validate_arguments
|
||||
* Add default_factory argument to Field to create a dynamic
|
||||
default value by passing a zero-argument callable
|
||||
* add support for NewType of List, Optional, etc
|
||||
* fix mypy signature for root_validator
|
||||
* Fixed parsing of nested 'custom root type' models
|
||||
* Add validate_arguments function decorator which checks the
|
||||
arguments to a function matches type annotations
|
||||
* Add __signature__ to models
|
||||
* Refactor ._iter() method, 10x speed boost for dict(model)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 19 13:25:26 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 20 09:56:55 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Format with spec-cleaner
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 19 20:25:27 UTC 2019 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Initial package, version 0.32.2
|
72
python-pydantic.spec
Normal file
72
python-pydantic.spec
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# spec file for package python-pydantic
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2019, Martin Hauke <mardnh@gmx.de>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define skip_python2 1
|
||||
Name: python-pydantic
|
||||
Version: 1.10.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-OPENSUSE Ignore DeprecationWarning until requests-toolbelt is fixed
|
||||
# (Pulled in by email-validator)
|
||||
Patch0: ignore-urllib3-pyopenssl-warning.patch
|
||||
# PATCH-FIX-UPSTREAM CVE-2024-3772.patch gh#pydantic/pydantic#7360 -- daniel.garcia@suse.com
|
||||
Patch1: CVE-2024-3772.patch
|
||||
BuildRequires: %{python_module email-validator >= 1.0.3}
|
||||
BuildRequires: %{python_module packaging}
|
||||
BuildRequires: %{python_module pytest-mock}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module python-dotenv >= 0.10.4}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module typing_extensions >= 4.2.0}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python-typing_extensions >= 4.2.0
|
||||
Suggests: python-email-validator >= 1.0.3
|
||||
Suggests: python-python-dotenv >= 0.10.4
|
||||
BuildArch: noarch
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
Data validation and settings management using Python type hinting.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n pydantic-%{version}
|
||||
|
||||
%build
|
||||
%python_build
|
||||
|
||||
%install
|
||||
%python_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%check
|
||||
# Disable DeprecationWarning to avoid error with the latest setuptools
|
||||
# and pkg_resources deprecation
|
||||
%pytest -k 'not test_multiple_env_file' -W ignore::DeprecationWarning
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
%doc README.md HISTORY.md
|
||||
%{python_sitelib}/pydantic
|
||||
%{python_sitelib}/pydantic-%{version}*-info
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user