Skip to content

Commit 3f5789f

Browse files
authored
Update to PyO3 and numpy v0.23 (#88)
1 parent b35a81f commit 3f5789f

14 files changed

+45
-47
lines changed

.github/workflows/documentation.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: Setup python
1616
uses: actions/setup-python@v5
1717
with:
18-
python-version: 3.9
18+
python-version: 3.11
1919
- name: Install python dependencies
2020
run: |
2121
pip install sphinx sphinx-rtd-theme

.github/workflows/release.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- uses: actions/checkout@v4
3030
- uses: actions/setup-python@v5
3131
with:
32-
python-version: 3.9
32+
python-version: 3.11
3333
- name: Build Wheels
3434
uses: PyO3/maturin-action@v1
3535
with:
@@ -43,12 +43,12 @@ jobs:
4343
path: dist
4444

4545
macos-x86_64:
46-
runs-on: macos-12
46+
runs-on: macos-14
4747
steps:
4848
- uses: actions/checkout@v4
4949
- uses: actions/setup-python@v5
5050
with:
51-
python-version: 3.9
51+
python-version: 3.11
5252
architecture: x64
5353
- name: Build wheels - x86_64
5454
uses: PyO3/maturin-action@v1
@@ -66,7 +66,7 @@ jobs:
6666
- uses: actions/checkout@v4
6767
- uses: actions/setup-python@v5
6868
with:
69-
python-version: 3.9
69+
python-version: 3.11
7070
architecture: arm64
7171
- name: Build wheels - aarch64
7272
uses: PyO3/maturin-action@v1
@@ -84,7 +84,7 @@ jobs:
8484
- uses: actions/checkout@v4
8585
- uses: actions/setup-python@v5
8686
with:
87-
python-version: 3.9
87+
python-version: 3.11
8888
architecture: x64
8989
- name: Build wheels
9090
uses: PyO3/maturin-action@v1
@@ -109,7 +109,7 @@ jobs:
109109
merge-multiple: true
110110
- uses: actions/setup-python@v5
111111
with:
112-
python-version: 3.9
112+
python-version: 3.11
113113
- name: Publish to PyPi
114114
env:
115115
TWINE_USERNAME: __token__

.github/workflows/wheels.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- uses: actions/checkout@v4
1212
- uses: actions/setup-python@v5
1313
with:
14-
python-version: 3.9
14+
python-version: 3.11
1515
- name: Build Wheels
1616
uses: PyO3/maturin-action@v1
1717
with:
@@ -24,12 +24,12 @@ jobs:
2424
name: wheel-linux-x86_64
2525
path: dist
2626
macos-x86_64:
27-
runs-on: macos-12
27+
runs-on: macos-14
2828
steps:
2929
- uses: actions/checkout@v4
3030
- uses: actions/setup-python@v5
3131
with:
32-
python-version: 3.9
32+
python-version: 3.11
3333
architecture: x64
3434
- name: Build wheels - x86_64
3535
uses: PyO3/maturin-action@v1
@@ -47,7 +47,7 @@ jobs:
4747
- uses: actions/checkout@v4
4848
- uses: actions/setup-python@v5
4949
with:
50-
python-version: 3.9
50+
python-version: 3.11
5151
architecture: arm64
5252
- name: Build wheels - aarch64
5353
uses: PyO3/maturin-action@v1
@@ -65,7 +65,7 @@ jobs:
6565
- uses: actions/checkout@v4
6666
- uses: actions/setup-python@v5
6767
with:
68-
python-version: 3.9
68+
python-version: 3.11
6969
architecture: x64
7070
- name: Build wheels
7171
uses: PyO3/maturin-action@v1

Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ name = "num_dual"
2323
num-traits = "0.2"
2424
nalgebra = "0.33"
2525
ndarray = { version = "0.16", optional = true }
26-
numpy = { version = "0.22", optional = true }
26+
numpy = { version = "0.23", optional = true }
2727
approx = "0.5"
2828
simba = "0.9"
2929
serde = { version = "1.0", features = ["derive"], optional = true }
3030

3131
[dependencies.pyo3]
32-
version = "0.22"
32+
version = "0.23"
3333
optional = true
3434
features = ["multiple-pymethods", "extension-module", "abi3", "abi3-py37"]
3535

src/derivative.rs

+9-11
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ where
167167
}
168168
}
169169

170-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Mul<T> for &'a Derivative<T, F, R, C>
170+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Mul<T> for &Derivative<T, F, R, C>
171171
where
172172
DefaultAllocator: Allocator<R, C>,
173173
{
@@ -178,8 +178,8 @@ where
178178
}
179179
}
180180

