| \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 |
| |
| % 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. |
| |
| \section{Extension Module \sectcode{spamsprock}} |
| \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. |
| |
| \section{Module \sectcode{sprunkit}} |
| \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} |