diff --git a/Doc/Makefile b/Doc/Makefile index 3ff2768a6ea..6c2afb1e1c4 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -127,7 +127,7 @@ LIBFILES = lib.tex \ libmacfs.tex libmacos.tex libmacostools.tex libmactcp.tex \ libmacspeech.tex libmacui.tex libstdwin.tex libsgi.tex libal.tex \ libcd.tex libfl.tex libfm.tex libgl.tex libimgfile.tex libsun.tex \ - libxdrlib.tex libimghdr.tex + libxdrlib.tex libimghdr.tex librexec.tex libbastion.tex # Library document lib.dvi: $(LIBFILES) diff --git a/Doc/lib.tex b/Doc/lib.tex index 2c99cbe346b..3e74935d7cc 100644 --- a/Doc/lib.tex +++ b/Doc/lib.tex @@ -83,6 +83,8 @@ to Python and how to embed it in other applications. \input{libcopy} \input{libmarshal} \input{libimp} +\input{librexec} +\input{libbastion} \input{libparser} \input{libbltin} % really __builtin__ \input{libmain} % really __main__ diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex index 2c99cbe346b..3e74935d7cc 100644 --- a/Doc/lib/lib.tex +++ b/Doc/lib/lib.tex @@ -83,6 +83,8 @@ to Python and how to embed it in other applications. \input{libcopy} \input{libmarshal} \input{libimp} +\input{librexec} +\input{libbastion} \input{libparser} \input{libbltin} % really __builtin__ \input{libmain} % really __main__ diff --git a/Doc/lib/libbastion.tex b/Doc/lib/libbastion.tex new file mode 100644 index 00000000000..158ec081c33 --- /dev/null +++ b/Doc/lib/libbastion.tex @@ -0,0 +1,37 @@ +\section{Standard Module \sectcode{Bastion}} +\stmodindex{Bastion} +\renewcommand{\indexsubitem}{(in module Bastion)} + +% I'm concerned that the word 'bastion' won't be understood by people +% for whom English is a second language, making the module name +% somewhat mysterious. Thus, the brief definition... --amk + +According to the dictionary, a bastion is ``a fortified area or +position'', or ``something that is considered a stronghold.'' It's a +suitable name for this module, which provides a way to forbid access +to certain attributes of an object. It must always be used with the +\code{rexec} module, in order to allow restricted-mode programs access +to certain safe attributes of an object, while denying access to +other, unsafe attributes. + +% I've punted on the issue of documenting keyword arguments for now. + +\begin{funcdesc}{Bastion}{object\optional{\, filter\, name\, class}} +Protect the class instance \var{object}, returning a bastion for the +object. Any attempt to access one of the object's attributes will +have to be approved by the \var{filter} function; if the access is +denied an AttributeError exception will be raised. + +If present, \var{filter} must be a function that accepts a string +containing an attribute name, and returns true if access to that +attribute will be permitted; if \var{filter} returns false, the access +is denied. The default filter denies access to any function beginning +with an underscore (\code{_}). The bastion's string representation +will be \code{} if a value for +\var{name} is provided; otherwise, \code{repr(\var{object})} will be used. + +\var{class}, if present, would be a subclass of \code{BastionClass}; +see the code in \file{bastion.py} for the details. Overriding the +default \code{BastionClass} will rarely be required. + +\end{funcdesc} diff --git a/Doc/lib/librexec.tex b/Doc/lib/librexec.tex new file mode 100644 index 00000000000..76e63fcb464 --- /dev/null +++ b/Doc/lib/librexec.tex @@ -0,0 +1,5 @@ +\section{Standard Module \sectcode{rexec}} +\stmodindex{rexec} +\renewcommand{\indexsubitem}{(in module rexec)} + +XXX To be provided. diff --git a/Doc/libbastion.tex b/Doc/libbastion.tex new file mode 100644 index 00000000000..158ec081c33 --- /dev/null +++ b/Doc/libbastion.tex @@ -0,0 +1,37 @@ +\section{Standard Module \sectcode{Bastion}} +\stmodindex{Bastion} +\renewcommand{\indexsubitem}{(in module Bastion)} + +% I'm concerned that the word 'bastion' won't be understood by people +% for whom English is a second language, making the module name +% somewhat mysterious. Thus, the brief definition... --amk + +According to the dictionary, a bastion is ``a fortified area or +position'', or ``something that is considered a stronghold.'' It's a +suitable name for this module, which provides a way to forbid access +to certain attributes of an object. It must always be used with the +\code{rexec} module, in order to allow restricted-mode programs access +to certain safe attributes of an object, while denying access to +other, unsafe attributes. + +% I've punted on the issue of documenting keyword arguments for now. + +\begin{funcdesc}{Bastion}{object\optional{\, filter\, name\, class}} +Protect the class instance \var{object}, returning a bastion for the +object. Any attempt to access one of the object's attributes will +have to be approved by the \var{filter} function; if the access is +denied an AttributeError exception will be raised. + +If present, \var{filter} must be a function that accepts a string +containing an attribute name, and returns true if access to that +attribute will be permitted; if \var{filter} returns false, the access +is denied. The default filter denies access to any function beginning +with an underscore (\code{_}). The bastion's string representation +will be \code{} if a value for +\var{name} is provided; otherwise, \code{repr(\var{object})} will be used. + +\var{class}, if present, would be a subclass of \code{BastionClass}; +see the code in \file{bastion.py} for the details. Overriding the +default \code{BastionClass} will rarely be required. + +\end{funcdesc} diff --git a/Doc/librexec.tex b/Doc/librexec.tex new file mode 100644 index 00000000000..76e63fcb464 --- /dev/null +++ b/Doc/librexec.tex @@ -0,0 +1,5 @@ +\section{Standard Module \sectcode{rexec}} +\stmodindex{rexec} +\renewcommand{\indexsubitem}{(in module rexec)} + +XXX To be provided.