blob: 4bb8013902cdab8d8f7e1a53276c9a4b30a7fb5c [file] [log] [blame]
Guido van Rossum51bbdfb1995-03-01 14:07:08 +00001% Template for a library manual section.
2% PLEASE REMOVE THE COMMENTS AFTER USING THE TEMPLATE
Guido van Rossum6a11eb41992-06-03 17:59:07 +00003
Fred Drake0618f5e1998-08-11 17:43:45 +00004% ==== 0. ====
5% Copy this file to <mydir>/lib<mymodule>.tex, and edit that file
6% according to the instructions below.
7
Guido van Rossum6a11eb41992-06-03 17:59:07 +00008
Guido van Rossum51bbdfb1995-03-01 14:07:08 +00009% ==== 1. ====
Fred Drake295da241998-08-10 19:42:37 +000010% The section prologue. Give the section a title and provide some
11% meta-information. References to the module should use
12% \refbimodindex, \refstmodindex, \refexmodindex or \refmodindex, as
13% appropriate.
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000014
Fred Drake295da241998-08-10 19:42:37 +000015\section{\module{spam} ---
Fred Drake5eecd7b1998-12-22 18:15:04 +000016 Short descrition, for section title.}
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000017
Fred Drake295da241998-08-10 19:42:37 +000018% Choose one of these to specify the module module name. If there's
19% an underscore in the name, use
20% \declaremodule[modname]{...}{mod_name} instead.
21%
22\declaremodule{builtin}{spam} % standard library, in C
23\declaremodule{standard}{spam} % standard library, in Python
24\declaremodule{extension}{spam} % not standard, in C
25\declaremodule{}{spam} % not standard, in Python
Fred Drake07bcd991998-04-03 21:25:16 +000026
Fred Drake295da241998-08-10 19:42:37 +000027% These apply to all modules:
Fred Drake07bcd991998-04-03 21:25:16 +000028
Fred Drake295da241998-08-10 19:42:37 +000029\moduleauthor{name}{email} % Author of the module code;
30 % omit if not known.
Fred Drake5eecd7b1998-12-22 18:15:04 +000031\sectionauthor{name}{email} % Author of the documentation,
32 % even if not a module section.
Guido van Rossum6a11eb41992-06-03 17:59:07 +000033
Fred Drakeb91e9341998-07-23 17:59:49 +000034
Fred Drake295da241998-08-10 19:42:37 +000035% Leave at least one blank line after this, to simplify ad-hoc tools
36% that are sometimes used to massage these files.
Fred Drakeb91e9341998-07-23 17:59:49 +000037\modulesynopsis{This is a one-line descrition, for the chapter header.}
38
Guido van Rossum6a11eb41992-06-03 17:59:07 +000039
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000040% ==== 2. ====
41% Give a short overview of what the module does.
42% If it is platform specific, mention this.
43% Mention other important restrictions or general operating principles.
44% For example:
45
Fred Draked10d0fa1998-02-24 21:43:05 +000046The \module{spam} module defines operations for handling cans of Spam.
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000047It knows the four generally available Spam varieties and understands
48both can sizes.
49
Fred Drake4b3f0311996-12-13 22:04:31 +000050Because spamification requires \UNIX{} process management, the module
51is only available on genuine \UNIX{} systems.
Guido van Rossum6a11eb41992-06-03 17:59:07 +000052
53
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000054% ==== 3. ====
55% List the public functions defined by the module. Begin with a
56% standard phrase. You may also list the exceptions and other data
57% items defined in the module, insofar as they are important for the
58% user.
59
Fred Draked10d0fa1998-02-24 21:43:05 +000060The \module{spam} module defines the following functions:
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000061
62% ---- 3.1. ----
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000063% For each function, use a ``funcdesc'' block. This has exactly two
64% parameters (each parameters is contained in a set of curly braces):
65% the first parameter is the function name (this automatically
66% generates an index entry); the second parameter is the function's
67% argument list. If there are no arguments, use an empty pair of
68% curly braces. If there is more than one argument, separate the
69% arguments with backslash-comma. Optional parts of the parameter
70% list are contained in \optional{...} (this generates a set of square
71% brackets around its parameter). Arguments are automatically set in
72% italics in the parameter list. Each argument should be mentioned at
73% least once in the description; each usage (even inside \code{...})
74% should be enclosed in \var{...}.
75
Fred Drake07bcd991998-04-03 21:25:16 +000076\begin{funcdesc}{open}{filename\optional{, mode\optional{, buffersize}}}
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000077Open the file \var{filename} as a can of Spam. The optional
78\var{mode} and \var{buffersize} arguments specify the read-write mode
79(\code{'r'} (default) or \code{'w'}) and the buffer size (default:
80system dependent).
81\end{funcdesc}
82
Fred Drake07bcd991998-04-03 21:25:16 +000083% ---- 3.2. ----
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000084% Data items are described using a ``datadesc'' block. This has only
85% one parameter: the item's name.
86
87\begin{datadesc}{cansize}
88The default can size, in ounces. Legal values are 7 and 12. The
89default varies per supermarket. This variable should not be changed
Fred Draked10d0fa1998-02-24 21:43:05 +000090once the \function{open()} function has been called.
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000091\end{datadesc}
92
Fred Drake07bcd991998-04-03 21:25:16 +000093% --- 3.3. ---
Guido van Rossum51bbdfb1995-03-01 14:07:08 +000094% Exceptions are described using a ``excdesc'' block. This has only
95% one parameter: the exception name.
96
97\begin{excdesc}{error}
98Exception raised when an operation fails for a Spam specific reason.
99The exception argument is a string describing the reason of the
100failure.
101\end{excdesc}
102
Fred Drake07bcd991998-04-03 21:25:16 +0000103% ---- 3.4. ----
104% Other standard environments:
105%
106% classdesc - Python classes; same arguments are funcdesc
107% methoddesc - methods, like funcdesc but has an optional parameter
108% to give the type name: \begin{methoddesc}[mytype]{name}{args}
109% By default, the type name will be the name of the
110% last class defined using classdesc. The type name
111% is required if the type is implemented in C (because
112% there's no classdesc) or if the class isn't directly
113% documented (if it's private).
114% memberdesc - data members, like datadesc, but with an optional
115% type name like methoddesc.
Guido van Rossum6a11eb41992-06-03 17:59:07 +0000116
117
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000118% ==== 4. ====
119% Now is probably a good time for a complete example. (Alternatively,
120% an example giving the flavor of the module may be given before the
121% detailed list of functions.)
Guido van Rossum6a11eb41992-06-03 17:59:07 +0000122
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000123Example:
Guido van Rossum6a11eb41992-06-03 17:59:07 +0000124
Fred Drake19479911998-02-13 06:58:54 +0000125\begin{verbatim}
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000126>>> import spam
127>>> can = spam.open('/etc/passwd')
128>>> can.empty()
129>>> can.close()
Fred Drake19479911998-02-13 06:58:54 +0000130\end{verbatim}
Fred Drake07bcd991998-04-03 21:25:16 +0000131% Note that there is no trailing ">>> " prompt shown.
132
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000133% ==== 5. ====
134% If your module defines new object types (for a built-in module) or
135% classes (for a module written in Python), you should list the
136% methods and instance variables (if any) of each type or class in a
Fred Drake07bcd991998-04-03 21:25:16 +0000137% separate subsection.
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000138
Guido van Rossum470be141995-03-17 16:07:09 +0000139\subsection{Spam Objects}
Fred Drake07bcd991998-04-03 21:25:16 +0000140\label{spam-objects}
141% This label is generally useful for referencing this section, but is
142% also used to give a filename when generating HTML.
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000143
Fred Drake07bcd991998-04-03 21:25:16 +0000144Spam objects, as returned by \function{open()} above, have the
145following methods:
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000146
Fred Drake07bcd991998-04-03 21:25:16 +0000147\begin{methoddesc}[spam]{empty}{}
Guido van Rossum51bbdfb1995-03-01 14:07:08 +0000148Empty the can into the trash.
Fred Drake07bcd991998-04-03 21:25:16 +0000149\end{methoddesc}