Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20442.patch

27 lines
1.2 KiB
Diff

Good, now I have all the information I need. The fix should:
1. Import `NonSquareMatrixError` from `sympy.matrices.common`
2. Change `solve_least_squares` to `solve`
3. Wrap in a try-except to catch `NonSquareMatrixError` and return `None` in that case
--- a/sympy/physics/units/util.py
+++ b/sympy/physics/units/util.py
@@ -4,6 +4,7 @@ Several methods to simplify expressions involving unit objects.
from sympy import Add, Mul, Pow, Tuple, sympify
from sympy.core.compatibility import reduce, Iterable, ordered
+from sympy.matrices.common import NonSquareMatrixError
from sympy.physics.units.dimensions import Dimension
from sympy.physics.units.prefixes import Prefix
from sympy.physics.units.quantities import Quantity
@@ -30,7 +31,10 @@ def _get_conversion_matrix_for_expr(expr, target_units, unit_system):
camat = Matrix([[dimension_system.get_dimensional_dependencies(i, mark_dimensionless=True).get(j, 0) for i in target_dims] for j in canon_dim_units])
exprmat = Matrix([dim_dependencies.get(k, 0) for k in canon_dim_units])
- res_exponents = camat.solve_least_squares(exprmat, method=None)
+ try:
+ res_exponents = camat.solve(exprmat)
+ except NonSquareMatrixError:
+ return None
return res_exponents