Skip to content

Commit 203431c

Browse files
author
Release Manager
committed
gh-37142: throw ValueError instead of TypeError when logarithm doesn't exist in AdditiveAbelianGroupWrapper Attempting to run the higher-level algorithms in the `additive_abelian_wrapper.py` file on a group with unhashable elements will also throw a `TypeError`, which leads to very strange behavior (rather than failing with a clear error message, as it should). #sd123 URL: #37142 Reported by: Lorenz Panny Reviewer(s): grhkm21
2 parents 0209c4d + 4d6f31b commit 203431c

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/sage/groups/additive_abelian/additive_abelian_wrapper.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ def discrete_log(self, x, gens=None):
365365
sage: G.discrete_log(V([6, 4]))
366366
Traceback (most recent call last):
367367
...
368-
TypeError: Not in group
368+
ValueError: not in group
369369
370370
::
371371
@@ -617,7 +617,7 @@ def _base(j, k, c):
617617
if key in tab:
618618
return tab[key] + vector(y)
619619

620-
raise TypeError('Not in group')
620+
raise ValueError('not in group')
621621

622622
def _rec(j, k, c):
623623

@@ -744,7 +744,7 @@ def _expand_basis_pgroup(p, alphas, vals, beta, h, rel):
744744
beta_q *= p
745745
try:
746746
e = _discrete_log_pgroup(p, vals, alphas, -beta_q)
747-
except TypeError:
747+
except ValueError:
748748
continue
749749
# step 6
750750
_expand_basis_pgroup(p, alphas, vals, beta, h, list(e) + [p**v])
@@ -815,7 +815,7 @@ def basis_from_generators(gens, ords=None):
815815
beta, ord_beta = pgens.pop()
816816
try:
817817
dlog = _discrete_log_pgroup(p, vals, alphas, beta)
818-
except TypeError:
818+
except ValueError:
819819
pass
820820
else:
821821
continue
@@ -828,7 +828,7 @@ def basis_from_generators(gens, ords=None):
828828
# assert beta_q == beta * p**v
829829
try:
830830
e = _discrete_log_pgroup(p, vals, alphas, -beta_q)
831-
except TypeError:
831+
except ValueError:
832832
continue
833833
_expand_basis_pgroup(p, alphas, vals, beta, val_beta, list(e) + [p**v])
834834
# assert all(a.order() == p**v for a,v in zip(alphas, vals))

src/sage/modules/fg_pid/fgp_module.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ def __contains__(self, x):
702702
try:
703703
self(x)
704704
return True
705-
except TypeError:
705+
except (TypeError, ValueError):
706706
return False
707707

708708
def submodule(self, x):

0 commit comments

Comments
 (0)