Skip to content

Commit 7f3cd5e

Browse files
committed
Switch from pyrsistent to immutabledict
1 parent 4698624 commit 7f3cd5e

File tree

4 files changed

+14
-16
lines changed

4 files changed

+14
-16
lines changed

.test-conda-env-py3.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ dependencies:
1414
- python=3
1515
- python-symengine
1616
- pyfmmlib
17-
- pyrsistent
1817
- pyvkfft
1918
- mpi4py
2019

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
numpy
22
sympy
3-
pyrsistent
3+
immutabledict
44
pyvkfft
55

66
# used in mpi-based tests

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def write_git_revision(package_name):
111111
"loopy>=2021.1",
112112
"boxtree>=2018.1",
113113
"arraycontext",
114-
"pyrsistent>=0.16.0",
114+
"immutabledict",
115115
"sympy>=0.7.2",
116116
"pymbolic>=2021.1",
117117
"pyvkfft>=2022.1",

sumpy/expansion/diff_op.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import numpy as np
3434
import sympy as sp
3535
import sympy.polys.agca.modules as sp_modules
36-
from pyrsistent import pmap
36+
from immutabledict import immutabledict
3737

3838
from pytools import memoize
3939

@@ -110,12 +110,12 @@ def order(self) -> int:
110110
return deg
111111

112112
def __mul__(self, param: Number_ish) -> LinearPDESystemOperator:
113-
eqs = []
113+
eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = []
114114
for eq in self.eqs:
115115
deriv_ident_to_coeff = {}
116116
for k, v in eq.items():
117117
deriv_ident_to_coeff[k] = v * param
118-
eqs.append(pmap(deriv_ident_to_coeff))
118+
eqs.append(immutabledict(deriv_ident_to_coeff))
119119
return LinearPDESystemOperator(self.dim, tuple(eqs))
120120

121121
__rmul__ = __mul__
@@ -125,15 +125,15 @@ def __add__(
125125
) -> LinearPDESystemOperator:
126126
assert self.dim == other_diff_op.dim
127127
assert len(self.eqs) == len(other_diff_op.eqs)
128-
eqs = []
128+
eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = []
129129
for eq, other_eq in zip(self.eqs, other_diff_op.eqs):
130130
res = dict(eq)
131131
for k, v in other_eq.items():
132132
if k in res:
133133
res[k] += v
134134
else:
135135
res[k] = v
136-
eqs.append(pmap(res))
136+
eqs.append(immutabledict(res))
137137
return LinearPDESystemOperator(self.dim, tuple(eqs))
138138

139139
__radd__ = __add__
@@ -272,7 +272,7 @@ def intersect(
272272
DerivativeIdentifier(mi, 0): sym.sympify(coeff.as_expr().simplify()) for
273273
(mi, coeff) in zip(scalar_pde.monoms(), scalar_pde.coeffs())
274274
}
275-
results.append(LinearPDESystemOperator(pde.dim, (pmap(pde_dict),)))
275+
results.append(LinearPDESystemOperator(pde.dim, (immutabledict(pde_dict),)))
276276

277277
return results
278278

@@ -351,7 +351,7 @@ def as_scalar_pde(pde: LinearPDESystemOperator, comp_idx: int) \
351351
def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator:
352352
dim = diff_op.dim
353353
empty: tuple[Mapping[DerivativeIdentifier, sp.Expr], ...] = \
354-
(pmap(),) * len(diff_op.eqs)
354+
(immutabledict(),) * len(diff_op.eqs)
355355
res = LinearPDESystemOperator(dim, empty)
356356
for j in range(dim):
357357
mi = [0]*diff_op.total_dims
@@ -363,19 +363,19 @@ def laplacian(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator:
363363
def diff(
364364
diff_op: LinearPDESystemOperator, mi: tuple[int, ...]
365365
) -> LinearPDESystemOperator:
366-
eqs = []
366+
eqs: list[Mapping[DerivativeIdentifier, sp.Expr]] = []
367367
for eq in diff_op.eqs:
368368
res = {}
369369
for deriv_ident, v in eq.items():
370370
new_mi = add_mi(deriv_ident.mi, mi)
371371
res[DerivativeIdentifier(new_mi, deriv_ident.vec_idx)] = v
372-
eqs.append(pmap(res))
372+
eqs.append(immutabledict(res))
373373
return LinearPDESystemOperator(diff_op.dim, tuple(eqs))
374374

375375

376376
def divergence(diff_op: LinearPDESystemOperator) -> LinearPDESystemOperator:
377377
assert len(diff_op.eqs) == diff_op.dim
378-
res = LinearPDESystemOperator(diff_op.dim, (pmap(),))
378+
res = LinearPDESystemOperator(diff_op.dim, (immutabledict(),))
379379
for i in range(diff_op.dim):
380380
mi = [0]*diff_op.total_dims
381381
mi[i] = 1
@@ -439,7 +439,6 @@ def make_identity_diff_op(
439439
mi = tuple([0]*(ninput + 1))
440440
else:
441441
mi = tuple([0]*ninput)
442-
eqs = tuple(pmap(
442+
return LinearPDESystemOperator(ninput, tuple(immutabledict(
443443
{DerivativeIdentifier(mi, i): sp.sympify(1)})
444-
for i in range(noutput))
445-
return LinearPDESystemOperator(ninput, eqs)
444+
for i in range(noutput)))

0 commit comments

Comments
 (0)