##// END OF EJS Templates
Merge pull request #3409 from pankajp/qt-console-freeze-on-output-clip...
Merge pull request #3409 from pankajp/qt-console-freeze-on-output-clip Prevent qtconsole frontend freeze on lots of output. The output from the kernel is now clipped to last buffer_size before displaying and a timer is used to flush the pending output text instead of attempting to display text on every stream output from kernel. The timer interval is adjusted based on actual time taken to append a screenful of text to widget. This throttles the widget repaints and avoids choking the Qt event loop leaving time to handle other Qt events.

File last commit:

r11476:6a905927 merge
r11532:0397c02f merge
Show More
base.tplx
251 lines | 6.8 KiB | text/plain | TextLexer
((*- extends 'display_priority.tplx' -*))
((* block in_prompt *))((* endblock in_prompt *))
((* block output_prompt *))((* endblock output_prompt *))
((* block codecell *))\begin{codecell}((( super() )))
\end{codecell}
((* endblock *))
((* block input *))
\begin{codeinput}
\begin{lstlisting}
((( cell.input )))
\end{lstlisting}
\end{codeinput}
((* endblock input *))
((= Those Two are for error displaying
even if the first one seem to do nothing,
it introduces a new line
=))
((* block pyerr *))
\begin{traceback}
\begin{verbatim}((( super() )))
\end{verbatim}
\end{traceback}
((* endblock pyerr *))
((* block traceback_line *))
((( line |indent| rm_ansi )))((* endblock traceback_line *))
((= .... =))
((*- block output_group -*))
\begin{codeoutput}
((( super() )))
\end{codeoutput}((* endblock *))
((*- block data_png -*))
\begin{center}
\includegraphics[max size={0.7\textwidth}{0.9\textheight}]{(((output.png_filename)))}
\par
\end{center}
((*- endblock -*))
((*- block data_jpg -*))
\begin{center}
\includegraphics[max size={0.7\textwidth}{0.9\textheight}]{(((output.jpeg_filename)))}
\par
\end{center}
((*- endblock -*))
((*- block data_svg -*))
\begin{center}
\includegraphics[width=0.7\textwidth]{(((output.svg_filename)))}
\par
\end{center}
((*- endblock -*))
((* block pyout *))
((* block data_priority scoped *))((( super() )))((* endblock *))
((* endblock pyout *))
((* block data_text *))
\begin{verbatim}
((( output.text )))
\end{verbatim}
((* endblock *))
((* block data_latex -*))
((*- if output.latex.startswith('$'): -*)) \begin{equation*}
((( output.latex | rm_dollars)))
\end{equation*}
((*- else -*)) ((( output.latex ))) ((*- endif *))
((* endblock *))
((* block stream *))
\begin{Verbatim}[commandchars=\\\{\}]
((( output.text | ansi2latex)))
\end{Verbatim}
((* endblock stream *))
((* block markdowncell scoped *))((( cell.source | markdown2latex )))
((* endblock markdowncell *))
((* block headingcell scoped -*))
((( ('#' * cell.level + cell.source) | replace('\n', ' ') | markdown2latex )))
((* endblock headingcell *))
((* block rawcell scoped *))
((( cell.source | pycomment )))
((* endblock rawcell *))
((* block unknowncell scoped *))
unknown type (((cell.type)))
((* endblock unknowncell *))
((* block body *))
((* block bodyBegin *))
\begin{document}
((* endblock bodyBegin *))
((( super() )))
((* block bodyEnd *))
\end{document}
((* endblock bodyEnd *))
((* endblock body *))
((* block header *))
%% This file was auto-generated by IPython.
%% Conversion from the original notebook file:
%%
\documentclass[11pt,english]{article}
%% This is the automatic preamble used by IPython. Note that it does *not*
%% include a documentclass declaration, that is added at runtime to the overall
%% document.
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
% Scale down larger images
\usepackage[export]{adjustbox}
%fancy verbatim
\usepackage{fancyvrb}
% needed for markdown enumerations to work
\usepackage{enumerate}
% Slightly bigger margins than the latex defaults
\usepackage{geometry}
\geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=2.5cm,rmargin=2.5cm}
% Define a few colors for use in code, links and cell shading
\usepackage{color}
\definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
\definecolor{darkorange}{rgb}{.71,0.21,0.01}
\definecolor{darkgreen}{rgb}{.12,.54,.11}
\definecolor{myteal}{rgb}{.26, .44, .56}
\definecolor{gray}{gray}{0.45}
\definecolor{lightgray}{gray}{.95}
\definecolor{mediumgray}{gray}{.8}
\definecolor{inputbackground}{rgb}{.95, .95, .85}
\definecolor{outputbackground}{rgb}{.95, .95, .95}
\definecolor{traceback}{rgb}{1, .95, .95}
% new ansi colors
\definecolor{brown}{rgb}{0.54,0.27,0.07}
\definecolor{purple}{rgb}{0.5,0.0,0.5}
\definecolor{darkgray}{gray}{0.25}
\definecolor{lightred}{rgb}{1.0,0.39,0.28}
\definecolor{lightgreen}{rgb}{0.48,0.99,0.0}
\definecolor{lightblue}{rgb}{0.53,0.81,0.92}
\definecolor{lightpurple}{rgb}{0.87,0.63,0.87}
\definecolor{lightcyan}{rgb}{0.5,1.0,0.83}
% Framed environments for code cells (inputs, outputs, errors, ...). The
% various uses of \unskip (or not) at the end were fine-tuned by hand, so don't
% randomly change them unless you're sure of the effect it will have.
\usepackage{framed}
% remove extraneous vertical space in boxes
\setlength\fboxsep{0pt}
% codecell is the whole input+output set of blocks that a Code cell can
% generate.
% TODO: unfortunately, it seems that using a framed codecell environment breaks
% the ability of the frames inside of it to be broken across pages. This
% causes at least the problem of having lots of empty space at the bottom of
% pages as new frames are moved to the next page, and if a single frame is too
% long to fit on a page, will completely stop latex from compiling the
% document. So unless we figure out a solution to this, we'll have to instead
% leave the codecell env. as empty. I'm keeping the original codecell
% definition here (a thin vertical bar) for reference, in case we find a
% solution to the page break issue.
%% \newenvironment{codecell}{%
%% \def\FrameCommand{\color{mediumgray} \vrule width 1pt \hspace{5pt}}%
%% \MakeFramed{\vspace{-0.5em}}}
%% {\unskip\endMakeFramed}
% For now, make this a no-op...
\newenvironment{codecell}{}
\newenvironment{codeinput}{%
\def\FrameCommand{\colorbox{inputbackground}}%
\MakeFramed{\advance\hsize-\width \FrameRestore}}
{\unskip\endMakeFramed}
\newenvironment{codeoutput}{%
\def\FrameCommand{\colorbox{outputbackground}}%
\vspace{-1.4em}
\MakeFramed{\advance\hsize-\width \FrameRestore}}
{\unskip\medskip\endMakeFramed}
\newenvironment{traceback}{%
\def\FrameCommand{\colorbox{traceback}}%
\MakeFramed{\advance\hsize-\width \FrameRestore}}
{\endMakeFramed}
% Use and configure listings package for nicely formatted code
\usepackage{listingsutf8}
\lstset{
language=python,
inputencoding=utf8x,
extendedchars=\true,
aboveskip=\smallskipamount,
belowskip=\smallskipamount,
xleftmargin=2mm,
breaklines=true,
basicstyle=\small \ttfamily,
showstringspaces=false,
keywordstyle=\color{blue}\bfseries,
commentstyle=\color{myteal},
stringstyle=\color{darkgreen},
identifierstyle=\color{darkorange},
columns=fullflexible, % tighter character kerning, like verb
}
% The hyperref package gives us a pdf with properly built
% internal navigation ('pdf bookmarks' for the table of contents,
% internal cross-reference links, web links for URLs, etc.)
\usepackage{hyperref}
\hypersetup{
breaklinks=true, % so long urls are correctly broken across lines
colorlinks=true,
urlcolor=blue,
linkcolor=darkorange,
citecolor=darkgreen,
}
% hardcode size of all verbatim environments to be a bit smaller
\makeatletter
\g@addto@macro\@verbatim\small\topsep=0.5em\partopsep=0pt
\makeatother
% Prevent overflowing lines due to urls and other hard-to-break entities.
\sloppy
((* endblock *))