From 5e97c9dff91ad885d36a9d26f97549f198b90ee8 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 22 Dec 1998 05:18:24 +0000 Subject: [PATCH] Adding libshlex and libnetrc by Eric Raymond. --- Doc/lib/lib.tex | 2 ++ Doc/lib/libnetrc.tex | 47 +++++++++++++++++++++++++++ Doc/lib/libshlex.tex | 77 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 Doc/lib/libnetrc.tex create mode 100644 Doc/lib/libshlex.tex diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex index 178503b1e5e..6b031e99a0c 100644 --- a/Doc/lib/lib.tex +++ b/Doc/lib/lib.tex @@ -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} diff --git a/Doc/lib/libnetrc.tex b/Doc/lib/libnetrc.tex new file mode 100644 index 00000000000..4d23769a953 --- /dev/null +++ b/Doc/lib/libnetrc.tex @@ -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} + + + diff --git a/Doc/lib/libshlex.tex b/Doc/lib/libshlex.tex new file mode 100644 index 00000000000..8dded140e55 --- /dev/null +++ b/Doc/lib/libshlex.tex @@ -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} +