diff --git a/src/sage/rings/padics/witt_vector.py b/src/sage/rings/padics/witt_vector.py index 4712732b9da..711d1c6686c 100644 --- a/src/sage/rings/padics/witt_vector.py +++ b/src/sage/rings/padics/witt_vector.py @@ -83,10 +83,9 @@ def __init__(self, parent, vec=None): self._prec = parent.precision() B = parent.coefficient_ring() if vec is not None: - if isinstance(vec, int) or isinstance(vec, Integer): + if isinstance(vec, (int, Integer)): self._int_to_vector(vec, parent) - elif (isinstance(vec, tuple) or isinstance(vec, list) - or isinstance(vec, WittVector)): + elif isinstance(vec, (tuple, list, WittVector)): if len(vec) < self._prec: raise ValueError(f"{vec} has not the correct length, " "expected length has to be at least " @@ -420,15 +419,13 @@ def __init__(self, parent, vec=None, phantom=None): R = parent.coefficient_ring() p = parent.prime() base = R - if (isinstance(R, PolynomialRing_generic) - or isinstance(R, MPolynomialRing_base)): + if isinstance(R, (PolynomialRing_generic, MPolynomialRing_base)): base = R.base() base_lift = QqFP(base.cardinality(), prec=self._prec, modulus=base.modulus(), names=(base.variable_name(),), res_name=base.variable_name()) lift = base_lift - if (isinstance(R, PolynomialRing_generic) - or isinstance(R, MPolynomialRing_base)): + if isinstance(R, (PolynomialRing_generic, MPolynomialRing_base)): lift = R.change_ring(base_lift) if phantom is not None: self._phantom = phantom @@ -442,13 +439,12 @@ def __init__(self, parent, vec=None, phantom=None): self._coordinates = vec.coordinates() self._phantom = vec._phantom self._powers = vec._powers - elif isinstance(vec, int) or isinstance(vec, Integer): + elif isinstance(vec, (int, Integer)): self._int_to_vector(vec, parent) y = base_lift(vec) self._powers = [y] self._phantom = self._prec * [y] - elif (isinstance(vec, tuple) or isinstance(vec, list) - or isinstance(vec, WittVector)): + elif isinstance(vec, (tuple, list, WittVector)): if len(vec) < self._prec: raise ValueError(f"{vec} has not the correct length, " "expected length has to be at least " diff --git a/src/sage/rings/padics/witt_vector_ring.py b/src/sage/rings/padics/witt_vector_ring.py index c4630f51b44..9b86c92d962 100644 --- a/src/sage/rings/padics/witt_vector_ring.py +++ b/src/sage/rings/padics/witt_vector_ring.py @@ -217,7 +217,7 @@ def __classcall_private__(cls, coefficient_ring, prec=1, p=None, algorithm=None) """ if coefficient_ring not in CommutativeRings(): raise TypeError(f"{coefficient_ring} is not a commutative ring") - elif not (isinstance(prec, int) or isinstance(prec, Integer)): + elif not isinstance(prec, (int, Integer)): raise TypeError(f"{prec} is not an integer") elif prec <= 0: raise ValueError(f"{prec} must be positive") @@ -801,7 +801,7 @@ class WittVectorRing_phantom(WittVectorRing): sage: W = WittVectorRing(QQ, p=23, prec=3, algorithm='phantom') Traceback (most recent call last): ... - ValueError: the 'phantom' algorithm only works when the coefficient ring is a finite field of p, or a polynomial ring on that field + ValueError: the 'phantom' algorithm only works when the coefficient ring is a finite field of char. p, or a polynomial ring on that field """ Element = WittVector_phantom @@ -819,15 +819,17 @@ def __init__(self, coefficient_ring, prec, prime) -> None: sage: TestSuite(W).run() """ - if not (coefficient_ring.characteristic() == prime - and (coefficient_ring in Fields().Finite() - or ((isinstance(coefficient_ring, PolynomialRing_generic) - or isinstance(coefficient_ring, - MPolynomialRing_base)) - and coefficient_ring.base() in Fields().Finite()))): - raise ValueError("the 'phantom' algorithm only works when the " - "coefficient ring is a finite field of " - "p, or a polynomial ring on that field") + msg = "the 'phantom' algorithm only works when the coefficient ring is"\ + " a finite field of char. p, or a polynomial ring on that field" + + if coefficient_ring.characteristic() != prime: + raise ValueError(msg) + + if not (coefficient_ring in Fields().Finite() or + (isinstance(coefficient_ring, (PolynomialRing_generic, + MPolynomialRing_base)) and + coefficient_ring.base() in Fields().Finite())): + raise ValueError(msg) if (coefficient_ring in Fields().Finite() or isinstance(coefficient_ring,