From 480e3e467836e9b6bd38d4624fefd38accfbbdeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Fri, 19 Jul 2024 21:09:50 +0200 Subject: [PATCH] get rid of sage_eval in grobner_fan --- src/sage/rings/polynomial/groebner_fan.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/polynomial/groebner_fan.py b/src/sage/rings/polynomial/groebner_fan.py index 83877f35072..a10508c4bf1 100644 --- a/src/sage/rings/polynomial/groebner_fan.py +++ b/src/sage/rings/polynomial/groebner_fan.py @@ -58,11 +58,10 @@ """ import string +import re import pexpect from subprocess import PIPE, Popen -from sage.misc.sage_eval import sage_eval - from sage.structure.sage_object import SageObject from sage.interfaces.gfan import gfan from .multi_polynomial_ideal import is_MPolynomialIdeal @@ -983,8 +982,9 @@ def weight_vectors(self): stdin=PIPE, stdout=PIPE, stderr=PIPE) ans, err = gfan_processes.communicate(input=str_to_bytes(self.gfan())) ans = bytes_to_str(ans) - ans = sage_eval(ans.replace('{', '').replace('}', '').replace('\n', '')) - return [vector(QQ, x) for x in ans] + vect = re.compile(r"\([0-9,/\s]*\)") + ans = (tup[1:-1].split(',') for tup in vect.findall(ans)) + return [vector(QQ, [QQ(y) for y in x]) for x in ans] def ring(self): """