Adding libshlex and libnetrc by Eric Raymond.

This commit is contained in:
Guido van Rossum 1998-12-22 05:18:24 +00:00
parent a7d9bdfab6
commit 5e97c9dff9
3 changed files with 126 additions and 0 deletions

View File

@ -116,6 +116,7 @@ add new extensions to Python and how to embed it in other applications.
\input{libfileinput} \input{libfileinput}
\input{libcalendar} \input{libcalendar}
\input{libcmd} \input{libcmd}
\input{libshlex}
\input{liballos} % Generic Operating System Services \input{liballos} % Generic Operating System Services
\input{libos} \input{libos}
@ -192,6 +193,7 @@ add new extensions to Python and how to embed it in other applications.
\input{libquopri} \input{libquopri}
\input{libmailbox} \input{libmailbox}
\input{libmimify} \input{libmimify}
\input{libnetrc}
\input{librestricted} \input{librestricted}
\input{librexec} \input{librexec}

47
Doc/lib/libnetrc.tex Normal file
View File

@ -0,0 +1,47 @@
% Module and documentation by Eric S. Raymond, 21 Dec 1998
\section{Standard Module \module{netrc}}
\stmodindex{netrc}
\label{module-netrc}
The \code{netrc} class parses and encapsulates the netrc file format
used by Unix's ftp(1) and other FTP clientd
\begin{classdesc}{netrc}{\optional{file}}
A \class{netrc} instance or subclass instance enapsulates data from
a netrc file. The initialization argument, if present, specifies the file
to parse. If no argument is given, the file .netrc in the user's home
directory will be read. Parse errors will throw a SyntaxError
exception with associated diagnostic information including the file
name, line number, and terminating token.
\end{classdesc}
\subsection{netrc Objects}
\label{netrc-objects}
A \class{netrc} instance has the following methods:
\begin{methoddesc}{authenticators}{}
Return a 3-tuple (login, account, password) of authenticators for the
given host. If the netrc file did not contain an entry for the given
host, return the tuple associated with the `default' entry. If
neither matching host nor default entry is available, return None.
\end{methoddesc}
\begin{methoddesc}{__repr__}{host}
Dump the class data as a string in the format of a netrc file.
(This discards comments and may reorder the entries.)
\end{methoddesc}
Instances of \class{netrc} have public instance variables:
\begin{memberdesc}{hosts}
Dictionmary mapping host names to login/account/password tuples. The
`default' entry, if any, is represented as a pseudo-host by that name.
\end{memberdesc}
\begin{memberdesc}{macros}
Dictionary mapping macro names to string lists.
\end{memberdesc}

77
Doc/lib/libshlex.tex Normal file
View File

@ -0,0 +1,77 @@
% Module and documentation by Eric S. Raymond, 21 Dec 1998
\section{Standard Module \module{shlex}}
\stmodindex{shlex}
\label{module-shlex}
The \code{shlex} class makes it easy to write lexical analyzers for
simple syntaxes resembling that of the Unix shell. This will often
be useful for writing minilanguages, e.g. in run control files for
Python applications.
\begin{classdesc}{shlex}{\optional{stream}}
A \class{shlex} instance or subclass instance is a lexical analyzer
object. The initialization argument, if present, specifies where to
read characters from. It must be a file- or stream-like object with
\method{read} and \method{readline} methods. If no argument is given,
input will be taken from sys.stdin.
\end{classdesc}
\subsection{shlex Objects}
\label{shlex-objects}
A \class{shlex} instance has the following methods:
\begin{methoddesc}{get_token}{}
Return a token. If tokens have been stacked using \method{push_token},
pop a token off the stack. Otherwise, read one from the input stream.
If reading encounters an immediate end-of-file, '' is returned.
\end{methoddesc}
\begin{methoddesc}{push_token}{str}
Push the argument onto the token stack.
\end{methoddesc}
Instances of \class{shlex} subclasses have some public instance
variables which either control lexical analysis or can be used
for debugging:
\begin{memberdesc}{commenters}
The string of characters that are recognized as comment beginners.
All characters from the comment beginner to end of line are ignored.
Includes just '#' by default.
\end{memberdesc}
\begin{memberdesc}{wordchars}
The string of characters that will accumulate into multi-character
tokens. By default, includes all ASCII alphanumerics and underscore.
\end{memberdesc}
\begin{memberdesc}{whitespace}
Characters that will be considered whitespace and skipped. Whitespace
bounds tokens. By default, includes space and tab and linefeed and
carriage-return.
\end{memberdesc}
\begin{memberdesc}{quotes}
Characters that will be considered string quotes. The token
accumulates until the same quote is encountered again (thus, different
quote types protect each other as in the shall.) By default, includes
ASCII single and double quotes.
\end{memberdesc}
Note that any character not declared to be a word character,
whitespace, or a quote will be returned as a single-character token.
Quote and comment characters are not recognized within words. Thus,
the bare words ``ain't'' and ``ain#t'' would be returned as single
tokens by the default parser.
\begin{memberdesc}{lineno}
Source line number (count of newlines seen so far plus one).
\end{memberdesc}
\begin{memberdesc}{token}
The token buffer. It may be useful to examine this when catching exceptions.
\end{memberdesc}