[sage-support] Re: "Inappropriate ioctl for device" when displaying number in Jupyter notebook

2022-06-30 Thread John H Palmieri
This might be fixed by the change at 
https://trac.sagemath.org/ticket/33996. That will presumably be merged in 
the next beta release, since the ticket was just closed two days ago.


On Thursday, June 30, 2022 at 11:30:11 AM UTC-7 Richard Stanton wrote:

> I've just installed Sagemath 9.6 (Release Date: 2022-05-15) on my Mac 
> running macOS 12.4. If I create a new Sagemath Jupyter notebook starting 
> from Sagemath, everything seems to work fine. However, I'd like to start by 
> just running "jupyter notebook" at the command line.  When I do this and 
> create a new notebook, selecting Sagemath 9.6 as the kernel, the kernel 
> starts up fine and I can run code. However, while `print(2)` correctly 
> displays the number 2, just typing `2` results in the error message shown 
> in the title. Any suggestions? Thanks!
>
> Here's the full error dump:
>
> {{{
>
> --
> OSError   Traceback (most recent call last)
> /var/folders/z_/x5g7y7vd6wqd2kzfnmfdqjjhgn/T/ipykernel_14807/1798176506.py
>  
> in 
> > 1 Integer(2)
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/IPython/core/displayhook.py
>  
> in __call__(self, result)
> 260 self.start_displayhook()
> 261 self.write_output_prompt()
> --> 262 format_dict, md_dict = self.compute_format_data(result)
> 263 self.update_user_ns(result)
> 264 self.fill_exec_result(result)
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/IPython/core/displayhook.py
>  
> in compute_format_data(self, result)
> 149 
> 150 """
> --> 151 return self.shell.display_formatter.format(result)
> 152 
> 153 # This can be set to True by the write_output_prompt method in 
> a subclass
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/display/formatter.py
>  
> in format(self, obj, include, exclude)
> 186 I am repper
> 187 """
> --> 188 sage_format, sage_metadata = self.dm.displayhook(obj)
> 189 assert PLAIN_TEXT in sage_format, 'plain text is always 
> present'
> 190 
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
>  
> in displayhook(self, obj)
> 825 return
> 826 self._backend.set_underscore_variable(obj)
> --> 827 plain_text, rich_output = self._rich_output_formatter(obj, 
> dict())
> 828 return self._backend.displayhook(plain_text, rich_output)
> 829 
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
>  
> in _rich_output_formatter(self, obj, rich_repr_kwds)
> 652 plain_text = self._backend.plain_text_formatter(obj, 
> **rich_repr_kwds)
> 653 if rich_output is None:
> --> 654 rich_output = self._preferred_text_formatter(
> 655 obj, plain_text=plain_text, **rich_repr_kwds)
> 656 # promote output container types to backend-specific 
> containers
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
>  
> in _preferred_text_formatter(self, obj, plain_text, **kwds)
> 550 return out
> 551 if want == 'unicode_art' and OutputUnicodeArt in supported:
> --> 552 out = self._backend.unicode_art_formatter(obj, **kwds)
> 553 if type(out) is not OutputUnicodeArt:
> 554 raise OutputTypeException('backend returned wrong 
> output type, require UnicodeArt')
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/backend_base.py
>  
> in unicode_art_formatter(self, obj, **kwds)
> 425 result = unicode_art(obj)
> 426 from sage.repl.rich_output.output_basic import 
> OutputUnicodeArt
> --> 427 return OutputUnicodeArt(str(result))
> 428 
> 429 def latex_formatter(self, obj, **kwds):
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/structure/sage_object.pyx
>  
> in sage.structure.sage_object.SageObject.__repr__ 
> (build/cythonized/sage/structure/sage_object.c:2558)()
> 192 except AttributeError:
> 193 return super().__repr__()
> --> 194 result = reprfunc()
> 195 if isinstance(result, str):
> 196 return result
>
> /private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/typeset/character_art.py
>  
> in 

[sage-support] "Inappropriate ioctl for device" when displaying number in Jupyter notebook

2022-06-30 Thread Richard Stanton
I've just installed Sagemath 9.6 (Release Date: 2022-05-15) on my Mac 
running macOS 12.4. If I create a new Sagemath Jupyter notebook starting 
from Sagemath, everything seems to work fine. However, I'd like to start by 
just running "jupyter notebook" at the command line.  When I do this and 
create a new notebook, selecting Sagemath 9.6 as the kernel, the kernel 
starts up fine and I can run code. However, while `print(2)` correctly 
displays the number 2, just typing `2` results in the error message shown 
in the title. Any suggestions? Thanks!

Here's the full error dump:

{{{

--
OSError   Traceback (most recent call last)
/var/folders/z_/x5g7y7vd6wqd2kzfnmfdqjjhgn/T/ipykernel_14807/1798176506.py 
in 
> 1 Integer(2)

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/IPython/core/displayhook.py
 
in __call__(self, result)
260 self.start_displayhook()
261 self.write_output_prompt()
--> 262 format_dict, md_dict = self.compute_format_data(result)
263 self.update_user_ns(result)
264 self.fill_exec_result(result)

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/IPython/core/displayhook.py
 
in compute_format_data(self, result)
149 
150 """
--> 151 return self.shell.display_formatter.format(result)
152 
153 # This can be set to True by the write_output_prompt method in 
a subclass

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/display/formatter.py
 
in format(self, obj, include, exclude)
186 I am repper
187 """
--> 188 sage_format, sage_metadata = self.dm.displayhook(obj)
189 assert PLAIN_TEXT in sage_format, 'plain text is always 
present'
190 

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
 
in displayhook(self, obj)
825 return
826 self._backend.set_underscore_variable(obj)
--> 827 plain_text, rich_output = self._rich_output_formatter(obj, 
dict())
828 return self._backend.displayhook(plain_text, rich_output)
829 

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
 
in _rich_output_formatter(self, obj, rich_repr_kwds)
652 plain_text = self._backend.plain_text_formatter(obj, 
**rich_repr_kwds)
653 if rich_output is None:
--> 654 rich_output = self._preferred_text_formatter(
655 obj, plain_text=plain_text, **rich_repr_kwds)
656 # promote output container types to backend-specific 
containers

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/display_manager.py
 
in _preferred_text_formatter(self, obj, plain_text, **kwds)
550 return out
551 if want == 'unicode_art' and OutputUnicodeArt in supported:
--> 552 out = self._backend.unicode_art_formatter(obj, **kwds)
553 if type(out) is not OutputUnicodeArt:
554 raise OutputTypeException('backend returned wrong 
output type, require UnicodeArt')

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/repl/rich_output/backend_base.py
 
in unicode_art_formatter(self, obj, **kwds)
425 result = unicode_art(obj)
426 from sage.repl.rich_output.output_basic import 
OutputUnicodeArt
--> 427 return OutputUnicodeArt(str(result))
428 
429 def latex_formatter(self, obj, **kwds):

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/structure/sage_object.pyx
 
in sage.structure.sage_object.SageObject.__repr__ 
(build/cythonized/sage/structure/sage_object.c:2558)()
192 except AttributeError:
193 return super().__repr__()
--> 194 result = reprfunc()
195 if isinstance(result, str):
196 return result

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/typeset/character_art.py
 
in _repr_(self)
153 hsize = MAX_WIDTH
154 else:
--> 155 hsize = self._terminal_width()
156 # if the draw is larger than the max length, try to split it
157 if hsize <= self._l and self._breakpoints:

/private/var/tmp/sage-9.6-current/local/var/lib/sage/venv-python3.10.3/lib/python3.10/site-packages/sage/typeset/character_art.py
 
in _terminal_width(self)
281 import termios
282