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

2022-07-01 Thread Alex J Best
Indeed that should fix it, in the meantime you can run something like

sage: from sage.typeset.ascii_art import AsciiArt
sage: AsciiArt._terminal_width = lambda x: 80

Before running other commands to fix the problem in a given notebook 

On Friday, July 1, 2022 at 3:40:58 AM UTC+2 John H Palmieri wrote:

> 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_

[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 _repr_(self