Ops, i sent a wrong version. Here is the last one, with added suport for rings over transcendental extensions:
def coerce_ring_from_singular(r): cha=str(r.charstr()) vars=str(r.varstr()).rsplit(',') ch=cha.partition(',')[0] if ch=='real': fiel=RR elif ch=='0': fiel=QQ elif ch=='complex': fiel=ComplexField() else: fiel=GF(sage_eval(ch)) if ',' in cha and ch!='complex' and ch!='real': generator=cha.partition(',')[2] fielx=PolynomialRing(fiel,generator) minpoly=r.ringlist()[1][4][1] minpoly=minpoly.sage_polystring() minpoly=sage_eval(minpoly,locals=fielx.gens_dict()) if minpoly==0: fiel=fielx.fraction_field() else: if ch=='0': fiel=NumberField(minpoly,generator) else: fiel=GF(sage_eval(ch)^minpoly.degree(),generator,modulus=minpoly) R=PolynomialRing(fiel,vars) return R --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---