From 2b56159ee6a8f9c5553557dbc2f9d9a1d854d383 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 22 Feb 2026 14:10:00 +0200 Subject: [PATCH 1/2] feat: add more constantdict to kernel_arguments --- pytential/linalg/direct_solver_symbolic.py | 7 ++++--- pytential/symbolic/mappers.py | 4 ++-- pytential/symbolic/primitives.py | 14 +++++++++++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/pytential/linalg/direct_solver_symbolic.py b/pytential/linalg/direct_solver_symbolic.py index 5b88a8bea..c0893e83c 100644 --- a/pytential/linalg/direct_solver_symbolic.py +++ b/pytential/linalg/direct_solver_symbolic.py @@ -25,6 +25,7 @@ from typing import TYPE_CHECKING +from constantdict import constantdict from typing_extensions import override from pymbolic.geometric_algebra import componentwise @@ -137,7 +138,7 @@ def map_int_g(self, expr: IntG) -> IntG: target_kernel=target_kernel, source_kernels=source_kernels, densities=self.rec(expr.densities), - kernel_arguments=kernel_arguments) + kernel_arguments=constantdict(kernel_arguments)) # }}} @@ -234,10 +235,10 @@ def map_int_g(self, densities=tuple(self.rec_arith(d) for d in expr.densities), qbx_forced_limit=expr.qbx_forced_limit, source=self.default_source, target=self.default_target, - kernel_arguments={ + kernel_arguments=constantdict({ name: componentwise(self.rec_arith, arg_expr) for name, arg_expr in expr.kernel_arguments.items() - } + }) ) diff --git a/pytential/symbolic/mappers.py b/pytential/symbolic/mappers.py index 3a0842fd0..d437b9113 100644 --- a/pytential/symbolic/mappers.py +++ b/pytential/symbolic/mappers.py @@ -729,10 +729,10 @@ def map_int_g(self, expr: pp.IntG): expr, qbx_forced_limit=None, densities=self.rec(expr.densities), - kernel_arguments={ + kernel_arguments=constantdict({ name: componentwise(self.rec_arith, arg_expr) for name, arg_expr in expr.kernel_arguments.items() - } + }) ) # }}} diff --git a/pytential/symbolic/primitives.py b/pytential/symbolic/primitives.py index 7389f8adf..ccc4ec2d4 100644 --- a/pytential/symbolic/primitives.py +++ b/pytential/symbolic/primitives.py @@ -1938,10 +1938,16 @@ def __init__( **kwargs: Operand ) -> None: if kernel_arguments is None: - kernel_arguments = {} + kernel_arguments = constantdict({}) if isinstance(kernel_arguments, tuple): - kernel_arguments = dict(kernel_arguments) + kernel_arguments = constantdict(kernel_arguments) + + if source is None: + source = DEFAULT_DOFDESC + + if target is None: + target = DEFAULT_DOFDESC if kwargs: warn(f"Passing named '**kwargs' to {type(self).__name__!r} is " @@ -1949,13 +1955,15 @@ def __init__( "'kernel_arguments' argument instead.", DeprecationWarning, stacklevel=2) - kernel_arguments = kernel_arguments.copy() + kernel_arguments = dict(kernel_arguments) for name, value in kwargs.items(): if name in kernel_arguments: raise ValueError(f"'{name}' already set in 'kernel_arguments'") kernel_arguments[name] = value + kernel_arguments = constantdict(kernel_arguments) + object.__setattr__(self, "target_kernel", target_kernel) object.__setattr__(self, "source_kernels", source_kernels) object.__setattr__(self, "densities", densities) From 7ff01f6dc68fecae08e04c372d33fd8e20f77296 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Sun, 22 Feb 2026 15:06:55 +0200 Subject: [PATCH 2/2] chore: update baseline --- .basedpyright/baseline.json | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 70e926c43..14bd3a204 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -12538,7 +12538,7 @@ } }, { - "code": "reportUnknownVariableType", + "code": "reportAny", "range": { "startColumn": 12, "endColumn": 35, @@ -12602,7 +12602,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 34, "endColumn": 57, @@ -12706,7 +12706,7 @@ } }, { - "code": "reportUnknownVariableType", + "code": "reportAny", "range": { "startColumn": 12, "endColumn": 35, @@ -12754,7 +12754,7 @@ } }, { - "code": "reportUnknownArgumentType", + "code": "reportAny", "range": { "startColumn": 37, "endColumn": 60, @@ -18943,14 +18943,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -19367,14 +19359,6 @@ "lineCount": 1 } }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 18, - "lineCount": 1 - } - }, { "code": "reportImplicitOverride", "range": { @@ -29601,6 +29585,14 @@ "lineCount": 1 } }, + { + "code": "reportAbstractUsage", + "range": { + "startColumn": 19, + "endColumn": 18, + "lineCount": 4 + } + }, { "code": "reportCallIssue", "range": { @@ -29729,6 +29721,14 @@ "lineCount": 1 } }, + { + "code": "reportAbstractUsage", + "range": { + "startColumn": 19, + "endColumn": 18, + "lineCount": 4 + } + }, { "code": "reportCallIssue", "range": {