1 | initial version |
There are lots of places in the Sage codebase, including PolynomialRing
, where someone does an isinstance(something, str)
when they should do isinstance(something, basestring)
, where basestring
is the shared parent of str
and unicode
.
In this case:
elif isinstance(arg1, str) or (isinstance(arg1, (list,tuple)) and len(arg1) == 1):
Because of how the branching works, it looks like you could also get away with making the names a list:
sage: from __future__ import unicode_literals
sage: R = PolynomialRing(QQ, 'x')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/Applications/sage/devel/sage-main/sage/<ipython console> in <module>()
/Applications/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.pyc in PolynomialRing(base_ring, arg1, arg2, sparse, order, names, name, implementation)
425 if R is None:
426 raise TypeError("invalid input (%s, %s, %s) to PolynomialRing function; please see the docstring for that function"%(
--> 427 base_ring, arg1, arg2))
428
429 return R
TypeError: invalid input (Rational Field, x, None) to PolynomialRing function; please see the docstring for that function
sage: R = PolynomialRing(QQ, ['x'])
sage:
but this could lead to similar problems elsewhere.