551 lines
37 KiB
HTML
551 lines
37 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<title>formatter — Generic output formatting — Python 3.7.4 documentation</title>
|
||
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
|
||
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||
<script type="text/javascript" src="../_static/language_data.js"></script>
|
||
|
||
<script type="text/javascript" src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="Search within Python 3.7.4 documentation"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="About these documents" href="../about.html" />
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||
<link rel="next" title="MS Windows Specific Services" href="windows.html" />
|
||
<link rel="prev" title="Miscellaneous Services" href="misc.html" />
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
|
||
<link rel="canonical" href="https://docs.python.org/3/library/formatter.html" />
|
||
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/switchers.js"></script>
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
|
||
</head><body>
|
||
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="windows.html" title="MS Windows Specific Services"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="misc.html" title="Miscellaneous Services"
|
||
accesskey="P">previous</a> |</li>
|
||
<li><img src="../_static/py.png" alt=""
|
||
style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li>
|
||
<span class="language_switcher_placeholder">en</span>
|
||
<span class="version_switcher_placeholder">3.7.4</span>
|
||
<a href="../index.html">Documentation </a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="misc.html" accesskey="U">Miscellaneous Services</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" style="display: none" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" type="text" name="q" />
|
||
<input type="submit" value="Go" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
<script type="text/javascript">$('.inline-search').show(0);</script>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<div class="section" id="module-formatter">
|
||
<span id="formatter-generic-output-formatting"></span><h1><a class="reference internal" href="#module-formatter" title="formatter: Generic output formatter and device interface. (deprecated)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">formatter</span></code></a> — Generic output formatting<a class="headerlink" href="#module-formatter" title="Permalink to this headline">¶</a></h1>
|
||
<div class="deprecated">
|
||
<p><span class="versionmodified deprecated">Deprecated since version 3.4: </span>Due to lack of usage, the formatter module has been deprecated.</p>
|
||
</div>
|
||
<hr class="docutils" />
|
||
<p>This module supports two interface definitions, each with multiple
|
||
implementations: The <em>formatter</em> interface, and the <em>writer</em> interface which is
|
||
required by the formatter interface.</p>
|
||
<p>Formatter objects transform an abstract flow of formatting events into specific
|
||
output events on writer objects. Formatters manage several stack structures to
|
||
allow various properties of a writer object to be changed and restored; writers
|
||
need not be able to handle relative changes nor any sort of “change back”
|
||
operation. Specific writer properties which may be controlled via formatter
|
||
objects are horizontal alignment, font, and left margin indentations. A
|
||
mechanism is provided which supports providing arbitrary, non-exclusive style
|
||
settings to a writer as well. Additional interfaces facilitate formatting
|
||
events which are not reversible, such as paragraph separation.</p>
|
||
<p>Writer objects encapsulate device interfaces. Abstract devices, such as file
|
||
formats, are supported as well as physical devices. The provided
|
||
implementations all work with abstract devices. The interface makes available
|
||
mechanisms for setting the properties which formatter objects manage and
|
||
inserting data into the output.</p>
|
||
<div class="section" id="the-formatter-interface">
|
||
<span id="formatter-interface"></span><h2>The Formatter Interface<a class="headerlink" href="#the-formatter-interface" title="Permalink to this headline">¶</a></h2>
|
||
<p>Interfaces to create formatters are dependent on the specific formatter class
|
||
being instantiated. The interfaces described below are the required interfaces
|
||
which all formatters must support once initialized.</p>
|
||
<p>One data element is defined at the module level:</p>
|
||
<dl class="data">
|
||
<dt id="formatter.AS_IS">
|
||
<code class="descclassname">formatter.</code><code class="descname">AS_IS</code><a class="headerlink" href="#formatter.AS_IS" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Value which can be used in the font specification passed to the <code class="docutils literal notranslate"><span class="pre">push_font()</span></code>
|
||
method described below, or as the new value to any other <code class="docutils literal notranslate"><span class="pre">push_property()</span></code>
|
||
method. Pushing the <code class="docutils literal notranslate"><span class="pre">AS_IS</span></code> value allows the corresponding <code class="docutils literal notranslate"><span class="pre">pop_property()</span></code>
|
||
method to be called without having to track whether the property was changed.</p>
|
||
</dd></dl>
|
||
|
||
<p>The following attributes are defined for formatter instance objects:</p>
|
||
<dl class="attribute">
|
||
<dt id="formatter.formatter.writer">
|
||
<code class="descclassname">formatter.</code><code class="descname">writer</code><a class="headerlink" href="#formatter.formatter.writer" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The writer instance with which the formatter interacts.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.end_paragraph">
|
||
<code class="descclassname">formatter.</code><code class="descname">end_paragraph</code><span class="sig-paren">(</span><em>blanklines</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.end_paragraph" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Close any open paragraphs and insert at least <em>blanklines</em> before the next
|
||
paragraph.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.add_line_break">
|
||
<code class="descclassname">formatter.</code><code class="descname">add_line_break</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.add_line_break" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add a hard line break if one does not already exist. This does not break the
|
||
logical paragraph.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.add_hor_rule">
|
||
<code class="descclassname">formatter.</code><code class="descname">add_hor_rule</code><span class="sig-paren">(</span><em>*args</em>, <em>**kw</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.add_hor_rule" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Insert a horizontal rule in the output. A hard break is inserted if there is
|
||
data in the current paragraph, but the logical paragraph is not broken. The
|
||
arguments and keywords are passed on to the writer’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">send_line_break()</span></code>
|
||
method.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.add_flowing_data">
|
||
<code class="descclassname">formatter.</code><code class="descname">add_flowing_data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.add_flowing_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Provide data which should be formatted with collapsed whitespace. Whitespace
|
||
from preceding and successive calls to <a class="reference internal" href="#formatter.formatter.add_flowing_data" title="formatter.formatter.add_flowing_data"><code class="xref py py-meth docutils literal notranslate"><span class="pre">add_flowing_data()</span></code></a> is considered as
|
||
well when the whitespace collapse is performed. The data which is passed to
|
||
this method is expected to be word-wrapped by the output device. Note that any
|
||
word-wrapping still must be performed by the writer object due to the need to
|
||
rely on device and font information.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.add_literal_data">
|
||
<code class="descclassname">formatter.</code><code class="descname">add_literal_data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.add_literal_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Provide data which should be passed to the writer unchanged. Whitespace,
|
||
including newline and tab characters, are considered legal in the value of
|
||
<em>data</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.add_label_data">
|
||
<code class="descclassname">formatter.</code><code class="descname">add_label_data</code><span class="sig-paren">(</span><em>format</em>, <em>counter</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.add_label_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Insert a label which should be placed to the left of the current left margin.
|
||
This should be used for constructing bulleted or numbered lists. If the
|
||
<em>format</em> value is a string, it is interpreted as a format specification for
|
||
<em>counter</em>, which should be an integer. The result of this formatting becomes the
|
||
value of the label; if <em>format</em> is not a string it is used as the label value
|
||
directly. The label value is passed as the only argument to the writer’s
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">send_label_data()</span></code> method. Interpretation of non-string label values is
|
||
dependent on the associated writer.</p>
|
||
<p>Format specifications are strings which, in combination with a counter value,
|
||
are used to compute label values. Each character in the format string is copied
|
||
to the label value, with some characters recognized to indicate a transform on
|
||
the counter value. Specifically, the character <code class="docutils literal notranslate"><span class="pre">'1'</span></code> represents the counter
|
||
value formatter as an Arabic number, the characters <code class="docutils literal notranslate"><span class="pre">'A'</span></code> and <code class="docutils literal notranslate"><span class="pre">'a'</span></code>
|
||
represent alphabetic representations of the counter value in upper and lower
|
||
case, respectively, and <code class="docutils literal notranslate"><span class="pre">'I'</span></code> and <code class="docutils literal notranslate"><span class="pre">'i'</span></code> represent the counter value in Roman
|
||
numerals, in upper and lower case. Note that the alphabetic and roman
|
||
transforms require that the counter value be greater than zero.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.flush_softspace">
|
||
<code class="descclassname">formatter.</code><code class="descname">flush_softspace</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.flush_softspace" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Send any pending whitespace buffered from a previous call to
|
||
<a class="reference internal" href="#formatter.formatter.add_flowing_data" title="formatter.formatter.add_flowing_data"><code class="xref py py-meth docutils literal notranslate"><span class="pre">add_flowing_data()</span></code></a> to the associated writer object. This should be called
|
||
before any direct manipulation of the writer object.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.push_alignment">
|
||
<code class="descclassname">formatter.</code><code class="descname">push_alignment</code><span class="sig-paren">(</span><em>align</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.push_alignment" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Push a new alignment setting onto the alignment stack. This may be
|
||
<a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> if no change is desired. If the alignment value is changed from
|
||
the previous setting, the writer’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">new_alignment()</span></code> method is called with
|
||
the <em>align</em> value.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.pop_alignment">
|
||
<code class="descclassname">formatter.</code><code class="descname">pop_alignment</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.pop_alignment" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restore the previous alignment.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.push_font">
|
||
<code class="descclassname">formatter.</code><code class="descname">push_font</code><span class="sig-paren">(</span><em>(size</em>, <em>italic</em>, <em>bold</em>, <em>teletype)</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.push_font" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Change some or all font properties of the writer object. Properties which are
|
||
not set to <a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> are set to the values passed in while others are
|
||
maintained at their current settings. The writer’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">new_font()</span></code> method is
|
||
called with the fully resolved font specification.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.pop_font">
|
||
<code class="descclassname">formatter.</code><code class="descname">pop_font</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.pop_font" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restore the previous font.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.push_margin">
|
||
<code class="descclassname">formatter.</code><code class="descname">push_margin</code><span class="sig-paren">(</span><em>margin</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.push_margin" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Increase the number of left margin indentations by one, associating the logical
|
||
tag <em>margin</em> with the new indentation. The initial margin level is <code class="docutils literal notranslate"><span class="pre">0</span></code>.
|
||
Changed values of the logical tag must be true values; false values other than
|
||
<a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> are not sufficient to change the margin.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.pop_margin">
|
||
<code class="descclassname">formatter.</code><code class="descname">pop_margin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.pop_margin" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Restore the previous margin.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.push_style">
|
||
<code class="descclassname">formatter.</code><code class="descname">push_style</code><span class="sig-paren">(</span><em>*styles</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.push_style" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Push any number of arbitrary style specifications. All styles are pushed onto
|
||
the styles stack in order. A tuple representing the entire stack, including
|
||
<a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> values, is passed to the writer’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">new_styles()</span></code> method.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.pop_style">
|
||
<code class="descclassname">formatter.</code><code class="descname">pop_style</code><span class="sig-paren">(</span><em>n=1</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.pop_style" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Pop the last <em>n</em> style specifications passed to <a class="reference internal" href="#formatter.formatter.push_style" title="formatter.formatter.push_style"><code class="xref py py-meth docutils literal notranslate"><span class="pre">push_style()</span></code></a>. A tuple
|
||
representing the revised stack, including <a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> values, is passed to
|
||
the writer’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">new_styles()</span></code> method.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.set_spacing">
|
||
<code class="descclassname">formatter.</code><code class="descname">set_spacing</code><span class="sig-paren">(</span><em>spacing</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.set_spacing" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set the spacing style for the writer.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.formatter.assert_line_data">
|
||
<code class="descclassname">formatter.</code><code class="descname">assert_line_data</code><span class="sig-paren">(</span><em>flag=1</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.formatter.assert_line_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Inform the formatter that data has been added to the current paragraph
|
||
out-of-band. This should be used when the writer has been manipulated
|
||
directly. The optional <em>flag</em> argument can be set to false if the writer
|
||
manipulations produced a hard line break at the end of the output.</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="formatter-implementations">
|
||
<span id="formatter-impls"></span><h2>Formatter Implementations<a class="headerlink" href="#formatter-implementations" title="Permalink to this headline">¶</a></h2>
|
||
<p>Two implementations of formatter objects are provided by this module. Most
|
||
applications may use one of these classes without modification or subclassing.</p>
|
||
<dl class="class">
|
||
<dt id="formatter.NullFormatter">
|
||
<em class="property">class </em><code class="descclassname">formatter.</code><code class="descname">NullFormatter</code><span class="sig-paren">(</span><em>writer=None</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.NullFormatter" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A formatter which does nothing. If <em>writer</em> is omitted, a <a class="reference internal" href="#formatter.NullWriter" title="formatter.NullWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">NullWriter</span></code></a>
|
||
instance is created. No methods of the writer are called by
|
||
<a class="reference internal" href="#formatter.NullFormatter" title="formatter.NullFormatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">NullFormatter</span></code></a> instances. Implementations should inherit from this
|
||
class if implementing a writer interface but don’t need to inherit any
|
||
implementation.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="formatter.AbstractFormatter">
|
||
<em class="property">class </em><code class="descclassname">formatter.</code><code class="descname">AbstractFormatter</code><span class="sig-paren">(</span><em>writer</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.AbstractFormatter" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The standard formatter. This implementation has demonstrated wide applicability
|
||
to many writers, and may be used directly in most circumstances. It has been
|
||
used to implement a full-featured World Wide Web browser.</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="the-writer-interface">
|
||
<span id="writer-interface"></span><h2>The Writer Interface<a class="headerlink" href="#the-writer-interface" title="Permalink to this headline">¶</a></h2>
|
||
<p>Interfaces to create writers are dependent on the specific writer class being
|
||
instantiated. The interfaces described below are the required interfaces which
|
||
all writers must support once initialized. Note that while most applications can
|
||
use the <a class="reference internal" href="#formatter.AbstractFormatter" title="formatter.AbstractFormatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractFormatter</span></code></a> class as a formatter, the writer must
|
||
typically be provided by the application.</p>
|
||
<dl class="method">
|
||
<dt id="formatter.writer.flush">
|
||
<code class="descclassname">writer.</code><code class="descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.flush" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Flush any buffered output or device control events.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.new_alignment">
|
||
<code class="descclassname">writer.</code><code class="descname">new_alignment</code><span class="sig-paren">(</span><em>align</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.new_alignment" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set the alignment style. The <em>align</em> value can be any object, but by convention
|
||
is a string or <code class="docutils literal notranslate"><span class="pre">None</span></code>, where <code class="docutils literal notranslate"><span class="pre">None</span></code> indicates that the writer’s “preferred”
|
||
alignment should be used. Conventional <em>align</em> values are <code class="docutils literal notranslate"><span class="pre">'left'</span></code>,
|
||
<code class="docutils literal notranslate"><span class="pre">'center'</span></code>, <code class="docutils literal notranslate"><span class="pre">'right'</span></code>, and <code class="docutils literal notranslate"><span class="pre">'justify'</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.new_font">
|
||
<code class="descclassname">writer.</code><code class="descname">new_font</code><span class="sig-paren">(</span><em>font</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.new_font" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set the font style. The value of <em>font</em> will be <code class="docutils literal notranslate"><span class="pre">None</span></code>, indicating that the
|
||
device’s default font should be used, or a tuple of the form <code class="docutils literal notranslate"><span class="pre">(size,</span>
|
||
<span class="pre">italic,</span> <span class="pre">bold,</span> <span class="pre">teletype)</span></code>. Size will be a string indicating the size of
|
||
font that should be used; specific strings and their interpretation must be
|
||
defined by the application. The <em>italic</em>, <em>bold</em>, and <em>teletype</em> values are
|
||
Boolean values specifying which of those font attributes should be used.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.new_margin">
|
||
<code class="descclassname">writer.</code><code class="descname">new_margin</code><span class="sig-paren">(</span><em>margin</em>, <em>level</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.new_margin" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set the margin level to the integer <em>level</em> and the logical tag to <em>margin</em>.
|
||
Interpretation of the logical tag is at the writer’s discretion; the only
|
||
restriction on the value of the logical tag is that it not be a false value for
|
||
non-zero values of <em>level</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.new_spacing">
|
||
<code class="descclassname">writer.</code><code class="descname">new_spacing</code><span class="sig-paren">(</span><em>spacing</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.new_spacing" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set the spacing style to <em>spacing</em>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.new_styles">
|
||
<code class="descclassname">writer.</code><code class="descname">new_styles</code><span class="sig-paren">(</span><em>styles</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.new_styles" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set additional styles. The <em>styles</em> value is a tuple of arbitrary values; the
|
||
value <a class="reference internal" href="#formatter.AS_IS" title="formatter.AS_IS"><code class="xref py py-const docutils literal notranslate"><span class="pre">AS_IS</span></code></a> should be ignored. The <em>styles</em> tuple may be interpreted
|
||
either as a set or as a stack depending on the requirements of the application
|
||
and writer implementation.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_line_break">
|
||
<code class="descclassname">writer.</code><code class="descname">send_line_break</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_line_break" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Break the current line.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_paragraph">
|
||
<code class="descclassname">writer.</code><code class="descname">send_paragraph</code><span class="sig-paren">(</span><em>blankline</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_paragraph" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Produce a paragraph separation of at least <em>blankline</em> blank lines, or the
|
||
equivalent. The <em>blankline</em> value will be an integer. Note that the
|
||
implementation will receive a call to <a class="reference internal" href="#formatter.writer.send_line_break" title="formatter.writer.send_line_break"><code class="xref py py-meth docutils literal notranslate"><span class="pre">send_line_break()</span></code></a> before this call
|
||
if a line break is needed; this method should not include ending the last line
|
||
of the paragraph. It is only responsible for vertical spacing between
|
||
paragraphs.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_hor_rule">
|
||
<code class="descclassname">writer.</code><code class="descname">send_hor_rule</code><span class="sig-paren">(</span><em>*args</em>, <em>**kw</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_hor_rule" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Display a horizontal rule on the output device. The arguments to this method
|
||
are entirely application- and writer-specific, and should be interpreted with
|
||
care. The method implementation may assume that a line break has already been
|
||
issued via <a class="reference internal" href="#formatter.writer.send_line_break" title="formatter.writer.send_line_break"><code class="xref py py-meth docutils literal notranslate"><span class="pre">send_line_break()</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_flowing_data">
|
||
<code class="descclassname">writer.</code><code class="descname">send_flowing_data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_flowing_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Output character data which may be word-wrapped and re-flowed as needed. Within
|
||
any sequence of calls to this method, the writer may assume that spans of
|
||
multiple whitespace characters have been collapsed to single space characters.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_literal_data">
|
||
<code class="descclassname">writer.</code><code class="descname">send_literal_data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_literal_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Output character data which has already been formatted for display. Generally,
|
||
this should be interpreted to mean that line breaks indicated by newline
|
||
characters should be preserved and no new line breaks should be introduced. The
|
||
data may contain embedded newline and tab characters, unlike data provided to
|
||
the <code class="xref py py-meth docutils literal notranslate"><span class="pre">send_formatted_data()</span></code> interface.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="formatter.writer.send_label_data">
|
||
<code class="descclassname">writer.</code><code class="descname">send_label_data</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.writer.send_label_data" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set <em>data</em> to the left of the current left margin, if possible. The value of
|
||
<em>data</em> is not restricted; treatment of non-string values is entirely
|
||
application- and writer-dependent. This method will only be called at the
|
||
beginning of a line.</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
<div class="section" id="writer-implementations">
|
||
<span id="writer-impls"></span><h2>Writer Implementations<a class="headerlink" href="#writer-implementations" title="Permalink to this headline">¶</a></h2>
|
||
<p>Three implementations of the writer object interface are provided as examples by
|
||
this module. Most applications will need to derive new writer classes from the
|
||
<a class="reference internal" href="#formatter.NullWriter" title="formatter.NullWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">NullWriter</span></code></a> class.</p>
|
||
<dl class="class">
|
||
<dt id="formatter.NullWriter">
|
||
<em class="property">class </em><code class="descclassname">formatter.</code><code class="descname">NullWriter</code><a class="headerlink" href="#formatter.NullWriter" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A writer which only provides the interface definition; no actions are taken on
|
||
any methods. This should be the base class for all writers which do not need to
|
||
inherit any implementation methods.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="formatter.AbstractWriter">
|
||
<em class="property">class </em><code class="descclassname">formatter.</code><code class="descname">AbstractWriter</code><a class="headerlink" href="#formatter.AbstractWriter" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A writer which can be used in debugging formatters, but not much else. Each
|
||
method simply announces itself by printing its name and arguments on standard
|
||
output.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="class">
|
||
<dt id="formatter.DumbWriter">
|
||
<em class="property">class </em><code class="descclassname">formatter.</code><code class="descname">DumbWriter</code><span class="sig-paren">(</span><em>file=None</em>, <em>maxcol=72</em><span class="sig-paren">)</span><a class="headerlink" href="#formatter.DumbWriter" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Simple writer class which writes output on the <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">file object</span></a> passed
|
||
in as <em>file</em> or, if <em>file</em> is omitted, on standard output. The output is
|
||
simply word-wrapped to the number of columns specified by <em>maxcol</em>. This
|
||
class is suitable for reflowing a sequence of paragraphs.</p>
|
||
</dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">formatter</span></code> — Generic output formatting</a><ul>
|
||
<li><a class="reference internal" href="#the-formatter-interface">The Formatter Interface</a></li>
|
||
<li><a class="reference internal" href="#formatter-implementations">Formatter Implementations</a></li>
|
||
<li><a class="reference internal" href="#the-writer-interface">The Writer Interface</a></li>
|
||
<li><a class="reference internal" href="#writer-implementations">Writer Implementations</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="misc.html"
|
||
title="previous chapter">Miscellaneous Services</a></p>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="windows.html"
|
||
title="next chapter">MS Windows Specific Services</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This Page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.7/Doc/library/formatter.rst"
|
||
rel="nofollow">Show Source
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="windows.html" title="MS Windows Specific Services"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="misc.html" title="Miscellaneous Services"
|
||
>previous</a> |</li>
|
||
<li><img src="../_static/py.png" alt=""
|
||
style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li>
|
||
<span class="language_switcher_placeholder">en</span>
|
||
<span class="version_switcher_placeholder">3.7.4</span>
|
||
<a href="../index.html">Documentation </a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="misc.html" >Miscellaneous Services</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" style="display: none" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" type="text" name="q" />
|
||
<input type="submit" value="Go" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
<script type="text/javascript">$('.inline-search').show(0);</script>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
© <a href="../copyright.html">Copyright</a> 2001-2019, Python Software Foundation.
|
||
<br />
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br />
|
||
Last updated on Jul 13, 2019.
|
||
<a href="../bugs.html">Found a bug</a>?
|
||
<br />
|
||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.0.1.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |