##// END OF EJS Templates
Use single quotes in sql string literal (#13968)...
Use single quotes in sql string literal (#13968) the SQL spec requires that string literals use single quotes and column references (or other identifiers) use double quotes. sqlite permits the use of double quotes for string literals in "unambiguous cases". For some reason, its understanding of what constitutes unambiguous has changed recently - I'm on FreeBSD 14.0-CURRENT with sqlite 3.41.0 - and attempting to do anything with ipython throws a very strange sqlite operation error: ``` [+] ~% ipython --version (test) audrey@daisy [12:18:02 AM] 8.11.0 [+] ~% ipython (test) audrey@daisy [12:18:04 AM] [TerminalIPythonApp] ERROR | Failed to create history session in /usr/home/audrey/.ipython/profile_default/history.sqlite. History will not be saved. Traceback (most recent call last): File "/usr/home/audrey/.virtualenvs/test/lib/python3.9/site-packages/IPython/core/history.py", line 545, in __init__ self.new_session() File "/usr/home/audrey/.virtualenvs/test/lib/python3.9/site-packages/decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "/usr/home/audrey/.virtualenvs/test/lib/python3.9/site-packages/IPython/core/history.py", line 60, in only_when_enabled return f(self, *a, **kw) File "/usr/home/audrey/.virtualenvs/test/lib/python3.9/site-packages/IPython/core/history.py", line 570, in new_session cur = conn.execute("""INSERT INTO sessions VALUES (NULL, ?, NULL, sqlite3.OperationalError: no such column: Python 3.9.16 (main, Feb 28 2023, 01:31:45) Type 'copyright', 'credits' or 'license' for more information IPython 8.11.0 -- An enhanced Interactive Python. Type '?' for help. ``` This patch fixes it. idk if this constitutes a bug in sqlite3, but this is, I guess, more correct.

File last commit:

r27288:33f5b346
r28168:9a5baf06 merge
Show More
payloadpage.py
51 lines | 1.4 KiB | text/x-python | PythonLexer
Brian Granger
Paging using payloads now works.
r2830 # encoding: utf-8
MinRK
pager payload is a mime-bundle
r16586 """A payload based version of page."""
Brian Granger
Paging using payloads now works.
r2830
MinRK
pager payload is a mime-bundle
r16586 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian Granger
Paging using payloads now works.
r2830
Min RK
add InteractiveShell.display_page config...
r19387 import warnings
MinRK
pager payload is a mime-bundle
r16586 from IPython.core.getipython import get_ipython
Brian Granger
Paging using payloads now works.
r2830
MinRK
pager payload is a mime-bundle
r16586 def page(strng, start=0, screen_lines=0, pager_cmd=None):
Brian Granger
Paging using payloads now works.
r2830 """Print a string, piping through a pager.
This version ignores the screen_lines and pager_cmd arguments and uses
IPython's payload system instead.
Fernando Perez
Provide html support for page() in the payload version....
r3011
Parameters
----------
MinRK
pager payload is a mime-bundle
r16586 strng : str or mime-dict
Matthias Bussonnier
some docstring reformatting and fixing
r27288 Text to page, or a mime-type keyed dict of already formatted data.
Fernando Perez
Provide html support for page() in the payload version....
r3011 start : int
Matthias Bussonnier
some docstring reformatting and fixing
r27288 Starting line at which to place the display.
Brian Granger
Paging using payloads now works.
r2830 """
# Some routines may auto-compute start offsets incorrectly and pass a
# negative value. Offset to 0 for robustness.
start = max(0, start)
MinRK
pager payload is a mime-bundle
r16586 shell = get_ipython()
if isinstance(strng, dict):
data = strng
else:
data = {'text/plain' : strng}
Brian Granger
Paging using payloads now works.
r2830 payload = dict(
MinRK
update payload source...
r11839 source='page',
MinRK
pager payload is a mime-bundle
r16586 data=data,
start=start,
Fernando Perez
Provide html support for page() in the payload version....
r3011 )
Brian Granger
Paging using payloads now works.
r2830 shell.payload_manager.write_payload(payload)
Fernando Perez
Provide html support for page() in the payload version....
r3011
Brian Granger
Paging using payloads now works.
r2830 def install_payload_page():
Min RK
add InteractiveShell.display_page config...
r19387 """DEPRECATED, use show_in_pager hook
Matthias Bussonnier
some docstring reformatting and fixing
r27288
Min RK
add InteractiveShell.display_page config...
r19387 Install this version of page as IPython.core.page.page.
"""
warnings.warn("""install_payload_page is deprecated.
Use `ip.set_hook('show_in_pager, page.as_hook(payloadpage.page))`
""")
Brian Granger
Paging using payloads now works.
r2830 from IPython.core import page as corepage
corepage.page = page