1998-03-25 11:39:49 -04:00
|
|
|
\documentclass{howto}
|
|
|
|
|
|
|
|
% This is a template for short or medium-size Python-related documents,
|
|
|
|
% mostly notably the series of HOWTOs, but it can be used for any
|
|
|
|
% document you like.
|
|
|
|
|
|
|
|
% The title should be descriptive enough for people to be able to find
|
|
|
|
% the relevant document.
|
|
|
|
\title{Spammifying Sprockets in Python}
|
|
|
|
|
|
|
|
% Increment the release number whenever significant changes are made.
|
|
|
|
% The author and/or editor can define 'significant' however they like.
|
|
|
|
\release{0.00}
|
|
|
|
|
|
|
|
% At minimum, give your name and an e-mail address. You can include a
|
|
|
|
% snail-mail address if you like.
|
|
|
|
\author{Me, 'cause I wrote it}
|
|
|
|
\authoraddress{Me, 'cause I'm self-employed.}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
|
1998-07-28 18:53:34 -03:00
|
|
|
% This makes the Abstract go on a separate page in the HTML version;
|
|
|
|
% if a copyright notice is used, it should go immediately after this.
|
|
|
|
%
|
|
|
|
\ifhtml
|
|
|
|
\chapter*{Front Matter\label{front}}
|
|
|
|
\fi
|
|
|
|
|
|
|
|
% Copyright statement should go here, if needed.
|
|
|
|
% ...
|
|
|
|
|
1998-03-25 11:39:49 -04:00
|
|
|
% The abstract should be a paragraph or two long, and describe the
|
|
|
|
% scope of the document.
|
|
|
|
\begin{abstract}
|
|
|
|
\noindent
|
|
|
|
This document describes how to spammify sprockets. It is a useful
|
|
|
|
example of a Python HOWTO document. It is not dependent on any
|
|
|
|
particular sprocket implementation, and includes a Python-based
|
|
|
|
implementation in the \module{sprunkit} module.
|
|
|
|
\end{abstract}
|
|
|
|
|
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
Spammifying sprockets from Python is both fun and entertaining.
|
|
|
|
Applying the techniques described here, you can also fill your hard
|
|
|
|
disk quite effectively.
|
|
|
|
|
|
|
|
\section{What is Sprocket Spammification?}
|
|
|
|
|
|
|
|
You have to ask? It's the only thing to do to your sprockets!
|
|
|
|
|
|
|
|
|
|
|
|
\section{Why Use Python?}
|
|
|
|
|
|
|
|
Python is an excellent language from which to spammify your sprockets
|
|
|
|
since you can do it on any platform.
|
|
|
|
|
|
|
|
|
|
|
|
\section{Software Requirements}
|
|
|
|
|
|
|
|
You need to have the following software installed:
|
|
|
|
|
|
|
|
% The {itemize} environment uses a bullet for each \item. If you want the
|
|
|
|
% \item's numbered, use the {enumerate} environment instead.
|
|
|
|
\begin{itemize}
|
|
|
|
\item Python 1.9.
|
|
|
|
\item Some sprocket definition files.
|
|
|
|
\item At least one sprocket system implementation.
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
Note that the \module{sprunkit} is provided with this package and
|
|
|
|
implements ActiveSprockets in Python.
|
|
|
|
|
|
|
|
|
|
|
|
% The preceding sections will have been written in a gentler,
|
|
|
|
% introductory style. You may also wish to include a reference
|
|
|
|
% section, documenting all the functions/exceptions/constants.
|
|
|
|
% The following is a model for such a reference section, for
|
|
|
|
% an extension module written in C.
|
|
|
|
|
1998-04-04 03:23:21 -04:00
|
|
|
\section{Extension Module \module{spamsprock}}
|
1998-03-25 11:39:49 -04:00
|
|
|
\exmodindex{spamsprock} % Set the module name for the index
|
|
|
|
\label{module-spamsprock} % Create a label for cross-references
|
|
|
|
|
|
|
|
A \C{} module is provided to perform spammification operations very
|
|
|
|
quickly. It exports a function, an exception, and some constants.
|
|
|
|
|
|
|
|
% A function definition
|
|
|
|
\begin{funcdesc}{spammify}{sprocket\optional{, options}}
|
|
|
|
Spammify the sprocket given as \var{sprocket}. Flags my be
|
|
|
|
bitwise-ORed together and passed as \var{options}.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
% An exception definition
|
|
|
|
\begin{excdesc}{SpamError}
|
|
|
|
The exception that is raised when spammification fails, or just takes
|
|
|
|
too long.
|
|
|
|
\end{excdesc}
|
|
|
|
|
|
|
|
% A definition of two constants
|
|
|
|
\begin{datadesc}{FROBNICATE}
|
|
|
|
Value to be used for the \var{options} parameter to
|
|
|
|
\function{spammify()} to indicate that the \var{sprocket} parameter to
|
|
|
|
that function should be frobnicated as well as spammified.
|
|
|
|
\end{datadesc}
|
|
|
|
|
|
|
|
\begin{datadesc}{NO_FROBNICATE}
|
|
|
|
As with \constant{FROBNICATE}, but indicates that frobnication should
|
|
|
|
not be performed. The default is to frobnicate randomly.
|
|
|
|
\end{datadesc}
|
|
|
|
|
|
|
|
|
|
|
|
% The following section is a model for documenting modules written in
|
|
|
|
% Python.
|
|
|
|
|
1998-04-04 03:23:21 -04:00
|
|
|
\section{Module \module{sprunkit}}
|
1998-03-25 11:39:49 -04:00
|
|
|
\modindex{ezspam}
|
|
|
|
\label{module-sprunkit}
|
|
|
|
|
|
|
|
This module provides a high level interface to spammification
|
|
|
|
operations. It provides an interesting base class and an exception.
|
|
|
|
|
|
|
|
% A class definition
|
|
|
|
\begin{classdesc}{SprunkSprocket}{\optional{path}}
|
|
|
|
A Python-only implementation of a persistent sprocket. The \var{path}
|
|
|
|
parameter should refer to a spocket definition file. If omitted, a
|
|
|
|
new sprocket is created.
|
|
|
|
\end{classdesc}
|
|
|
|
|
|
|
|
% An exception definition
|
|
|
|
\begin{excdesc}{PersistenceError}
|
|
|
|
Exception raised when the \method{save()} method of a
|
|
|
|
\class{SprunkSprockit} instance fails.
|
|
|
|
\end{excdesc}
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{\class{SprunkSprocket} Objects}
|
|
|
|
|
|
|
|
\class{SprunkSprocket} objects have the following methods:
|
|
|
|
|
|
|
|
\begin{funcdesc}{save}{\optional{path}}
|
|
|
|
Save the sprocket in the file specified by \var{path}. If \var{path}
|
|
|
|
is omitted, the \var{path} specified to the constructor is used. If
|
|
|
|
neither was specified, raises the \exception{PersistenceError}
|
|
|
|
exception.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
|
|
|
|
\begin{funcdesc}{persist}{path}
|
|
|
|
Set the default file name that the \method{save()} method will use.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
|
|
|
|
\begin{funcdesc}{insist}{}
|
|
|
|
Make the sprocket assert itself. This method cannot fail.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
|
|
|
|
\appendix
|
|
|
|
|
|
|
|
\section{This is an Appendix}
|
|
|
|
|
|
|
|
To create an appendix in a Python HOWTO document, use markup like
|
|
|
|
this:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
\appendix
|
|
|
|
|
|
|
|
\section{This is an Appendix}
|
|
|
|
|
|
|
|
To create an appendix in a Python HOWTO document, ....
|
|
|
|
|
|
|
|
|
|
|
|
\section{This is another}
|
|
|
|
|
|
|
|
Just add another \section{}, but don't say \appendix again.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
|
|
|
|
\end{document}
|