of course but to be honest still don't understand the problem i am facing i can't really determine if it's my setup problem or this an existing issue in the source code itself
On Sun, Mar 15, 2026 at 2:34 AM Travis Scrimshaw <[email protected]> wrote: > It seems to me you would certainly want the interface to work in a manner > that is consistent with the other interfaces. > > Best, > Travis > > > On Sunday, March 15, 2026 at 1:07:37 AM UTC+9 [email protected] wrote: > >> >> so i have install the package >> `pip install mathics3` and i get this huge error log >> would this be the objective of the project 'Improve integration with >> Mathics' >> or this an isolated error for machine because i can't really i identify >> the error >> i thought it was a mismatch in npmath package but that didn't solve it >> and there are a problem when calling the .sage() function to convert the >> object to a sageobj >> (sage-dev) >>> sage [develop] pip list | grep -i mathics >> Mathics_Scanner 2.0.0 >> Mathics3 9.0.0 >> (sage-dev) >>> sage [develop] python --version >> Python 3.12.12 >> (sage-dev) >>> sage [develop] which python >> /home/rashad/.conda/envs/sage-dev/bin/python >> (sage-dev) >>> sage [develop] >> (sage-dev) >>> sage [develop] ./sage >> ┌────────────────────────────────────────────────────────────────────┐ >> │ SageMath version 10.9.beta7, Release Date: 2026-02-25 │ >> │ Using Python 3.12.12. Type "help()" for help. │ >> └────────────────────────────────────────────────────────────────────┘ >> ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ >> ┃ Warning: this is a prerelease version, and it may be unstable. ┃ >> ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ >> sage: from sage.interfaces.mathics import mathics >> sage: mobj = mathics(x^2 - 1); mobj >> >> --------------------------------------------------------------------------- >> AttributeError Traceback (most recent call >> last) >> File ~/sage/sage/src/sage/interfaces/interface.py:329, in >> Interface._coerce_from_special_method(self, x) >> 328 try: >> --> 329 return (x.__getattribute__(s))(self) >> 330 except AttributeError: >> >> File sage/structure/sage_object.pyx:979, in >> sage.structure.sage_object.SageObject._mathics_() >> >> File sage/symbolic/expression.pyx:1123, in >> sage.symbolic.expression.Expression._interface_() >> >> File sage/structure/sage_object.pyx:723, in >> sage.structure.sage_object.SageObject._interface_() >> >> File ~/sage/sage/src/sage/interfaces/interface.py:294, in >> Interface.__call__(self, x, name) >> 293 if isinstance(x, str): >> --> 294 return cls(self, x, name=name) >> 295 try: >> 296 # Special methods do not and should not have an option to >> 297 # set the name directly, as the identifier assigned by the >> 298 # interface should stay consistent. An identifier with a >> 299 # user-assigned name might change its value, so we return a >> 300 # new element. >> >> File ~/sage/sage/src/sage/interfaces/interface.py:732, in >> InterfaceElement.__init__(self, parent, value, is_name, name) >> 731 try: >> --> 732 self._name = parent._create(value, name=name) >> 733 except (TypeError, RuntimeError, ValueError) as x: >> >> File ~/sage/sage/src/sage/interfaces/interface.py:515, in >> Interface._create(self, value, name) >> 514 name = self._next_var_name() if name is None else name >> --> 515 self.set(name, value) >> 516 return name >> >> File ~/sage/sage/src/sage/interfaces/mathics.py:596, in Mathics.set(self, >> var, value) >> 595 cmd = f'{var}={value};' >> --> 596 _ = self.eval(cmd) >> >> File ~/sage/sage/src/sage/interfaces/mathics.py:579, in >> Mathics.eval(self, code, *args, **kwds) >> 570 """ >> 571 Evaluates a command inside the Mathics interpreter and returns >> the output >> 572 in printable form. >> (...) 577 '2' >> 578 """ >> --> 579 res = self._eval(code) >> 580 if res.result == 'Null': >> >> File ~/sage/sage/src/sage/interfaces/mathics.py:562, in >> Mathics._eval(self, code) >> 553 """ >> 554 Evaluates a command inside the Mathics interpreter and returns >> the output >> 555 as a Mathics result. >> (...) 560 <Integer: 2> >> 561 """ >> --> 562 self._lazy_init() >> 563 S = self._session >> >> File ~/sage/sage/src/sage/interfaces/mathics.py:499, in >> Mathics._lazy_init(self) >> 498 self._initialized = True >> --> 499 self._start() >> >> File ~/sage/sage/src/sage/interfaces/mathics.py:514, in >> Mathics._start(self) >> 513 if not self._session: >> --> 514 from mathics.session import MathicsSession >> 515 from mathics.core.load_builtin import import_and_load_builtins >> >> File >> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/session.py:19 >> 17 from mathics_scanner.location import ContainerKind >> ---> 19 from mathics.core.definitions import Definitions >> 20 from mathics.core.evaluation import Evaluation, Result >> >> File >> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/definitions.py:17 >> 15 from mathics_scanner.tokeniser import full_names_pattern >> ---> 17 from mathics.core.atoms import Integer, String >> 18 from mathics.core.attributes import A_NO_ATTRIBUTES >> >> File >> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/atoms.py:50 >> 47 T = TypeVar("T") >> ---> 50 class Number(Atom, ImmutableValueMixin, NumericOperators, >> Generic[T]): >> 51 """ >> 52 Different kinds of Mathics Numbers, the main built-in >> subclasses >> 53 being: Integer, Rational, Real, Complex. >> 54 """ >> >> File >> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/atoms.py:119, >> in Number() >> 117 return True >> --> 119 def to_mpmath(self, precision: Optional[int] = None) -> >> mpmath.ctx_mp_python.mpf: >> 120 """ >> 121 Convert self.value to an mpmath number with precision >> ``precision`` >> 122 If ``precision`` is None, use mpmath's default precision. >> (...) 127 change the implementation accordingly. >> 128 """ >> >> AttributeError: module 'mpmath.ctx_mp_python' has no attribute 'mpf' >> >> During handling of the above exception, another exception occurred: >> >> TypeError Traceback (most recent call >> last) >> Cell In[2], line 1 >> ----> 1 mobj = mathics(x**Integer(2) - Integer(1)); mobj >> >> File ~/sage/sage/src/sage/interfaces/interface.py:301, in >> Interface.__call__(self, x, name) >> 294 return cls(self, x, name=name) >> 295 try: >> 296 # Special methods do not and should not have an option to >> 297 # set the name directly, as the identifier assigned by the >> 298 # interface should stay consistent. An identifier with a >> 299 # user-assigned name might change its value, so we return a >> 300 # new element. >> --> 301 result = self._coerce_from_special_method(x) >> 302 return result if name is None else result.name(new_name=name) >> 303 except TypeError: >> >> File ~/sage/sage/src/sage/interfaces/interface.py:331, in >> Interface._coerce_from_special_method(self, x) >> 329 return (x.__getattribute__(s))(self) >> 330 except AttributeError: >> --> 331 return self(x._interface_init_()) >> >> File sage/symbolic/expression.pyx:1151, in >> sage.symbolic.expression.Expression._interface_init_() >> >> TypeError: _interface_init_() takes exactly 1 positional argument (0 >> given) >> sage: >> >> -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/sage-devel/4ea9449d-9ead-4f51-81d6-e51a0624fa29n%40googlegroups.com > <https://groups.google.com/d/msgid/sage-devel/4ea9449d-9ead-4f51-81d6-e51a0624fa29n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/sage-devel/CAF6XCME-Ju7Wa-Ot7gwRQ1Y3ZCNwhQBUwT8SW1jqM49rW6%3DCqw%40mail.gmail.com.