181-
impl<'a, 'b, T: DualNum<F>, F, R: Dim, C: Dim, R2: Dim, C2: Dim> Mul<&'b Derivative<T, F, R2, C2>>
182-
for &'a Derivative<T, F, R, C>
181+
impl<T: DualNum<F>, F, R: Dim, C: Dim, R2: Dim, C2: Dim> Mul<&Derivative<T, F, R2, C2>>
182+
for &Derivative<T, F, R, C>
183183
where
184184
DefaultAllocator: Allocator<R, C> + Allocator<R2, C2> + Allocator<R, C2>,
185185
ShapeConstraint: SameNumberOfRows<C, R2>,
@@ -202,7 +202,7 @@ where
202202
}
203203
}
204204

205-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Div<T> for &'a Derivative<T, F, R, C>
205+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Div<T> for &Derivative<T, F, R, C>
206206
where
207207
DefaultAllocator: Allocator<R, C>,
208208
{
@@ -250,8 +250,7 @@ where
250250
}
251251
}
252252

253-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Add<&'a Derivative<T, F, R, C>>
254-
for Derivative<T, F, R, C>
253+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Add<&Derivative<T, F, R, C>> for Derivative<T, F, R, C>
255254
where
256255
DefaultAllocator: Allocator<R, C>,
257256
{
@@ -267,7 +266,7 @@ where
267266
}
268267
}
269268

270-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Add for &'a Derivative<T, F, R, C>
269+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Add for &Derivative<T, F, R, C>
271270
where
272271
DefaultAllocator: Allocator<R, C>,
273272
{
@@ -299,8 +298,7 @@ where
299298
}
300299
}
301300

302-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Sub<&'a Derivative<T, F, R, C>>
303-
for Derivative<T, F, R, C>
301+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Sub<&Derivative<T, F, R, C>> for Derivative<T, F, R, C>
304302
where
305303
DefaultAllocator: Allocator<R, C>,
306304
{
@@ -316,7 +314,7 @@ where
316314
}
317315
}
318316

319-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Sub for &'a Derivative<T, F, R, C>
317+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Sub for &Derivative<T, F, R, C>
320318
where
321319
DefaultAllocator: Allocator<R, C>,
322320
{
@@ -332,7 +330,7 @@ where
332330
}
333331
}
334332

