summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python3-pydantic-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta-python/recipes-devtools/python/python3-pydantic-core')
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch126
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/0001-Fix-generate_self_schema-for-Python-3.12-1299.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/0001-Upgrade-radium-to-1.0.patch540
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/0001-cargo.toml-Update-bitvec-to-use-radium-1.x.patch59
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest3
5 files changed, 599 insertions, 158 deletions
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch
deleted file mode 100644
index 32777e1d03..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch
+++ /dev/null
@@ -1,126 +0,0 @@
1From a5690f973384bf8cbf4deb3b83d822b7aaefbdd8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 27 Feb 2024 11:00:46 -0800
4Subject: [PATCH] Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.20.2 to
5 0.20.3.
6
7Upstream-Status: Pending
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 Cargo.lock | 26 +++++++++++++++++---------
11 Cargo.toml | 2 +-
12 2 files changed, 18 insertions(+), 10 deletions(-)
13
14--- a/Cargo.lock
15+++ b/Cargo.lock
16@@ -322,6 +322,12 @@ source = "registry+https://github.com/ru
17 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
18
19 [[package]]
20+name = "portable-atomic"
21+version = "1.6.0"
22+source = "registry+https://github.com/rust-lang/crates.io-index"
23+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
24+
25+[[package]]
26 name = "proc-macro2"
27 version = "1.0.76"
28 source = "registry+https://github.com/rust-lang/crates.io-index"
29@@ -357,9 +363,9 @@ dependencies = [
30
31 [[package]]
32 name = "pyo3"
33-version = "0.20.2"
34+version = "0.20.3"
35 source = "registry+https://github.com/rust-lang/crates.io-index"
36-checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
37+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
38 dependencies = [
39 "cfg-if",
40 "indoc",
41@@ -367,6 +373,7 @@ dependencies = [
42 "memoffset",
43 "num-bigint",
44 "parking_lot",
45+ "portable-atomic",
46 "pyo3-build-config",
47 "pyo3-ffi",
48 "pyo3-macros",
49@@ -375,9 +382,9 @@ dependencies = [
50
51 [[package]]
52 name = "pyo3-build-config"
53-version = "0.20.2"
54+version = "0.20.3"
55 source = "registry+https://github.com/rust-lang/crates.io-index"
56-checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
57+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
58 dependencies = [
59 "once_cell",
60 "python3-dll-a",
61@@ -386,9 +393,9 @@ dependencies = [
62
63 [[package]]
64 name = "pyo3-ffi"
65-version = "0.20.2"
66+version = "0.20.3"
67 source = "registry+https://github.com/rust-lang/crates.io-index"
68-checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
69+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
70 dependencies = [
71 "libc",
72 "pyo3-build-config",
73@@ -396,9 +403,9 @@ dependencies = [
74
75 [[package]]
76 name = "pyo3-macros"
77-version = "0.20.2"
78+version = "0.20.3"
79 source = "registry+https://github.com/rust-lang/crates.io-index"
80-checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
81+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
82 dependencies = [
83 "proc-macro2",
84 "pyo3-macros-backend",
85@@ -408,12 +415,13 @@ dependencies = [
86
87 [[package]]
88 name = "pyo3-macros-backend"
89-version = "0.20.2"
90+version = "0.20.3"
91 source = "registry+https://github.com/rust-lang/crates.io-index"
92-checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
93+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
94 dependencies = [
95 "heck",
96 "proc-macro2",
97+ "pyo3-build-config",
98 "quote",
99 "syn",
100 ]
101--- a/Cargo.toml
102+++ b/Cargo.toml
103@@ -26,7 +26,7 @@ include = [
104 ]
105
106 [dependencies]
107-pyo3 = { version = "0.20.2", features = ["generate-import-lib", "num-bigint"] }
108+pyo3 = { version = "0.20.3", features = ["generate-import-lib", "num-bigint"] }
109 regex = "1.10.2"
110 strum = { version = "0.25.0", features = ["derive"] }
111 strum_macros = "0.25.3"
112@@ -70,12 +70,12 @@ debug = true
113 strip = false
114
115 [dev-dependencies]
116-pyo3 = { version = "0.20.2", features = ["auto-initialize"] }
117+pyo3 = { version = "0.20.3", features = ["auto-initialize"] }
118
119 [build-dependencies]
120 version_check = "0.9.4"
121 # used where logic has to be version/distribution specific, e.g. pypy
122-pyo3-build-config = { version = "0.20.2" }
123+pyo3-build-config = { version = "0.20.3" }
124
125 [lints.clippy]
126 dbg_macro = "warn"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Fix-generate_self_schema-for-Python-3.12-1299.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Fix-generate_self_schema-for-Python-3.12-1299.patch
deleted file mode 100644
index f6aa18e303..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Fix-generate_self_schema-for-Python-3.12-1299.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 0dcca2ed6a83ebbc944ec8cbd2f67ffec8043461 Mon Sep 17 00:00:00 2001
2From: Jelle Zijlstra <jelle.zijlstra@gmail.com>
3Date: Wed, 22 May 2024 07:44:10 -0700
4Subject: [PATCH] Fix generate_self_schema for Python 3.12+ (#1299)
5
6Upstream-Status: Backport [https://github.com/pydantic/pydantic-core/commit/a7620419383a69bd2b28ab953c9a17f6ed35bb9a]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 generate_self_schema.py | 7 ++++++-
10 1 file changed, 6 insertions(+), 1 deletion(-)
11
12diff --git a/generate_self_schema.py b/generate_self_schema.py
13index 8d27247..109fca0 100644
14--- a/generate_self_schema.py
15+++ b/generate_self_schema.py
16@@ -189,7 +189,12 @@ def all_literal_values(type_: type[core_schema.Literal]) -> list[any]:
17
18 def eval_forward_ref(type_: Any) -> Any:
19 try:
20- return type_._evaluate(core_schema.__dict__, None, set())
21+ try:
22+ # Python 3.12+
23+ return type_._evaluate(core_schema.__dict__, None, type_params=set(), recursive_guard=set())
24+ except TypeError:
25+ # Python 3.9+
26+ return type_._evaluate(core_schema.__dict__, None, set())
27 except TypeError:
28 # for Python 3.8
29 return type_._evaluate(core_schema.__dict__, None)
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Upgrade-radium-to-1.0.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Upgrade-radium-to-1.0.patch
new file mode 100644
index 0000000000..00dcd634f2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Upgrade-radium-to-1.0.patch
@@ -0,0 +1,540 @@
1From 87753249fb9ac26acd1eb0135fefded871c24e6c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 18 Apr 2025 17:54:42 -0700
4Subject: [PATCH] Upgrade radium to 1.0
5
6Upstream-Status: Submitted [https://github.com/ferrilab/bitvec/pull/220]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 Cargo.toml | 2 +-
10 src/macros/tests.rs | 256 ++++++++++++++++++++++----------------------
11 src/mem.rs | 28 ++---
12 src/serdes.rs | 58 +++++-----
13 src/store.rs | 61 +++++------
14 5 files changed, 207 insertions(+), 198 deletions(-)
15
16--- a/Cargo.toml
17+++ b/Cargo.toml
18@@ -55,7 +55,7 @@ version = "^2.0"
19 default-features = false
20
21 [dependencies.radium]
22-version = "0.7"
23+version = "1"
24
25 [dependencies.serde]
26 version = "1"
27--- a/src/macros/tests.rs
28+++ b/src/macros/tests.rs
29@@ -231,50 +231,52 @@ fn compile_bits() {
30 let _: &BitSlice<u64, Msb0> = bits![u64, crate::order::Msb0; 1; 100];
31 }
32
33- radium::if_atomic! {
34- if atomic(8) {
35- let _: &BitSlice<AtomicU8, LocalBits> = bits![AtomicU8, LocalBits; 0, 1];
36- let _: &BitSlice<AtomicU8, Lsb0> = bits![AtomicU8, Lsb0; 0, 1];
37- let _: &BitSlice<AtomicU8, Msb0> = bits![AtomicU8, Msb0; 0, 1];
38- let _: &BitSlice<RadiumU8, LocalBits> = bits![RadiumU8, LocalBits; 1; 100];
39- let _: &BitSlice<RadiumU8, Lsb0> = bits![RadiumU8, Lsb0; 1; 100];
40- let _: &BitSlice<RadiumU8, Msb0> = bits![RadiumU8, Msb0; 1; 100];
41- }
42- if atomic(16) {
43- let _: &BitSlice<AtomicU16, LocalBits> = bits![AtomicU16, LocalBits; 0, 1];
44- let _: &BitSlice<AtomicU16, Lsb0> = bits![AtomicU16, Lsb0; 0, 1];
45- let _: &BitSlice<AtomicU16, Msb0> = bits![AtomicU16, Msb0; 0, 1];
46- let _: &BitSlice<RadiumU16, LocalBits> = bits![RadiumU16, LocalBits; 1; 100];
47- let _: &BitSlice<RadiumU16, Lsb0> = bits![RadiumU16, Lsb0; 1; 100];
48- let _: &BitSlice<RadiumU16, Msb0> = bits![RadiumU16, Msb0; 1; 100];
49- }
50- if atomic(32) {
51- let _: &BitSlice<AtomicU32, LocalBits> = bits![AtomicU32, LocalBits; 0, 1];
52- let _: &BitSlice<AtomicU32, Lsb0> = bits![AtomicU32, Lsb0; 0, 1];
53- let _: &BitSlice<AtomicU32, Msb0> = bits![AtomicU32, Msb0; 0, 1];
54- let _: &BitSlice<RadiumU32, LocalBits> = bits![RadiumU32, LocalBits; 1; 100];
55- let _: &BitSlice<RadiumU32, Lsb0> = bits![RadiumU32, Lsb0; 1; 100];
56- let _: &BitSlice<RadiumU32, Msb0> = bits![RadiumU32, Msb0; 1; 100];
57- }
58- if atomic(size) {
59- let _: &BitSlice<AtomicUsize, LocalBits> = bits![AtomicUsize, LocalBits; 0, 1];
60- let _: &BitSlice<AtomicUsize, Lsb0> = bits![AtomicUsize, Lsb0; 0, 1];
61- let _: &BitSlice<AtomicUsize, Msb0> = bits![AtomicUsize, Msb0; 0, 1];
62- let _: &BitSlice<RadiumUsize, LocalBits> = bits![RadiumUsize, LocalBits; 1; 100];
63- let _: &BitSlice<RadiumUsize, Lsb0> = bits![RadiumUsize, Lsb0; 1; 100];
64- let _: &BitSlice<RadiumUsize, Msb0> = bits![RadiumUsize, Msb0; 1; 100];
65- }
66+ #[cfg(target_has_atomic = "8")]
67+ {
68+ let _: &BitSlice<AtomicU8, LocalBits> = bits![AtomicU8, LocalBits; 0, 1];
69+ let _: &BitSlice<AtomicU8, Lsb0> = bits![AtomicU8, Lsb0; 0, 1];
70+ let _: &BitSlice<AtomicU8, Msb0> = bits![AtomicU8, Msb0; 0, 1];
71+ let _: &BitSlice<RadiumU8, LocalBits> = bits![RadiumU8, LocalBits; 1; 100];
72+ let _: &BitSlice<RadiumU8, Lsb0> = bits![RadiumU8, Lsb0; 1; 100];
73+ let _: &BitSlice<RadiumU8, Msb0> = bits![RadiumU8, Msb0; 1; 100];
74+ }
75+ #[cfg(target_has_atomic = "16")]
76+ {
77+ let _: &BitSlice<AtomicU16, LocalBits> = bits![AtomicU16, LocalBits; 0, 1];
78+ let _: &BitSlice<AtomicU16, Lsb0> = bits![AtomicU16, Lsb0; 0, 1];
79+ let _: &BitSlice<AtomicU16, Msb0> = bits![AtomicU16, Msb0; 0, 1];
80+ let _: &BitSlice<RadiumU16, LocalBits> = bits![RadiumU16, LocalBits; 1; 100];
81+ let _: &BitSlice<RadiumU16, Lsb0> = bits![RadiumU16, Lsb0; 1; 100];
82+ let _: &BitSlice<RadiumU16, Msb0> = bits![RadiumU16, Msb0; 1; 100];
83+ }
84+ #[cfg(target_has_atomic = "32")]
85+ {
86+ let _: &BitSlice<AtomicU32, LocalBits> = bits![AtomicU32, LocalBits; 0, 1];
87+ let _: &BitSlice<AtomicU32, Lsb0> = bits![AtomicU32, Lsb0; 0, 1];
88+ let _: &BitSlice<AtomicU32, Msb0> = bits![AtomicU32, Msb0; 0, 1];
89+ let _: &BitSlice<RadiumU32, LocalBits> = bits![RadiumU32, LocalBits; 1; 100];
90+ let _: &BitSlice<RadiumU32, Lsb0> = bits![RadiumU32, Lsb0; 1; 100];
91+ let _: &BitSlice<RadiumU32, Msb0> = bits![RadiumU32, Msb0; 1; 100];
92+ }
93+ #[cfg(target_has_atomic = "ptr")]
94+ {
95+ let _: &BitSlice<AtomicUsize, LocalBits> = bits![AtomicUsize, LocalBits; 0, 1];
96+ let _: &BitSlice<AtomicUsize, Lsb0> = bits![AtomicUsize, Lsb0; 0, 1];
97+ let _: &BitSlice<AtomicUsize, Msb0> = bits![AtomicUsize, Msb0; 0, 1];
98+ let _: &BitSlice<RadiumUsize, LocalBits> = bits![RadiumUsize, LocalBits; 1; 100];
99+ let _: &BitSlice<RadiumUsize, Lsb0> = bits![RadiumUsize, Lsb0; 1; 100];
100+ let _: &BitSlice<RadiumUsize, Msb0> = bits![RadiumUsize, Msb0; 1; 100];
101 }
102+
103 #[cfg(target_pointer_width = "64")]
104- radium::if_atomic! {
105- if atomic(64) {
106- let _: &BitSlice<AtomicU64, LocalBits> = bits![AtomicU64, LocalBits; 0, 1];
107- let _: &BitSlice<AtomicU64, Lsb0> = bits![AtomicU64, Lsb0; 0, 1];
108- let _: &BitSlice<AtomicU64, Msb0> = bits![AtomicU64, Msb0; 0, 1];
109- let _: &BitSlice<RadiumU64, LocalBits> = bits![RadiumU64, LocalBits; 1; 100];
110- let _: &BitSlice<RadiumU64, Lsb0> = bits![RadiumU64, Lsb0; 1; 100];
111- let _: &BitSlice<RadiumU64, Msb0> = bits![RadiumU64, Msb0; 1; 100];
112- }
113+ #[cfg(target_has_atomic = "64")]
114+ {
115+ let _: &BitSlice<AtomicU64, LocalBits> = bits![AtomicU64, LocalBits; 0, 1];
116+ let _: &BitSlice<AtomicU64, Lsb0> = bits![AtomicU64, Lsb0; 0, 1];
117+ let _: &BitSlice<AtomicU64, Msb0> = bits![AtomicU64, Msb0; 0, 1];
118+ let _: &BitSlice<RadiumU64, LocalBits> = bits![RadiumU64, LocalBits; 1; 100];
119+ let _: &BitSlice<RadiumU64, Lsb0> = bits![RadiumU64, Lsb0; 1; 100];
120+ let _: &BitSlice<RadiumU64, Msb0> = bits![RadiumU64, Msb0; 1; 100];
121 }
122 }
123
124@@ -346,50 +348,51 @@ fn compile_bitvec() {
125 bitvec![Cell<u64>, crate::order::Msb0; 1; 100];
126 let _: BitVec<u64, Msb0> = bitvec![u64, crate::order::Msb0; 1; 100];
127 }
128- radium::if_atomic! {
129- if atomic(8) {
130- let _: BitVec<AtomicU8, LocalBits> =bitvec![AtomicU8, LocalBits; 0, 1];
131- let _: BitVec<AtomicU8, Lsb0> =bitvec![AtomicU8, Lsb0; 0, 1];
132- let _: BitVec<AtomicU8, Msb0> =bitvec![AtomicU8, Msb0; 0, 1];
133- let _: BitVec<RadiumU8, LocalBits> =bitvec![RadiumU8, LocalBits; 1; 100];
134- let _: BitVec<RadiumU8, Lsb0> =bitvec![RadiumU8, Lsb0; 1; 100];
135- let _: BitVec<RadiumU8, Msb0> =bitvec![RadiumU8, Msb0; 1; 100];
136- }
137- if atomic(16) {
138- let _: BitVec<AtomicU16, LocalBits> =bitvec![AtomicU16, LocalBits; 0, 1];
139- let _: BitVec<AtomicU16, Lsb0> =bitvec![AtomicU16, Lsb0; 0, 1];
140- let _: BitVec<AtomicU16, Msb0> =bitvec![AtomicU16, Msb0; 0, 1];
141- let _: BitVec<RadiumU16, LocalBits> =bitvec![RadiumU16, LocalBits; 1; 100];
142- let _: BitVec<RadiumU16, Lsb0> =bitvec![RadiumU16, Lsb0; 1; 100];
143- let _: BitVec<RadiumU16, Msb0> =bitvec![RadiumU16, Msb0; 1; 100];
144- }
145- if atomic(32) {
146- let _: BitVec<AtomicU32, LocalBits> =bitvec![AtomicU32, LocalBits; 0, 1];
147- let _: BitVec<AtomicU32, Lsb0> =bitvec![AtomicU32, Lsb0; 0, 1];
148- let _: BitVec<AtomicU32, Msb0> =bitvec![AtomicU32, Msb0; 0, 1];
149- let _: BitVec<RadiumU32, LocalBits> =bitvec![RadiumU32, LocalBits; 1; 100];
150- let _: BitVec<RadiumU32, Lsb0> =bitvec![RadiumU32, Lsb0; 1; 100];
151- let _: BitVec<RadiumU32, Msb0> =bitvec![RadiumU32, Msb0; 1; 100];
152- }
153- if atomic(size) {
154- let _: BitVec<AtomicUsize, LocalBits> =bitvec![AtomicUsize, LocalBits; 0, 1];
155- let _: BitVec<AtomicUsize, Lsb0> =bitvec![AtomicUsize, Lsb0; 0, 1];
156- let _: BitVec<AtomicUsize, Msb0> =bitvec![AtomicUsize, Msb0; 0, 1];
157- let _: BitVec<RadiumUsize, LocalBits> =bitvec![RadiumUsize, LocalBits; 1; 100];
158- let _: BitVec<RadiumUsize, Lsb0> =bitvec![RadiumUsize, Lsb0; 1; 100];
159- let _: BitVec<RadiumUsize, Msb0> =bitvec![RadiumUsize, Msb0; 1; 100];
160- }
161+ #[cfg(target_has_atomic = "8")]
162+ {
163+ let _: BitVec<AtomicU8, LocalBits> =bitvec![AtomicU8, LocalBits; 0, 1];
164+ let _: BitVec<AtomicU8, Lsb0> =bitvec![AtomicU8, Lsb0; 0, 1];
165+ let _: BitVec<AtomicU8, Msb0> =bitvec![AtomicU8, Msb0; 0, 1];
166+ let _: BitVec<RadiumU8, LocalBits> =bitvec![RadiumU8, LocalBits; 1; 100];
167+ let _: BitVec<RadiumU8, Lsb0> =bitvec![RadiumU8, Lsb0; 1; 100];
168+ let _: BitVec<RadiumU8, Msb0> =bitvec![RadiumU8, Msb0; 1; 100];
169+ }
170+ #[cfg(target_has_atomic = "16")]
171+ {
172+ let _: BitVec<AtomicU16, LocalBits> =bitvec![AtomicU16, LocalBits; 0, 1];
173+ let _: BitVec<AtomicU16, Lsb0> =bitvec![AtomicU16, Lsb0; 0, 1];
174+ let _: BitVec<AtomicU16, Msb0> =bitvec![AtomicU16, Msb0; 0, 1];
175+ let _: BitVec<RadiumU16, LocalBits> =bitvec![RadiumU16, LocalBits; 1; 100];
176+ let _: BitVec<RadiumU16, Lsb0> =bitvec![RadiumU16, Lsb0; 1; 100];
177+ let _: BitVec<RadiumU16, Msb0> =bitvec![RadiumU16, Msb0; 1; 100];
178+ }
179+ #[cfg(target_has_atomic = "32")]
180+ {
181+ let _: BitVec<AtomicU32, LocalBits> =bitvec![AtomicU32, LocalBits; 0, 1];
182+ let _: BitVec<AtomicU32, Lsb0> =bitvec![AtomicU32, Lsb0; 0, 1];
183+ let _: BitVec<AtomicU32, Msb0> =bitvec![AtomicU32, Msb0; 0, 1];
184+ let _: BitVec<RadiumU32, LocalBits> =bitvec![RadiumU32, LocalBits; 1; 100];
185+ let _: BitVec<RadiumU32, Lsb0> =bitvec![RadiumU32, Lsb0; 1; 100];
186+ let _: BitVec<RadiumU32, Msb0> =bitvec![RadiumU32, Msb0; 1; 100];
187+ }
188+ #[cfg(target_has_atomic = "ptr")]
189+ {
190+ let _: BitVec<AtomicUsize, LocalBits> =bitvec![AtomicUsize, LocalBits; 0, 1];
191+ let _: BitVec<AtomicUsize, Lsb0> =bitvec![AtomicUsize, Lsb0; 0, 1];
192+ let _: BitVec<AtomicUsize, Msb0> =bitvec![AtomicUsize, Msb0; 0, 1];
193+ let _: BitVec<RadiumUsize, LocalBits> =bitvec![RadiumUsize, LocalBits; 1; 100];
194+ let _: BitVec<RadiumUsize, Lsb0> =bitvec![RadiumUsize, Lsb0; 1; 100];
195+ let _: BitVec<RadiumUsize, Msb0> =bitvec![RadiumUsize, Msb0; 1; 100];
196 }
197 #[cfg(target_pointer_width = "64")]
198- radium::if_atomic! {
199- if atomic(64) {
200- let _: BitVec<AtomicU64, LocalBits> =bitvec![AtomicU64, LocalBits; 0, 1];
201- let _: BitVec<AtomicU64, Lsb0> =bitvec![AtomicU64, Lsb0; 0, 1];
202- let _: BitVec<AtomicU64, Msb0> =bitvec![AtomicU64, Msb0; 0, 1];
203- let _: BitVec<RadiumU64, LocalBits> =bitvec![RadiumU64, LocalBits; 1; 100];
204- let _: BitVec<RadiumU64, Lsb0> =bitvec![RadiumU64, Lsb0; 1; 100];
205- let _: BitVec<RadiumU64, Msb0> =bitvec![RadiumU64, Msb0; 1; 100];
206- }
207+ #[cfg(target_has_atomic = "64")]
208+ {
209+ let _: BitVec<AtomicU64, LocalBits> =bitvec![AtomicU64, LocalBits; 0, 1];
210+ let _: BitVec<AtomicU64, Lsb0> =bitvec![AtomicU64, Lsb0; 0, 1];
211+ let _: BitVec<AtomicU64, Msb0> =bitvec![AtomicU64, Msb0; 0, 1];
212+ let _: BitVec<RadiumU64, LocalBits> =bitvec![RadiumU64, LocalBits; 1; 100];
213+ let _: BitVec<RadiumU64, Lsb0> =bitvec![RadiumU64, Lsb0; 1; 100];
214+ let _: BitVec<RadiumU64, Msb0> =bitvec![RadiumU64, Msb0; 1; 100];
215 }
216 }
217
218@@ -461,50 +464,51 @@ fn compile_bitbox() {
219 bitbox![Cell<u64>, crate::order::Msb0; 1; 100];
220 let _: BitBox<u64, Msb0> = bitbox![u64, crate::order::Msb0; 1; 100];
221 }
222- radium::if_atomic! {
223- if atomic(8) {
224- let _: BitBox<AtomicU8, LocalBits> =bitbox![AtomicU8, LocalBits; 0, 1];
225- let _: BitBox<AtomicU8, Lsb0> =bitbox![AtomicU8, Lsb0; 0, 1];
226- let _: BitBox<AtomicU8, Msb0> =bitbox![AtomicU8, Msb0; 0, 1];
227- let _: BitBox<RadiumU8, LocalBits> =bitbox![RadiumU8, LocalBits; 1; 100];
228- let _: BitBox<RadiumU8, Lsb0> =bitbox![RadiumU8, Lsb0; 1; 100];
229- let _: BitBox<RadiumU8, Msb0> =bitbox![RadiumU8, Msb0; 1; 100];
230- }
231- if atomic(16) {
232- let _: BitBox<AtomicU16, LocalBits> =bitbox![AtomicU16, LocalBits; 0, 1];
233- let _: BitBox<AtomicU16, Lsb0> =bitbox![AtomicU16, Lsb0; 0, 1];
234- let _: BitBox<AtomicU16, Msb0> =bitbox![AtomicU16, Msb0; 0, 1];
235- let _: BitBox<RadiumU16, LocalBits> =bitbox![RadiumU16, LocalBits; 1; 100];
236- let _: BitBox<RadiumU16, Lsb0> =bitbox![RadiumU16, Lsb0; 1; 100];
237- let _: BitBox<RadiumU16, Msb0> =bitbox![RadiumU16, Msb0; 1; 100];
238- }
239- if atomic(32) {
240- let _: BitBox<AtomicU32, LocalBits> =bitbox![AtomicU32, LocalBits; 0, 1];
241- let _: BitBox<AtomicU32, Lsb0> =bitbox![AtomicU32, Lsb0; 0, 1];
242- let _: BitBox<AtomicU32, Msb0> =bitbox![AtomicU32, Msb0; 0, 1];
243- let _: BitBox<RadiumU32, LocalBits> =bitbox![RadiumU32, LocalBits; 1; 100];
244- let _: BitBox<RadiumU32, Lsb0> =bitbox![RadiumU32, Lsb0; 1; 100];
245- let _: BitBox<RadiumU32, Msb0> =bitbox![RadiumU32, Msb0; 1; 100];
246- }
247- if atomic(size) {
248- let _: BitBox<AtomicUsize, LocalBits> =bitbox![AtomicUsize, LocalBits; 0, 1];
249- let _: BitBox<AtomicUsize, Lsb0> =bitbox![AtomicUsize, Lsb0; 0, 1];
250- let _: BitBox<AtomicUsize, Msb0> =bitbox![AtomicUsize, Msb0; 0, 1];
251- let _: BitBox<RadiumUsize, LocalBits> =bitbox![RadiumUsize, LocalBits; 1; 100];
252- let _: BitBox<RadiumUsize, Lsb0> =bitbox![RadiumUsize, Lsb0; 1; 100];
253- let _: BitBox<RadiumUsize, Msb0> =bitbox![RadiumUsize, Msb0; 1; 100];
254- }
255+ #[cfg(target_has_atomic = "8")]
256+ {
257+ let _: BitBox<AtomicU8, LocalBits> =bitbox![AtomicU8, LocalBits; 0, 1];
258+ let _: BitBox<AtomicU8, Lsb0> =bitbox![AtomicU8, Lsb0; 0, 1];
259+ let _: BitBox<AtomicU8, Msb0> =bitbox![AtomicU8, Msb0; 0, 1];
260+ let _: BitBox<RadiumU8, LocalBits> =bitbox![RadiumU8, LocalBits; 1; 100];
261+ let _: BitBox<RadiumU8, Lsb0> =bitbox![RadiumU8, Lsb0; 1; 100];
262+ let _: BitBox<RadiumU8, Msb0> =bitbox![RadiumU8, Msb0; 1; 100];
263+ }
264+ #[cfg(target_has_atomic = "16")]
265+ {
266+ let _: BitBox<AtomicU16, LocalBits> =bitbox![AtomicU16, LocalBits; 0, 1];
267+ let _: BitBox<AtomicU16, Lsb0> =bitbox![AtomicU16, Lsb0; 0, 1];
268+ let _: BitBox<AtomicU16, Msb0> =bitbox![AtomicU16, Msb0; 0, 1];
269+ let _: BitBox<RadiumU16, LocalBits> =bitbox![RadiumU16, LocalBits; 1; 100];
270+ let _: BitBox<RadiumU16, Lsb0> =bitbox![RadiumU16, Lsb0; 1; 100];
271+ let _: BitBox<RadiumU16, Msb0> =bitbox![RadiumU16, Msb0; 1; 100];
272+ }
273+ #[cfg(target_has_atomic = "32")]
274+ {
275+ let _: BitBox<AtomicU32, LocalBits> =bitbox![AtomicU32, LocalBits; 0, 1];
276+ let _: BitBox<AtomicU32, Lsb0> =bitbox![AtomicU32, Lsb0; 0, 1];
277+ let _: BitBox<AtomicU32, Msb0> =bitbox![AtomicU32, Msb0; 0, 1];
278+ let _: BitBox<RadiumU32, LocalBits> =bitbox![RadiumU32, LocalBits; 1; 100];
279+ let _: BitBox<RadiumU32, Lsb0> =bitbox![RadiumU32, Lsb0; 1; 100];
280+ let _: BitBox<RadiumU32, Msb0> =bitbox![RadiumU32, Msb0; 1; 100];
281+ }
282+ #[cfg(target_has_atomic = "ptr")]
283+ {
284+ let _: BitBox<AtomicUsize, LocalBits> =bitbox![AtomicUsize, LocalBits; 0, 1];
285+ let _: BitBox<AtomicUsize, Lsb0> =bitbox![AtomicUsize, Lsb0; 0, 1];
286+ let _: BitBox<AtomicUsize, Msb0> =bitbox![AtomicUsize, Msb0; 0, 1];
287+ let _: BitBox<RadiumUsize, LocalBits> =bitbox![RadiumUsize, LocalBits; 1; 100];
288+ let _: BitBox<RadiumUsize, Lsb0> =bitbox![RadiumUsize, Lsb0; 1; 100];
289+ let _: BitBox<RadiumUsize, Msb0> =bitbox![RadiumUsize, Msb0; 1; 100];
290 }
291 #[cfg(target_pointer_width = "64")]
292- radium::if_atomic! {
293- if atomic(64) {
294- let _: BitBox<AtomicU64, LocalBits> =bitbox![AtomicU64, LocalBits; 0, 1];
295- let _: BitBox<AtomicU64, Lsb0> =bitbox![AtomicU64, Lsb0; 0, 1];
296- let _: BitBox<AtomicU64, Msb0> =bitbox![AtomicU64, Msb0; 0, 1];
297- let _: BitBox<RadiumU64, LocalBits> =bitbox![RadiumU64, LocalBits; 1; 100];
298- let _: BitBox<RadiumU64, Lsb0> =bitbox![RadiumU64, Lsb0; 1; 100];
299- let _: BitBox<RadiumU64, Msb0> =bitbox![RadiumU64, Msb0; 1; 100];
300- }
301+ #[cfg(target_has_atomic = "64")]
302+ {
303+ let _: BitBox<AtomicU64, LocalBits> =bitbox![AtomicU64, LocalBits; 0, 1];
304+ let _: BitBox<AtomicU64, Lsb0> =bitbox![AtomicU64, Lsb0; 0, 1];
305+ let _: BitBox<AtomicU64, Msb0> =bitbox![AtomicU64, Msb0; 0, 1];
306+ let _: BitBox<RadiumU64, LocalBits> =bitbox![RadiumU64, LocalBits; 1; 100];
307+ let _: BitBox<RadiumU64, Lsb0> =bitbox![RadiumU64, Lsb0; 1; 100];
308+ let _: BitBox<RadiumU64, Msb0> =bitbox![RadiumU64, Msb0; 1; 100];
309 }
310 }
311
312--- a/src/mem.rs
313+++ b/src/mem.rs
314@@ -101,30 +101,30 @@ macro_rules! element {
315 }
316 }
317
318- radium::if_atomic!( if atomic($size) {
319- use core::sync::atomic::$atom;
320- impl BitElement<$atom> {
321- /// Creates a new element wrapper from a raw integer.
322- pub const fn new(elem: $bare) -> Self {
323- Self {
324- elem: <$atom>::new(elem),
325- }
326+ #[cfg(target_has_atomic = $size)]
327+ use core::sync::atomic::$atom;
328+ #[cfg(target_has_atomic = $size)]
329+ impl BitElement<$atom> {
330+ /// Creates a new element wrapper from a raw integer.
331+ pub const fn new(elem: $bare) -> Self {
332+ Self {
333+ elem: <$atom>::new(elem),
334 }
335 }
336- });
337+ }
338 )+ };
339 }
340
341 element! {
342- 8, u8 => AtomicU8;
343- 16, u16 => AtomicU16;
344- 32, u32 => AtomicU32;
345+ "8", u8 => AtomicU8;
346+ "16", u16 => AtomicU16;
347+ "32", u32 => AtomicU32;
348 }
349
350 #[cfg(target_pointer_width = "64")]
351-element!(64, u64 => AtomicU64);
352+element!("64", u64 => AtomicU64);
353
354-element!(size, usize => AtomicUsize);
355+element!("ptr", usize => AtomicUsize);
356
357 #[cfg(test)]
358 mod tests {
359--- a/src/serdes.rs
360+++ b/src/serdes.rs
361@@ -112,36 +112,39 @@ mod tests {
362 Msb0 @ RadiumU8, RadiumU16, RadiumU32, RadiumUsize;
363 LocalBits @ RadiumU8, RadiumU16, RadiumU32, RadiumUsize;
364 }
365- radium::if_atomic! {
366- if atomic(8) {
367- check_impl! {
368- Lsb0 @ AtomicU8;
369- Msb0 @ AtomicU8;
370- LocalBits @ AtomicU8;
371- }
372+ #[cfg(target_has_atomic = "8")]
373+ {
374+ check_impl! {
375+ Lsb0 @ AtomicU8;
376+ Msb0 @ AtomicU8;
377+ LocalBits @ AtomicU8;
378 }
379- if atomic(16) {
380- check_impl! {
381- Lsb0 @ AtomicU16;
382- Msb0 @ AtomicU16;
383- LocalBits @ AtomicU16;
384- }
385+ }
386+ #[cfg(target_has_atomic = "16")]
387+ {
388+ check_impl! {
389+ Lsb0 @ AtomicU16;
390+ Msb0 @ AtomicU16;
391+ LocalBits @ AtomicU16;
392 }
393- if atomic(32) {
394- check_impl! {
395- Lsb0 @ AtomicU32;
396- Msb0 @ AtomicU32;
397- LocalBits @ AtomicU32;
398- }
399+ }
400+ #[cfg(target_has_atomic = "32")]
401+ {
402+ check_impl! {
403+ Lsb0 @ AtomicU32;
404+ Msb0 @ AtomicU32;
405+ LocalBits @ AtomicU32;
406 }
407- if atomic(ptr) {
408- check_impl! {
409- Lsb0 @ AtomicUsize;
410- Msb0 @ AtomicUsize;
411- LocalBits @ AtomicUsize;
412- }
413+ }
414+ #[cfg(target_has_atomic = "ptr")]
415+ {
416+ check_impl! {
417+ Lsb0 @ AtomicUsize;
418+ Msb0 @ AtomicUsize;
419+ LocalBits @ AtomicUsize;
420 }
421 }
422+
423 #[cfg(target_pointer_width = "64")]
424 check_impl! {
425 Lsb0 @ u64, RadiumU64;
426@@ -149,12 +152,13 @@ mod tests {
427 LocalBits @ u64, RadiumU64;
428 }
429 #[cfg(target_pointer_width = "64")]
430- radium::if_atomic!(if atomic(64) {
431+ #[cfg(target_has_atomic = "64")]
432+ {
433 check_impl! {
434 Lsb0 @ AtomicU64;
435 Msb0 @ AtomicU64;
436 LocalBits @ AtomicU64;
437 }
438- });
439+ }
440 }
441 }
442--- a/src/store.rs
443+++ b/src/store.rs
444@@ -199,49 +199,49 @@ store!(usize => BitSafeUsize);
445 /// Generates `BitStore` implementations for atomic types.
446 macro_rules! atomic {
447 ($($size:tt, $base:ty => $atom:ident);+ $(;)?) => { $(
448- radium::if_atomic!(if atomic($size) {
449- use core::sync::atomic::$atom;
450+ #[cfg(target_has_atomic = $size)]
451+ use core::sync::atomic::$atom;
452
453- impl BitStore for $atom {
454- type Mem = $base;
455- type Access = Self;
456- type Alias = Self;
457- type Unalias = Self;
458-
459- const ZERO: Self = <Self>::new(0);
460-
461- #[inline]
462- fn new(value: Self::Mem) -> Self { <Self>::new(value) }
463-
464- #[inline]
465- fn load_value(&self) -> Self::Mem {
466- self.load(core::sync::atomic::Ordering::Relaxed)
467- }
468-
469- #[inline]
470- fn store_value(&mut self, value: Self::Mem) {
471- *self = Self::new(value);
472- }
473-
474- const ALIGNED_TO_SIZE: [(); 1]
475- = [(); mem::aligned_to_size::<Self>() as usize];
476+ #[cfg(target_has_atomic = $size)]
477+ impl BitStore for $atom {
478+ type Mem = $base;
479+ type Access = Self;
480+ type Alias = Self;
481+ type Unalias = Self;
482+
483+ const ZERO: Self = <Self>::new(0);
484+
485+ #[inline]
486+ fn new(value: Self::Mem) -> Self { <Self>::new(value) }
487+
488+ #[inline]
489+ fn load_value(&self) -> Self::Mem {
490+ self.load(core::sync::atomic::Ordering::Relaxed)
491+ }
492
493- const ALIAS_WIDTH: [(); 1] = [()];
494+ #[inline]
495+ fn store_value(&mut self, value: Self::Mem) {
496+ *self = Self::new(value);
497 }
498- });
499+
500+ const ALIGNED_TO_SIZE: [(); 1]
501+ = [(); mem::aligned_to_size::<Self>() as usize];
502+
503+ const ALIAS_WIDTH: [(); 1] = [()];
504+ }
505 )+ };
506 }
507
508 atomic! {
509- 8, u8 => AtomicU8;
510- 16, u16 => AtomicU16;
511- 32, u32 => AtomicU32;
512+ "8", u8 => AtomicU8;
513+ "16", u16 => AtomicU16;
514+ "32", u32 => AtomicU32;
515 }
516
517 #[cfg(target_pointer_width = "64")]
518-atomic!(64, u64 => AtomicU64);
519+atomic!("64", u64 => AtomicU64);
520
521-atomic!(size, usize => AtomicUsize);
522+atomic!("ptr", usize => AtomicUsize);
523
524 #[cfg(test)]
525 mod tests {
526@@ -265,11 +265,12 @@ mod tests {
527 cell.store_value(39);
528 assert_eq!(cell.load_value(), 39);
529
530- radium::if_atomic!(if atomic(size) {
531+ #[cfg(target_has_atomic = "ptr")]
532+ {
533 let mut atom = AtomicUsize::new(0);
534 atom.store_value(57);
535 assert_eq!(atom.load_value(), 57);
536- });
537+ }
538 }
539
540 /// Unaliased `BitSlice`s are universally threadsafe, because they satisfy
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-cargo.toml-Update-bitvec-to-use-radium-1.x.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-cargo.toml-Update-bitvec-to-use-radium-1.x.patch
new file mode 100644
index 0000000000..4f2012e8a2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-cargo.toml-Update-bitvec-to-use-radium-1.x.patch
@@ -0,0 +1,59 @@
1From 560c73cffabc1c2e66552d7c248c0928211d3dea Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 19 Apr 2025 00:09:42 -0700
4Subject: [PATCH] cargo.toml: Update bitvec to use radium 1.x
5
6Upstream-Status: Submitted [https://github.com/ferrilab/bitvec/pull/220]
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 Cargo.lock | 25 +++++++++++++++++++++++--
11 Cargo.toml | 1 +
12 2 files changed, 24 insertions(+), 2 deletions(-)
13
14--- a/Cargo.toml
15+++ b/Cargo.toml
16@@ -27,6 +27,8 @@ include = [
17 rust-version = "1.75"
18
19 [dependencies]
20+#bitvec = { git = "https://github.com/alexanderkjall/bitvec", branch = "upgrade-radium-to-1" }
21+radium = "1"
22 # TODO it would be very nice to remove the "py-clone" feature as it can panic,
23 # but needs a bit of work to make sure it's not used in the codebase
24 pyo3 = { version = "0.24", features = ["generate-import-lib", "num-bigint", "py-clone"] }
25--- a/Cargo.lock
26+++ b/Cargo.lock
27@@ -43,7 +43,7 @@ source = "registry+https://github.com/ru
28 checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
29 dependencies = [
30 "funty",
31- "radium",
32+ "radium 1.1.0",
33 "tap",
34 "wyz",
35 ]
36@@ -436,6 +436,7 @@ dependencies = [
37 "num-traits",
38 "pyo3",
39 "pyo3-build-config",
40+ "radium 1.1.0",
41 "regex",
42 "serde",
43 "serde_json",
44@@ -538,6 +539,15 @@ source = "registry+https://github.com/ru
45 checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
46
47 [[package]]
48+name = "radium"
49+version = "1.1.0"
50+source = "registry+https://github.com/rust-lang/crates.io-index"
51+checksum = "db0b76288902db304c864a12046b73d2d895cc34a4bb8137baaeebe9978a072c"
52+dependencies = [
53+ "cfg-if",
54+]
55+
56+[[package]]
57 name = "regex"
58 version = "1.11.1"
59 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest b/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest
deleted file mode 100644
index 8d2017d39c..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
1#!/bin/sh
2
3pytest --automake