Adding libshlex and libnetrc by Eric Raymond.
This commit is contained in:
parent
a7d9bdfab6
commit
5e97c9dff9
|
@ -116,6 +116,7 @@ add new extensions to Python and how to embed it in other applications.
|
|||
\input{libfileinput}
|
||||
\input{libcalendar}
|
||||
\input{libcmd}
|
||||
\input{libshlex}
|
||||
|
||||
\input{liballos} % Generic Operating System Services
|
||||
\input{libos}
|
||||
|
@ -192,6 +193,7 @@ add new extensions to Python and how to embed it in other applications.
|
|||
\input{libquopri}
|
||||
\input{libmailbox}
|
||||
\input{libmimify}
|
||||
\input{libnetrc}
|
||||
|
||||
\input{librestricted}
|
||||
\input{librexec}
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
||||
|
|
@ -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}
|
||||
|
Loading…
Reference in New Issue