(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: