summaryrefslogtreecommitdiff
path: root/sandbox/code-block-directive/tools
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/code-block-directive/tools')
-rw-r--r--sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py85
-rw-r--r--sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm185
-rw-r--r--sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdfbin0 -> 45325 bytes
-rw-r--r--sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex166
-rw-r--r--sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt92
5 files changed, 528 insertions, 0 deletions
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py
new file mode 100644
index 000000000..d3edf4400
--- /dev/null
+++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py
@@ -0,0 +1,85 @@
+# Example for syntax highlight with Pygments
+# ==========================================
+#
+# Translate this document to HTML with a pygments enhanced frontend::
+#
+# rst2html-pygments --stylesheet=pygments-default.css
+#
+# or to LaTeX with::
+#
+# rst2latex-pygments --stylesheet=pygments-default.sty
+#
+# to gain syntax highlight in the output.
+#
+# .. Run the doctests with ``pylit --doctest for-else-test.py``.
+#
+#
+# for-else-test
+# -------------
+#
+# Test the flow in a `for` loop with `else` statement.
+#
+# First define a simple `for` loop.
+#
+# .. code-block:: python
+
+def loop1(iterable):
+ """simple for loop with `else` statement"""
+ for i in iterable:
+ print i
+ else:
+ print "iterable empty"
+ print "Ende"
+
+# Now test it:
+#
+# The first test runs as I expect: iterator empty -> else clause applies:
+#
+# .. code-block:: pycon
+#
+# >>> loop1(range(0))
+# iterable empty
+# Ende
+#
+# However, the else clause even runs if the iterator is not empty in the first
+# place but after it is "spent":
+#
+# .. code-block:: pycon
+#
+# >>> loop1(range(3))
+# 0
+# 1
+# 2
+# iterable empty
+# Ende
+#
+# It seems like the else clause can only be prevented, if we break out of
+# the loop. Let's try
+#
+# .. code-block:: python
+
+def loop2(iterable):
+ """for loop with `break` and `else` statement"""
+ for i in iterable:
+ print i
+ break
+ else:
+ print "iterable empty"
+ print "Ende"
+
+# And indeed, the else clause is skipped after breaking out of the loop:
+#
+# .. code-block:: pycon
+#
+# >>> loop2(range(3))
+# 0
+# Ende
+#
+# The empty iterator runs as expected:
+#
+# .. code-block:: pycon
+#
+# >>> loop2(range(0))
+# iterable empty
+# Ende
+#
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm
new file mode 100644
index 000000000..1e6057be1
--- /dev/null
+++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" />
+<title>Example for syntax highlight with Pygments</title>
+<style type="text/css">
+
+/* Stylesheet for pygments enhanced reStructured Text */
+/* ================================================== */
+
+/* :Author: Guenter Milde */
+/* :Copyright: 2007 G. Milde */
+/* This stylesheet is released under the GPL v. 2 or later */
+
+/* This stylesheet provides syntax highlight for documents generated with a */
+/* pygments_ enhanced reStructured Text -> html converter. */
+
+/* Import the default docutils style sheet */
+/* --------------------------------------- */
+/* :: */
+
+@import url("/stylesheets/html4css1.css");
+
+/* Indent the code block */
+/* --------------------- */
+
+/* Content copied from the `html4css1.css` rule for literal blocks. */
+/* Selector adapted to the output of Pygments_. :: */
+
+div.highlight {
+ margin-left: 2em ;
+ margin-right: 2em ;
+ background-color: #eeeeee
+ }
+
+
+/* Colour code blocks */
+/* ------------------ */
+
+/* Pygments_ has an option to generate stylesheets for html and latex. */
+/* The following code is generated with the command */
+/* `pygmentize -S default -f html > pygments-default.css`:: */
+
+.c { color: #008800; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #AA22FF; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.cm { color: #008800; font-style: italic } /* Comment.Multiline */
+.cp { color: #008800 } /* Comment.Preproc */
+.c1 { color: #008800; font-style: italic } /* Comment.Single */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #808080 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0040D0 } /* Generic.Traceback */
+.kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */
+.kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */
+.kp { color: #AA22FF } /* Keyword.Pseudo */
+.kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #AA22FF; font-weight: bold } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BB4444 } /* Literal.String */
+.na { color: #BB4444 } /* Name.Attribute */
+.nb { color: #AA22FF } /* Name.Builtin */
+.nc { color: #0000FF } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #00A000 } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #B8860B } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BB4444 } /* Literal.String.Backtick */
+.sc { color: #BB4444 } /* Literal.String.Char */
+.sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BB4444 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BB4444 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BB4444 } /* Literal.String.Single */
+.ss { color: #B8860B } /* Literal.String.Symbol */
+.bp { color: #AA22FF } /* Name.Builtin.Pseudo */
+.vc { color: #B8860B } /* Name.Variable.Class */
+.vg { color: #B8860B } /* Name.Variable.Global */
+.vi { color: #B8860B } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */
+
+/* .. _pygments: http://pygments.org/ */
+
+</style>
+</head>
+<body>
+<div class="document" id="example-for-syntax-highlight-with-pygments">
+<h1 class="title">Example for syntax highlight with Pygments</h1>
+<p>Translate this document to HTML with a pygments enhanced frontend:</p>
+<pre class="literal-block">
+rst2html-pygments --stylesheet=pygments-default.css
+</pre>
+<p>or to LaTeX with:</p>
+<pre class="literal-block">
+rst2latex-pygments --stylesheet=pygments-default.sty
+</pre>
+<p>to gain syntax highlight in the output.</p>
+<p>Convert between text &lt;-&gt; code source formats with:</p>
+<pre class="literal-block">
+pylit --code-block-marker='.. code-block:: python'
+</pre>
+<p>Run the doctests with:</p>
+<pre class="literal-block">
+pylit --doctest for-else-test.py
+</pre>
+<div class="section">
+<h1><a id="for-else-test" name="for-else-test">for-else-test</a></h1>
+<p>Test the flow in a <cite>for</cite> loop with <cite>else</cite> statement.</p>
+<p>First define a simple <cite>for</cite> loop.</p>
+<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop1</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;simple for loop with `else` statement&quot;&quot;&quot;</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span>
+ <span class="k">print</span> <span class="n">i</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">&quot;iterable empty&quot;</span>
+ <span class="k">print</span> <span class="s">&quot;Ende&quot;</span>
+</pre></div>
+<p>Now test it:</p>
+<p>The first test runs as I expect: iterator empty -&gt; else clause applies:</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="nb">execfile</span><span class="p">(</span><span class="s">&#39;for-else-test.py&#39;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span>
+<span class="go">iterable empty</span>
+<span class="go">Ende</span>
+</pre></div>
+<p>However, the else clause even runs if the iterator is not empty in the first
+place but after it is &quot;spent&quot;:</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span>
+<span class="go">0</span>
+<span class="go">1</span>
+<span class="go">2</span>
+<span class="go">iterable empty</span>
+<span class="go">Ende</span>
+</pre></div>
+<p>It seems like the else clause can only be prevented, if we break out of
+the loop. Let's try</p>
+<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop2</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;for loop with `break` and `else` statement&quot;&quot;&quot;</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span>
+ <span class="k">print</span> <span class="n">i</span>
+ <span class="k">break</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">print</span> <span class="s">&quot;iterable empty&quot;</span>
+ <span class="k">print</span> <span class="s">&quot;Ende&quot;</span>
+</pre></div>
+<p>And indeed, the else clause is skipped after breaking out of the loop:</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span>
+<span class="go">0</span>
+<span class="go">Ende</span>
+</pre></div>
+<p>The empty iterator runs as expected:</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span>
+<span class="go">iterable empty</span>
+<span class="go">Ende</span>
+</pre></div>
+</div>
+</div>
+<div class="footer">
+<hr class="footer" />
+Generated on: 2007-06-21.
+
+</div>
+</body>
+</html>
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf
new file mode 100644
index 000000000..b8e63b5e8
--- /dev/null
+++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf
Binary files differ
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex
new file mode 100644
index 000000000..b664d4865
--- /dev/null
+++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex
@@ -0,0 +1,166 @@
+\documentclass[10pt,a4paper,english]{article}
+\usepackage{babel}
+\usepackage{ae}
+\usepackage{aeguill}
+\usepackage{shortvrb}
+\usepackage[latin1]{inputenc}
+\usepackage{tabularx}
+\usepackage{longtable}
+\setlength{\extrarowheight}{2pt}
+\usepackage{amsmath}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage{multirow}
+\usepackage{ifthen}
+\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\usepackage[DIV12]{typearea}
+%% generator Docutils: http://docutils.sourceforge.net/
+\newlength{\admonitionwidth}
+\setlength{\admonitionwidth}{0.9\textwidth}
+\newlength{\docinfowidth}
+\setlength{\docinfowidth}{0.9\textwidth}
+\newlength{\locallinewidth}
+\newcommand{\optionlistlabel}[1]{\bf #1 \hfill}
+\newenvironment{optionlist}[1]
+{\begin{list}{}
+ {\setlength{\labelwidth}{#1}
+ \setlength{\rightmargin}{1cm}
+ \setlength{\leftmargin}{\rightmargin}
+ \addtolength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \renewcommand{\makelabel}{\optionlistlabel}}
+}{\end{list}}
+\newlength{\lineblockindentation}
+\setlength{\lineblockindentation}{2.5em}
+\newenvironment{lineblock}[1]
+{\begin{list}{}
+ {\setlength{\partopsep}{\parskip}
+ \addtolength{\partopsep}{\baselineskip}
+ \topsep0pt\itemsep0.15\baselineskip\parsep0pt
+ \leftmargin#1}
+ \raggedright}
+{\end{list}}
+% begin: floats for footnotes tweaking.
+\setlength{\floatsep}{0.5em}
+\setlength{\textfloatsep}{\fill}
+\addtolength{\textfloatsep}{3em}
+\renewcommand{\textfraction}{0.5}
+\renewcommand{\topfraction}{0.5}
+\renewcommand{\bottomfraction}{0.5}
+\setcounter{totalnumber}{50}
+\setcounter{topnumber}{50}
+\setcounter{bottomnumber}{50}
+% end floats for footnotes
+% some commands, that could be overwritten in the style file.
+\newcommand{\rubric}[1]{\subsection*{~\hfill {\it #1} \hfill ~}}
+\newcommand{\titlereference}[1]{\textsl{#1}}
+% end of "some commands"
+\input{pygments-default.sty}
+\title{Example for syntax highlight with Pygments}
+\author{}
+\date{}
+\hypersetup{
+pdftitle={Example for syntax highlight with Pygments}
+}
+\raggedbottom
+\begin{document}
+\maketitle
+
+
+\setlength{\locallinewidth}{\linewidth}
+% # -*- rst-mode -*-
+
+Translate this document to HTML with a pygments enhanced frontend:
+\begin{quote}{\ttfamily \raggedright \noindent
+rst2html-pygments~-{}-stylesheet=pygments-default.css
+}\end{quote}
+
+or to LaTeX with:
+\begin{quote}{\ttfamily \raggedright \noindent
+rst2latex-pygments~-{}-stylesheet=pygments-default.sty
+}\end{quote}
+
+to gain syntax highlight in the output.
+% Run the doctests with ``pylit --doctest for-else-test.py``.
+
+
+%___________________________________________________________________________
+
+\hypertarget{for-else-test}{}
+\pdfbookmark[0]{for-else-test}{for-else-test}
+\section*{for-else-test}
+
+Test the flow in a \titlereference{for} loop with \titlereference{else} statement.
+
+First define a simple \titlereference{for} loop.
+\begin{Verbatim}[commandchars=@\[\]]
+@Cax[def] @CaJ[loop1](iterable):
+ @Car["""simple for loop with `else` statement"""]
+ @Cax[for] i @Cam[in] iterable:
+ @Cax[print] i
+ @Cax[else]:
+ @Cax[print] @Cad["]@Cad[iterable empty]@Cad["]
+ @Cax[print] @Cad["]@Cad[Ende]@Cad["]
+
+\end{Verbatim}
+
+Now test it:
+
+The first test runs as I expect: iterator empty -{\textgreater} else clause applies:
+\begin{Verbatim}[commandchars=@\[\]]
+@CaN[>>> ]loop1(@CaW[range](@Cag[0]))
+@Caa[iterable empty]
+@Caa[Ende]
+
+\end{Verbatim}
+
+However, the else clause even runs if the iterator is not empty in the first
+place but after it is ``spent'':
+\begin{Verbatim}[commandchars=@\[\]]
+@CaN[>>> ]loop1(@CaW[range](@Cag[3]))
+@Caa[0]
+@Caa[1]
+@Caa[2]
+@Caa[iterable empty]
+@Caa[Ende]
+
+\end{Verbatim}
+
+It seems like the else clause can only be prevented, if we break out of
+the loop. Let's try
+\begin{Verbatim}[commandchars=@\[\]]
+@Cax[def] @CaJ[loop2](iterable):
+ @Car["""for loop with `break` and `else` statement"""]
+ @Cax[for] i @Cam[in] iterable:
+ @Cax[print] i
+ @Cax[break]
+ @Cax[else]:
+ @Cax[print] @Cad["]@Cad[iterable empty]@Cad["]
+ @Cax[print] @Cad["]@Cad[Ende]@Cad["]
+
+\end{Verbatim}
+
+And indeed, the else clause is skipped after breaking out of the loop:
+\begin{Verbatim}[commandchars=@\[\]]
+@CaN[>>> ]loop2(@CaW[range](@Cag[3]))
+@Caa[0]
+@Caa[Ende]
+
+\end{Verbatim}
+
+The empty iterator runs as expected:
+\begin{Verbatim}[commandchars=@\[\]]
+@CaN[>>> ]loop2(@CaW[range](@Cag[0]))
+@Caa[iterable empty]
+@Caa[Ende]
+
+\end{Verbatim}
+
+\begin{center}\small
+
+Generated on: 2007-04-24.
+
+
+\end{center}
+
+\end{document}
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt
new file mode 100644
index 000000000..d9687ecd5
--- /dev/null
+++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt
@@ -0,0 +1,92 @@
+Example for syntax highlight with Pygments
+==========================================
+
+Translate this document to HTML with a pygments enhanced frontend::
+
+ rst2html-pygments --stylesheet=pygments-default.css
+
+or to LaTeX with::
+
+ rst2latex-pygments --stylesheet=pygments-default.sty
+
+to gain syntax highlight in the output.
+
+Convert between text <-> code source formats with::
+
+ pylit --code-block-marker='.. code-block:: python'
+
+Run the doctests with::
+
+ pylit --doctest for-else-test.py
+
+
+for-else-test
+-------------
+
+Test the flow in a `for` loop with `else` statement.
+
+First define a simple `for` loop.
+
+.. code-block:: python
+
+ def loop1(iterable):
+ """simple for loop with `else` statement"""
+ for i in iterable:
+ print i
+ else:
+ print "iterable empty"
+ print "Ende"
+
+Now test it:
+
+The first test runs as I expect: iterator empty -> else clause applies:
+
+.. code-block:: pycon
+
+ >>> execfile('for-else-test.py')
+ >>> loop1(range(0))
+ iterable empty
+ Ende
+
+However, the else clause even runs if the iterator is not empty in the first
+place but after it is "spent":
+
+.. code-block:: pycon
+
+ >>> loop1(range(3))
+ 0
+ 1
+ 2
+ iterable empty
+ Ende
+
+It seems like the else clause can only be prevented, if we break out of
+the loop. Let's try
+
+.. code-block:: python
+
+ def loop2(iterable):
+ """for loop with `break` and `else` statement"""
+ for i in iterable:
+ print i
+ break
+ else:
+ print "iterable empty"
+ print "Ende"
+
+And indeed, the else clause is skipped after breaking out of the loop:
+
+.. code-block:: pycon
+
+ >>> loop2(range(3))
+ 0
+ Ende
+
+The empty iterator runs as expected:
+
+.. code-block:: pycon
+
+ >>> loop2(range(0))
+ iterable empty
+ Ende
+