Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit 5d2cc6b

Browse files
author
Matthias Koeppe
committed
PowerSeriesRing_generic._element_constructor_: Only import sage.symbolic.expression.SymbolicSeries after isinstance test with ABC Expression
1 parent 1e8ba0a commit 5d2cc6b

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/sage/rings/power_series_ring.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155

156156
from sage.structure.unique_representation import UniqueRepresentation
157157
from sage.structure.category_object import normalize_names
158-
from sage.structure.element import parent
158+
from sage.structure.element import parent, Expression
159159
import sage.categories.commutative_rings as commutative_rings
160160
_CommutativeRings = commutative_rings.CommutativeRings()
161161
import sage.categories.integral_domains as integral_domains
@@ -796,7 +796,6 @@ def _element_constructor_(self, f, prec=infinity, check=True):
796796
prec = integer.Integer(prec)
797797
if prec < 0:
798798
raise ValueError("prec (= %s) must be non-negative" % prec)
799-
from sage.symbolic.expression import SymbolicSeries
800799
if isinstance(f, power_series_ring_element.PowerSeries) and f.parent() is self:
801800
if prec >= f.prec():
802801
return f
@@ -813,12 +812,14 @@ def _element_constructor_(self, f, prec=infinity, check=True):
813812
num = self.element_class(self, f.numerator(), prec, check=check)
814813
den = self.element_class(self, f.denominator(), prec, check=check)
815814
return self.coerce(num/den)
816-
elif isinstance(f, SymbolicSeries):
817-
if str(f.default_variable()) == self.variable_name():
818-
return self.element_class(self, f.list(),
819-
f.degree(f.default_variable()), check=check)
820-
else:
821-
raise TypeError("Can only convert series into ring with same variable name.")
815+
elif isinstance(f, Expression):
816+
from sage.symbolic.expression import SymbolicSeries
817+
if isinstance(f, SymbolicSeries):
818+
if str(f.default_variable()) == self.variable_name():
819+
return self.element_class(self, f.list(),
820+
f.degree(f.default_variable()), check=check)
821+
else:
822+
raise TypeError("Can only convert series into ring with same variable name.")
822823
return self.element_class(self, f, prec, check=check)
823824

824825
def construction(self):

0 commit comments

Comments
 (0)