335-
impl<'a, T: DualNum<F>, F, R: Dim, C: Dim> Neg for &'a Derivative<T, F, R, C>
333+
impl<T: DualNum<F>, F, R: Dim, C: Dim> Neg for &Derivative<T, F, R, C>
336334
where
337335
DefaultAllocator: Allocator<R, C>,
338336
{

src/dual.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ impl<T: DualNum<F>, F: Float> Dual<T, F> {
9494
}
9595

9696
/* product rule */
97-
impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual<T, F>> for &'b Dual<T, F> {
97+
impl<T: DualNum<F>, F: Float> Mul<&Dual<T, F>> for &Dual<T, F> {
9898
type Output = Dual<T, F>;
9999
#[inline]
100100
fn mul(self, other: &Dual<T, F>) -> Self::Output {
@@ -106,7 +106,7 @@ impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual<T, F>> for &'b Dual<T, F> {
106106
}
107107

108108
/* quotient rule */
109-
impl<'a, 'b, T: DualNum<F>, F: Float> Div<&'a Dual<T, F>> for &'b Dual<T, F> {
109+
impl<T: DualNum<F>, F: Float> Div<&Dual<T, F>> for &Dual<T, F> {
110110
type Output = Dual<T, F>;
111111
#[inline]
112112
fn div(self, other: &Dual<T, F>) -> Dual<T, F> {

src/dual2.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ impl<T: DualNum<F>, F: Float> Dual2<T, F> {
129129
}
130130

131131
/* product rule */
132-
impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual2<T, F>> for &'b Dual2<T, F> {
132+
impl<T: DualNum<F>, F: Float> Mul<&Dual2<T, F>> for &Dual2<T, F> {
133133
type Output = Dual2<T, F>;
134134
#[inline]
135135
fn mul(self, other: &Dual2<T, F>) -> Dual2<T, F> {
@@ -145,7 +145,7 @@ impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual2<T, F>> for &'b Dual2<T, F> {
145145
}
146146

147147
/* quotient rule */
148-
impl<'a, 'b, T: DualNum<F>, F: Float> Div<&'a Dual2<T, F>> for &'b Dual2<T, F> {
148+
impl<T: DualNum<F>, F: Float> Div<&Dual2<T, F>> for &Dual2<T, F> {
149149
type Output = Dual2<T, F>;
150150
#[inline]
151151
fn div(self, other: &Dual2<T, F>) -> Dual2<T, F> {

src/dual2_vec.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ where
129129
}
130130

131131
/* product rule */
132-
impl<'a, 'b, T: DualNum<F>, F: Float, D: Dim> Mul<&'a Dual2Vec<T, F, D>> for &'b Dual2Vec<T, F, D>
132+
impl<T: DualNum<F>, F: Float, D: Dim> Mul<&Dual2Vec<T, F, D>> for &Dual2Vec<T, F, D>
133133
where
134134
DefaultAllocator: Allocator<U1, D> + Allocator<D, D>,
135135
{
@@ -148,7 +148,7 @@ where
148148
}
149149

150150
/* quotient rule */
151-
impl<'a, 'b, T: DualNum<F>, F: Float, D: Dim> Div<&'a Dual2Vec<T, F, D>> for &'b Dual2Vec<T, F, D>
151+
impl<T: DualNum<F>, F: Float, D: Dim> Div<&Dual2Vec<T, F, D>> for &Dual2Vec<T, F, D>
152152
where
153153
DefaultAllocator: Allocator<U1, D> + Allocator<D, D>,
154154
{

src/dual3.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl<T: DualNum<F>, F: Float> Dual3<T, F> {
103103
}
104104
}
105105

106-
impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual3<T, F>> for &'b Dual3<T, F> {
106+
impl<T: DualNum<F>, F: Float> Mul<&Dual3<T, F>> for &Dual3<T, F> {
107107
type Output = Dual3<T, F>;
108108
#[inline]
109109
fn mul(self, rhs: &Dual3<T, F>) -> Dual3<T, F> {
@@ -120,7 +120,7 @@ impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a Dual3<T, F>> for &'b Dual3<T, F> {
120120
}
121121
}
122122

123-
impl<'a, 'b, T: DualNum<F>, F: Float> Div<&'a Dual3<T, F>> for &'b Dual3<T, F> {
123+
impl<T: DualNum<F>, F: Float> Div<&Dual3<T, F>> for &Dual3<T, F> {
124124
type Output = Dual3<T, F>;
125125
#[inline]
126126
fn div(self, rhs: &Dual3<T, F>) -> Dual3<T, F> {

src/dual_vec.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ where
182182
}
183183

184184
/* product rule */
185-
impl<'a, 'b, T: DualNum<F>, F: Float, D: Dim> Mul<&'a DualVec<T, F, D>> for &'b DualVec<T, F, D>
185+
impl<T: DualNum<F>, F: Float, D: Dim> Mul<&DualVec<T, F, D>> for &DualVec<T, F, D>
186186
where
187187
DefaultAllocator: Allocator<D>,
188188
{
@@ -197,7 +197,7 @@ where
197197
}
198198

199199
/* quotient rule */
200-
impl<'a, 'b, T: DualNum<F>, F: Float, D: Dim> Div<&'a DualVec<T, F, D>> for &'b DualVec<T, F, D>
200+
impl<T: DualNum<F>, F: Float, D: Dim> Div<&DualVec<T, F, D>> for &DualVec<T, F, D>
201201
where
202202
DefaultAllocator: Allocator<D>,
203203
{

src/hyperdual.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl<T: DualNum<F>, F: Float> HyperDual<T, F> {
114114
}
115115

116116
/* product rule */
117-
impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a HyperDual<T, F>> for &'b HyperDual<T, F> {
117+
impl<T: DualNum<F>, F: Float> Mul<&HyperDual<T, F>> for &HyperDual<T, F> {
118118
type Output = HyperDual<T, F>;
119119
#[inline]
120120
fn mul(self, other: &HyperDual<T, F>) -> HyperDual<T, F> {
@@ -131,7 +131,7 @@ impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a HyperDual<T, F>> for &'b HyperDual
131131
}
132132

133133
/* quotient rule */
134-
impl<'a, 'b, T: DualNum<F>, F: Float> Div<&'a HyperDual<T, F>> for &'b HyperDual<T, F> {
134+
impl<T: DualNum<F>, F: Float> Div<&HyperDual<T, F>> for &HyperDual<T, F> {
135135
type Output = HyperDual<T, F>;
136136
#[inline]
137137
fn div(self, other: &HyperDual<T, F>) -> HyperDual<T, F> {

src/hyperdual_vec.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,8 @@ where
163163
}
164164

165165
/* product rule */
166-
impl<'a, 'b, T: DualNum<F>, F: Float, M: Dim, N: Dim> Mul<&'a HyperDualVec<T, F, M, N>>
167-
for &'b HyperDualVec<T, F, M, N>
166+
impl<T: DualNum<F>, F: Float, M: Dim, N: Dim> Mul<&HyperDualVec<T, F, M, N>>
167+
for &HyperDualVec<T, F, M, N>
168168
where
169169
DefaultAllocator: Allocator<M> + Allocator<M, N> + Allocator<U1, N>,
170170
{
@@ -184,8 +184,8 @@ where
184184
}
185185

186186
/* quotient rule */
187-
impl<'a, 'b, T: DualNum<F>, F: Float, M: Dim, N: Dim> Div<&'a HyperDualVec<T, F, M, N>>
188-
for &'b HyperDualVec<T, F, M, N>
187+
impl<T: DualNum<F>, F: Float, M: Dim, N: Dim> Div<&HyperDualVec<T, F, M, N>>
188+
for &HyperDualVec<T, F, M, N>
189189
where
190190
DefaultAllocator: Allocator<M> + Allocator<M, N> + Allocator<U1, N>,
191191
{

src/hyperhyperdual.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ impl<T: DualNum<F>, F: Float> HyperHyperDual<T, F> {
251251
}
252252
}
253253

254-
impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a HyperHyperDual<T, F>> for &'b HyperHyperDual<T, F> {
254+
impl<T: DualNum<F>, F: Float> Mul<&HyperHyperDual<T, F>> for &HyperHyperDual<T, F> {
255255
type Output = HyperHyperDual<T, F>;
256256
#[inline]
257257
fn mul(self, rhs: &HyperHyperDual<T, F>) -> HyperHyperDual<T, F> {
@@ -284,7 +284,7 @@ impl<'a, 'b, T: DualNum<F>, F: Float> Mul<&'a HyperHyperDual<T, F>> for &'b Hype
284284
}
285285
}
286286

287-
impl<'a, 'b, T: DualNum<F>, F: Float> Div<&'a HyperHyperDual<T, F>> for &'b HyperHyperDual<T, F> {
287+
impl<T: DualNum<F>, F: Float> Div<&HyperHyperDual<T, F>> for &HyperHyperDual<T, F> {
288288
type Output = HyperHyperDual<T, F>;
289289
#[inline]
290290
fn div(self, rhs: &HyperHyperDual<T, F>) -> HyperHyperDual<T, F> {

src/python_macro.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ macro_rules! impl_dual_num {
221221
return Ok(Bound::new(rhs.py(), Self(self.0.clone() + r.0))?.into_any());
222222
};
223223
if let Ok(r) = rhs.extract::<PyReadonlyArrayDyn<f64>>() {
224-
return Ok(PyArray::from_owned_object_array_bound(
224+
return Ok(PyArray::from_owned_object_array(
225225
rhs.py(),
226226
r.as_array()
227227
.mapv(|ri| Py::new(rhs.py(), Self(self.0.clone() + ri)).unwrap()),
@@ -267,7 +267,7 @@ macro_rules! impl_dual_num {
267267
return Ok(Bound::new(rhs.py(), Self(self.0.clone() - r.0))?.into_any());
268268
};
269269
if let Ok(r) = rhs.extract::<PyReadonlyArrayDyn<f64>>() {
270-
return Ok(PyArray::from_owned_object_array_bound(
270+
return Ok(PyArray::from_owned_object_array(
271271
rhs.py(),
272272
r.as_array()
273273
.mapv(|ri| Py::new(rhs.py(), Self(self.0.clone() - ri)).unwrap()),
@@ -313,7 +313,7 @@ macro_rules! impl_dual_num {
313313
return Ok(Bound::new(rhs.py(), Self(self.0.clone() * r.0))?.into_any());
314314
};
315315
if let Ok(r) = rhs.extract::<PyReadonlyArrayDyn<f64>>() {
316-
return Ok(PyArray::from_owned_object_array_bound(
316+
return Ok(PyArray::from_owned_object_array(
317317
rhs.py(),
318318
r.as_array()
319319
.mapv(|ri| Py::new(rhs.py(), Self(self.0.clone() * ri)).unwrap()),
@@ -359,7 +359,7 @@ macro_rules! impl_dual_num {
359359
return Ok(Bound::new(rhs.py(), Self(self.0.clone() / r.0))?.into_any());
360360
};
361361
if let Ok(r) = rhs.extract::<PyReadonlyArrayDyn<f64>>() {
362-
return Ok(PyArray::from_owned_object_array_bound(
362+
return Ok(PyArray::from_owned_object_array(
363363
rhs.py(),
364364
r.as_array()
365365
.mapv(|ri| Py::new(rhs.py(), Self(self.0.clone() / ri)).unwrap()),

0 commit comments

Comments
 (0)