/usr/share/doc/python-htmlgen/html/tables.html is in python-htmlgen 2.2.2-12.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<!-- This file generated using Python HTMLgen module. -->
<HEAD>
<META NAME="GENERATOR" CONTENT="HTMLgen 2.2.2">
<TITLE>HTMLgen 2.2.2 Online Documentation</TITLE>
<LINK rel=stylesheet href="HTMLgen.css" type=text/css title="HTMLgen.css">
</HEAD>
<BODY BGCOLOR="#FFFFFF" BACKGROUND="../image/bg-dots.gif" TEXT="#000000" LINK="#EE0000" VLINK="#990000">
<IMG src="../image/tables.gif" height="40" width="472" alt="tables.gif" border="0"><BR>
<A HREF="frames.html"><IMG src="../image/back.gif" height="22" width="66" alt="Previous" border="0"></A>
<A HREF="forms.html"><IMG src="../image/next.gif" height="22" width="66" alt="Next" border="0"></A>
<A HREF="overview.html"><IMG src="../image/top.gif" height="22" width="66" alt="Top of Manual" border="0"></A>
<IMG src="../image/blank.gif" height="22" width="66" alt="blank.gif">
<H3>HTMLgen 2.2.2 Online Documentation</H3>
<H2>Tables</H2>
<HR>
<h3>TWO IMPLEMENTATIONS</h3>
<P>There are actually two separate table implementations in
HTMLgen now. The first was historically taken from the old
HTMLsupport.py function library. It was
designed to take a list of lists and construct a table correctly
sized to contain the data, and allowed for some limited
customization. For general table display it works fine and is
named <strong>Table</strong> in this module.
<P>The newer implementation was a result of feedback I got
during the 1.2 beta releases. It is a collection of classes for the
lower level table primitives, <strong>TD</strong>,
<strong>TR</strong>, <strong>TH</strong> and
<strong>Caption</strong> along with a simple container class
called <strong>TableLite</strong>. I called it TableLite because
it does very little for you, (but it does get out of the
way). The user is thus responsible for structuring the contents
of each row of the table as well as all other heading and border
specifications with the appropriate mix of these classes.
Although this requires more coding work on the user's part it
does provide complete flexibility and control over the table
construction. For those with special table needs, building
custom classes on top of TableLite and friends may be the
favored approach. <BR><img src="../image/note.gif" width="20" height="20" alt="N.B.">Please
be aware though, that this approach can become a performance
problem as all the low level elements are implemented as class
instances. It'll be at least two times as slow as a more
hardwired approach such as Table. (In particular, the
<code>start_tag()</code> method is cool from a reuse perspective
but is expensive in CPU cycles.)
<h3>FEATURES</h3>
<h4>Table class</h4>
<P>The Table class is instantiated with the table's name
(which becomes it's caption), and then is tailored with
various keyword parameters or direct attribute
assignments. Several attributes control alignment, spacing,
border characteristics. The default settings result in a table
which looks much like the following. Border is set to 2, cell
padding is 4, and overall width is 100%. For example the
following code was used to generate the next table.
<pre>
>>> t = HTMLgen.Table('Caption')
>>> h = ['head 1', 'head 2', 'head 3']
>>> t.heading = h
>>> l = ['one', 'two','three']
>>> t.body = [l]
>>> print t
</pre>
<A NAME="Caption"></A>
<P><TABLE border=2 cellpadding=4 cellspacing=1 width="100%">
<CAPTION align=top><STRONG>Caption</STRONG></CAPTION>
<TR Align=center> <TH ColSpan=1>head 1</TH><TH ColSpan=1>head 2</TH><TH ColSpan=1>head 3</TH></TR>
<TR> <TD Align=left>one</TD> <TD Align=left>two</TD> <TD Align=left>three</TD> </TR>
</TABLE>
<P>The body attribute contains a list of lists, the length of
which determines the number of rows in the table. The heading
attribute is just a list of strings and determines the number of
columns. The intent behind the Table class is to provide a
simple interface using fairly natural Python datatypes as
arguments. See the main manual for detailed documentation.
<h4>The TableLite class(es)</h4>
<P>The TableLite class is a general container class to be
populated by instances from the TD, TR, TH, and Caption
classes. All these classes inherit from AbstractTag like most
other HTML markup classes. AbstractTag supports such things as
append, prepend, copy, markup, as well as others. The following
is a usage example.
<pre>
>>> TDlist = map(HTMLgen.TD, ['one', 'two', 'three'])
>>> body = HTMLgen.TR()
>>> body = body + TDlist
>>> THlist = map(HTMLgen.TH, ['head 1', 'head 2', 'head 3'])
>>> heading = HTMLgen.TR()
>>> heading = heading + THlist
>>> cap = HTMLgen.Caption('Caption')
>>> t = HTMLgen.TableLite(border=2, cellpadding=4, cellspacing=1,width="100%")
>>> t.append(cap, heading, body)
</pre>
<P>This is obviously more complicated but is necessary when
using low level classes such as these. Note: the defaults are
only what the browser might use; the TableLite class provides
no defaults like the Table class.
<P>The examples below use the <em>barchart</em> module to generate
tables which use the TableLite class.
<HR>
<TABLE cellpadding="3" cellspacing="0"><CAPTION><STRONG>System Throughput (jobs/week)</STRONG></CAPTION>
<TR><TD align="left" width="70" bgcolor="#33CCCC">asc1</TD><TD align="right" width="70" bgcolor="#9999CC"> 1352.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="298" alt="1352"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">asc4</TD><TD align="right" width="70" bgcolor="#9999CC"> 1292.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-yellow.gif" height="13" width="247" alt="1292"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">asc8</TD><TD align="right" width="70" bgcolor="#9999CC"> 1371.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="314" alt="1371"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">cn1</TD><TD align="right" width="70" bgcolor="#9999CC"> 1472.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-red.gif" height="13" width="400" alt="1472"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">cn2</TD><TD align="right" width="70" bgcolor="#9999CC"> 1411.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-red.gif" height="13" width="348" alt="1411"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">dn1</TD><TD align="right" width="70" bgcolor="#9999CC"> 1441.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-red.gif" height="13" width="373" alt="1441"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">dn2</TD><TD align="right" width="70" bgcolor="#9999CC"> 1381.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="322" alt="1381"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo1</TD><TD align="right" width="70" bgcolor="#9999CC"> 1418.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-red.gif" height="13" width="354" alt="1418"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo2</TD><TD align="right" width="70" bgcolor="#9999CC"> 1341.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="288" alt="1341"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo3</TD><TD align="right" width="70" bgcolor="#9999CC"> 1280.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-yellow.gif" height="13" width="237" alt="1280"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo4</TD><TD align="right" width="70" bgcolor="#9999CC"> 1318.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="269" alt="1318"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">orb3</TD><TD align="right" width="70" bgcolor="#9999CC"> 1390.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="330" alt="1390"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">AVERAGE</TD><TD align="right" width="70" bgcolor="#9999CC"> 1372.0</TD><TD bgcolor="#33CCCC"><b>^ 1000.0</b> lower bound<br> SCALE: <IMG src="../image/bar-blue.gif" height="13" width="40" alt="bar-blue.gif"> = 47.2 units</TD></TR>
</TABLE>
<PRE>
Label value
asc1 1352
asc4 1292
asc8 1371
cn1 1472
cn2 1411
dn1 1441
dn2 1381
fddo1 1418
fddo2 1341
fddo3 1280
fddo4 1318
orb3 1390
</PRE>
<HR>
<TABLE cellpadding="3" cellspacing="0"><CAPTION><STRONG>System Load</STRONG></CAPTION>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo1</TD><TD align="right" width="70" bgcolor="#9999CC"> 3234.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="175" alt="1418"><IMG src="../image/bar-red.gif" height="13" width="148" alt="1201"><IMG src="../image/bar-yellow.gif" height="13" width="60" alt="490"><IMG src="../image/bar-purple.gif" height="13" width="15" alt="125"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo2</TD><TD align="right" width="70" bgcolor="#9999CC"> 2820.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="165" alt="1341"><IMG src="../image/bar-red.gif" height="13" width="100" alt="810"><IMG src="../image/bar-yellow.gif" height="13" width="57" alt="466"><IMG src="../image/bar-purple.gif" height="13" width="25" alt="203"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo3</TD><TD align="right" width="70" bgcolor="#9999CC"> 2264.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="158" alt="1280"><IMG src="../image/bar-red.gif" height="13" width="69" alt="560"><IMG src="../image/bar-yellow.gif" height="13" width="15" alt="129"><IMG src="../image/bar-purple.gif" height="13" width="36" alt="295"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">fddo4</TD><TD align="right" width="70" bgcolor="#9999CC"> 2299.0</TD><TD bgcolor="#DDDDDD"><IMG src="../image/bar-blue.gif" height="13" width="163" alt="1318"><IMG src="../image/bar-red.gif" height="13" width="56" alt="456"><IMG src="../image/bar-yellow.gif" height="13" width="29" alt="235"><IMG src="../image/bar-purple.gif" height="13" width="35" alt="290"></TD></TR>
<TR><TD align="left" width="70" bgcolor="#33CCCC">AVERAGE</TD><TD align="right" width="70" bgcolor="#9999CC"> 2654.0</TD><TD bgcolor="#33CCCC"><IMG src="../image/bar-blue.gif" height="13" width="30" alt="bar-blue.gif"> <FONT size="-1">User</FONT> <IMG src="../image/bar-red.gif" height="13" width="30" alt="bar-red.gif"> <FONT size="-1">System</FONT> <IMG src="../image/bar-yellow.gif" height="13" width="30" alt="bar-yellow.gif"> <FONT size="-1">I/O</FONT> <IMG src="../image/bar-purple.gif" height="13" width="30" alt="bar-purple.gif"> <FONT size="-1">Wait</FONT> </TD></TR>
</TABLE>
<PRE>
Label User System I/O Wait
fddo1 1418 1201 490 125
fddo2 1341 810 466 203
fddo3 1280 560 129 295
fddo4 1318 456 235 290
</PRE>
<P><HR>
<A HREF="frames.html"><IMG src="../image/back.gif" height="22" width="66" alt="Previous" border="0"></A>
<A HREF="forms.html"><IMG src="../image/next.gif" height="22" width="66" alt="Next" border="0"></A>
<A HREF="overview.html"><IMG src="../image/top.gif" height="22" width="66" alt="Top of Manual" border="0"></A>
<IMG src="../image/blank.gif" height="22" width="66" alt="blank.gif">
<BR><IMG src="../image/Buzz.gif" height="51" width="56" alt="Buzz.gif" align="bottom">
<FONT SIZE="-1"><P>Copyright © 1996-7 Robin Friedrich<BR>All Rights Reserved<BR>
Comments to author: <A HREF="mailto:friedrich@pythonpros.com">friedrich@pythonpros.com</A><br>
Generated: Tue Apr 20, 1999 <BR><hr>
</FONT>
</BODY> </HTML>
|