Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pydantic-core for
openSUSE:Factory checked in at 2026-05-12 19:26:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pydantic-core (Old)
and /work/SRC/openSUSE:Factory/.python-pydantic-core.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pydantic-core"
Tue May 12 19:26:11 2026 rev:14 rq:1352319 version:2.46.4
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-pydantic-core/python-pydantic-core.changes
2026-04-18 21:32:08.839242073 +0200
+++
/work/SRC/openSUSE:Factory/.python-pydantic-core.new.1966/python-pydantic-core.changes
2026-05-12 19:26:26.346517245 +0200
@@ -1,0 +2,6 @@
+Sun May 10 20:09:27 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.46.4:
+ * Preserve RootModel core metadata
+
+-------------------------------------------------------------------
Old:
----
pydantic_core-2.46.1.tar.gz
New:
----
pydantic_core-2.46.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pydantic-core.spec ++++++
--- /var/tmp/diff_new_pack.DPInUk/_old 2026-05-12 19:26:27.274555707 +0200
+++ /var/tmp/diff_new_pack.DPInUk/_new 2026-05-12 19:26:27.282556038 +0200
@@ -26,7 +26,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pydantic-core%{psuffix}
-Version: 2.46.1
+Version: 2.46.4
Release: 0
Summary: Core functionality for pydantic validation and serialization
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.DPInUk/_old 2026-05-12 19:26:27.350558857 +0200
+++ /var/tmp/diff_new_pack.DPInUk/_new 2026-05-12 19:26:27.354559022 +0200
@@ -1,7 +1,7 @@
<services>
<service name="download_files" mode="manual"/>
<service name="cargo_vendor" mode="manual">
- <param name="srctar">pydantic_core-2.46.1.tar.gz</param>
+ <param name="srcdir">pydantic_core-2.*</param>
<param name="compression">xz</param>
<param name="update">true</param>
</service>
++++++ pydantic_core-2.46.1.tar.gz -> pydantic_core-2.46.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/Cargo.lock
new/pydantic_core-2.46.4/Cargo.lock
--- old/pydantic_core-2.46.1/Cargo.lock 2006-07-24 03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/Cargo.lock 2006-07-24 03:21:28.000000000 +0200
@@ -366,9 +366,9 @@
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.185"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
[[package]]
name = "litemap"
@@ -454,7 +454,7 @@
[[package]]
name = "pydantic-core"
-version = "2.46.1"
+version = "2.46.4"
dependencies = [
"ahash",
"base64",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/Cargo.toml
new/pydantic_core-2.46.4/Cargo.toml
--- old/pydantic_core-2.46.1/Cargo.toml 2006-07-24 03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/Cargo.toml 2006-07-24 03:21:28.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "pydantic-core"
-version = "2.46.1"
+version = "2.46.4"
edition = "2024"
license = "MIT"
homepage = "https://github.com/pydantic/pydantic"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/PKG-INFO
new/pydantic_core-2.46.4/PKG-INFO
--- old/pydantic_core-2.46.1/PKG-INFO 2006-07-24 03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/PKG-INFO 2006-07-24 03:21:28.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pydantic_core
-Version: 2.46.1
+Version: 2.46.4
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/build.rs
new/pydantic_core-2.46.4/build.rs
--- old/pydantic_core-2.46.1/build.rs 2006-07-24 03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/build.rs 2006-07-24 03:21:28.000000000 +0200
@@ -13,4 +13,13 @@
}
println!("cargo:rustc-check-cfg=cfg(specified_profile_use)");
println!("cargo:rustc-env=PROFILE={}", std::env::var("PROFILE").unwrap());
+
+ // The macOS `ld_prime` new Linker (used in macOS 15 GitHub CI runners),
+ // reserves significantly less Mach-O header padding than the old linker.
+ // Tools like Homebrew use install_name_tool to rewrite dylib paths
post-install,
+ // and that requires spare space in the header. Without this flag the
relink
+ // fails with "updated load commands do not fit in the header".
+ if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("macos") {
+ println!("cargo:rustc-link-arg=-Wl,-headerpad_max_install_names");
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/src/lookup_key.rs
new/pydantic_core-2.46.4/src/lookup_key.rs
--- old/pydantic_core-2.46.1/src/lookup_key.rs 2006-07-24 03:21:28.000000000
+0200
+++ new/pydantic_core-2.46.4/src/lookup_key.rs 2006-07-24 03:21:28.000000000
+0200
@@ -3,7 +3,7 @@
use std::fmt;
use pyo3::IntoPyObjectExt;
-use pyo3::exceptions::{PyTypeError, PyValueError};
+use pyo3::exceptions::{PyAttributeError, PyTypeError, PyValueError};
use pyo3::prelude::*;
use pyo3::pybacked::PyBackedStr;
use pyo3::types::{PyDict, PyList, PyMapping, PyString};
@@ -111,7 +111,7 @@
}
pub fn simple_py_get_attr<'py>(&self, obj: &Bound<'py, PyAny>) ->
PyResult<Option<Bound<'py, PyAny>>> {
- self.get_impl(obj, PyAnyMethods::getattr_opt, |d, loc|
loc.py_get_attrs(&d))
+ self.get_impl(obj, py_get_attrs, |d, loc| loc.py_get_attrs(&d))
}
pub fn py_get_attr<'py>(
@@ -366,7 +366,7 @@
// FIXME: should this instance check be for Mapping instead of
Dict, and use `mapping_get`?
Ok(obj.get_item(self).ok())
} else {
- obj.getattr_opt(self)
+ py_get_attrs(obj, self)
}
}
}
@@ -454,3 +454,20 @@
(self as u8 & other as u8) != 0
}
}
+
+// TODO replace with `PyAnyMethods::getattr_opt` once
https://github.com/PyO3/pyo3/pull/5985 is merged:
+fn py_get_attrs<'py, N>(obj: &Bound<'py, PyAny>, attr_name: N) ->
PyResult<Option<Bound<'py, PyAny>>>
+where
+ N: IntoPyObject<'py, Target = PyString>,
+{
+ match obj.getattr(attr_name) {
+ Ok(attr) => Ok(Some(attr)),
+ Err(err) => {
+ if err.get_type(obj.py()).is_subclass_of::<PyAttributeError>()? {
+ Ok(None)
+ } else {
+ Err(err)
+ }
+ }
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/src/validators/model_fields.rs
new/pydantic_core-2.46.4/src/validators/model_fields.rs
--- old/pydantic_core-2.46.1/src/validators/model_fields.rs 2006-07-24
03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/src/validators/model_fields.rs 2006-07-24
03:21:28.000000000 +0200
@@ -629,6 +629,8 @@
// dict, and try to set defaults for any missing fields
for (field, field_result) in std::iter::zip(&self.fields,
field_results) {
+ let state = &mut
state.scoped_set_field_name(Some(field.name.as_py_str().bind(py).clone()));
+
let field_value = if let Some((field_info, field_json_value)) =
field_result {
match field.validator.validate(py, field_json_value, state) {
Ok(value) => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pydantic_core-2.46.1/tests/validators/test_arguments.py
new/pydantic_core-2.46.4/tests/validators/test_arguments.py
--- old/pydantic_core-2.46.1/tests/validators/test_arguments.py 2006-07-24
03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/tests/validators/test_arguments.py 2006-07-24
03:21:28.000000000 +0200
@@ -1,5 +1,4 @@
import os
-import platform
import re
import sys
from functools import wraps
@@ -1139,9 +1138,6 @@
)
[email protected](
- platform.python_implementation() == 'PyPy' and sys.version_info[:2] == (3,
11), reason='pypy 3.11 type formatting'
-)
def test_error_display(pydantic_version):
v = SchemaValidator(
core_schema.arguments_schema(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pydantic_core-2.46.1/tests/validators/test_definitions_recursive.py
new/pydantic_core-2.46.4/tests/validators/test_definitions_recursive.py
--- old/pydantic_core-2.46.1/tests/validators/test_definitions_recursive.py
2006-07-24 03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/tests/validators/test_definitions_recursive.py
2006-07-24 03:21:28.000000000 +0200
@@ -1,6 +1,5 @@
import datetime
import platform
-import sys
from dataclasses import dataclass
from typing import Optional
@@ -753,9 +752,6 @@
assert v.validate_python(long_input) == long_input
[email protected](
- platform.python_implementation() == 'PyPy' and sys.version_info[:2] == (3,
11), reason='pypy 3.11 type formatting'
-)
def test_error_inside_definition_wrapper():
with pytest.raises(SchemaError) as exc_info:
SchemaValidator(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/tests/validators/test_string.py
new/pydantic_core-2.46.4/tests/validators/test_string.py
--- old/pydantic_core-2.46.1/tests/validators/test_string.py 2006-07-24
03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/tests/validators/test_string.py 2006-07-24
03:21:28.000000000 +0200
@@ -348,9 +348,6 @@
@pytest.mark.parametrize('mode', (None, 'schema', 'config'))
[email protected](
- platform.python_implementation() == 'PyPy' and sys.version_info[:2] == (3,
11), reason='pypy 3.11 type formatting'
-)
def test_backtracking_regex_rust_unsupported(mode) -> None:
pattern = r'r(#*)".*?"\1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pydantic_core-2.46.1/tests/validators/test_union.py
new/pydantic_core-2.46.4/tests/validators/test_union.py
--- old/pydantic_core-2.46.1/tests/validators/test_union.py 2006-07-24
03:21:28.000000000 +0200
+++ new/pydantic_core-2.46.4/tests/validators/test_union.py 2006-07-24
03:21:28.000000000 +0200
@@ -1,5 +1,3 @@
-import platform
-import sys
from dataclasses import dataclass
from datetime import date, time
from enum import Enum, IntEnum
@@ -233,9 +231,6 @@
]
[email protected](
- platform.python_implementation() == 'PyPy' and sys.version_info[:2] == (3,
11), reason='pypy 3.11 type formatting'
-)
def test_empty_choices():
msg = r'Error building "union" validator:\s+SchemaError: One or more union
choices required'
with pytest.raises(SchemaError, match=msg):
++++++ vendor.tar.xz ++++++
++++ 483003 lines of diff (skipped)