Running:
> from sage.plot.plot3d.shapes2 import Line
> X = Line([(-1, 0, 0), (0, 0, 0), (1, 0, 0)], color='red')
> Y = Line([(0, -1, 0), (0, 0, 0), (0, -1,0)], color='green')
> Z = Line([(0, 0, -1), (0, 0, 0), (0, 0, -1)], color='green')
> show(X+Y+Z, figsize=8)
>
results in a
> TypeError: Object of type Integer is not JSON serializable
>
>
The above works on 8.9 (tested using docker run -p8888:8888
sagemath/sagemath:8.9 sage-jupyter).
Error occurred on Arch Linux distribution using SageMath 9.0 and Python
3.8.1.
The full error trace is:
> TypeError Traceback (most recent call
> last)<ipython-input-1-f86e4a3173d9> in <module> 3 Y = Line([(Integer(0),
> -Integer(1), Integer(0)), (Integer(0), Integer(0), Integer(0)), (Integer(0),
> -Integer(1),Integer(0))], color='green') 4 Z = Line([(Integer(0),
> Integer(0), -Integer(1)), (Integer(0), Integer(0), Integer(0)), (Integer(0),
> Integer(0), -Integer(1))], color='green')----> 5 show(X+Y+Z,
> figsize=Integer(8))
> /usr/lib/python3.8/site-packages/sage/repl/rich_output/pretty_print.py in
> show(*args, **kwds) 256 args[0].show() 257 return-->
> 258 pretty_print(*args, **kwds)
> /usr/lib/python3.8/site-packages/sage/repl/rich_output/pretty_print.py in
> pretty_print(*args, **kwds) 227 pass 228 elif
> len(args) == 1:--> 229 dm.display_immediately(*args, **kwds)
> 230 else: 231 SequencePrettyPrinter(*args,
> **kwds).pretty_print()
> /usr/lib/python3.8/site-packages/sage/repl/rich_output/display_manager.py in
> display_immediately(self, obj, **rich_repr_kwds) 835 1/2
> 836 """--> 837 plain_text, rich_output =
> self._rich_output_formatter(obj, rich_repr_kwds) 838
> self._backend.display_immediately(plain_text, rich_output) 839
> /usr/lib/python3.8/site-packages/sage/repl/rich_output/display_manager.py in
> _rich_output_formatter(self, obj, rich_repr_kwds) 623
> has_rich_repr = isinstance(obj, SageObject) and hasattr(obj, '_rich_repr_')
> 624 if has_rich_repr:--> 625 rich_output =
> self._call_rich_repr(obj, rich_repr_kwds) 626 if
> isinstance(rich_output, OutputPlainText): 627 plain_text =
> rich_output
> /usr/lib/python3.8/site-packages/sage/repl/rich_output/display_manager.py in
> _call_rich_repr(self, obj, rich_repr_kwds) 581 if rich_repr_kwds:
> 582 # do not ignore errors from invalid options--> 583
> return obj._rich_repr_(self, **rich_repr_kwds) 584 try: 585
> return obj._rich_repr_(self)
> /usr/lib/python3.8/site-packages/sage/plot/plot3d/base.pyx in
> sage.plot.plot3d.base.Graphics3d._rich_repr_
> (build/cythonized/sage/plot/plot3d/base.c:5483)() 149 ### Second,
> return the corresponding graphics file 150 if viewer ==
> 'threejs':--> 151 return self._rich_repr_threejs(**opts) 152
> elif viewer == 'jmol': 153 return
> self._rich_repr_jmol(**opts)
> /usr/lib/python3.8/site-packages/sage/plot/plot3d/base.pyx in
> sage.plot.plot3d.base.Graphics3d._rich_repr_threejs
> (build/cythonized/sage/plot/plot3d/base.c:9653)() 409
> thickness = p._extra_kwds.get('thickness', 1) 410
> lines.append('{{"points":{}, "color":"{}", "opacity":{},
> "linewidth":{}}}'.format(--> 411
> json.dumps(p.points), color, opacity, thickness)) 412 if
> hasattr(p, '_trans'): 413 m =
> p.get_transformation().get_matrix()
> /usr/lib/python3.8/json/__init__.py in dumps(obj, skipkeys, ensure_ascii,
> check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
> 229 cls is None and indent is None and separators is None and
> 230 default is None and not sort_keys and not kw):--> 231
> return _default_encoder.encode(obj) 232 if cls is None: 233
> cls = JSONEncoder
> /usr/lib/python3.8/json/encoder.py in encode(self, o) 197 #
> exceptions aren't as detailed. The list call should be roughly 198
> # equivalent to the PySequence_Fast that ''.join() would do.--> 199
> chunks = self.iterencode(o, _one_shot=True) 200 if not
> isinstance(chunks, (list, tuple)): 201 chunks = list(chunks)
> /usr/lib/python3.8/json/encoder.py in iterencode(self, o, _one_shot) 255
> self.key_separator, self.item_separator, self.sort_keys, 256
> self.skipkeys, _one_shot)--> 257 return
> _iterencode(o, 0) 258 259 def _make_iterencode(markers, _default,
> _encoder, _indent, _floatstr,
> /usr/lib/python3.8/json/encoder.py in default(self, o) 177 178
> """--> 179 raise TypeError(f'Object of type {o.__class__.__name__} '
> 180 f'is not JSON serializable') 181
> TypeError: Object of type Integer is not JSON serializable
>
>
--
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 on the web visit
https://groups.google.com/d/msgid/sage-devel/4a7cb74f-0250-4dc8-9bb8-7af3d9d904b6%40googlegroups.com.