diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libbastion.tex | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libbastion.tex')
-rw-r--r-- | sys/src/cmd/python/Doc/lib/libbastion.tex | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/lib/libbastion.tex b/sys/src/cmd/python/Doc/lib/libbastion.tex new file mode 100644 index 000000000..9f45c47a2 --- /dev/null +++ b/sys/src/cmd/python/Doc/lib/libbastion.tex @@ -0,0 +1,57 @@ +\section{\module{Bastion} --- + Restricting access to objects} + +\declaremodule{standard}{Bastion} +\modulesynopsis{Providing restricted access to objects.} +\moduleauthor{Barry Warsaw}{bwarsaw@python.org} +\versionchanged[Disabled module]{2.3} + +\begin{notice}[warning] + The documentation has been left in place to help in reading old code + that uses the module. +\end{notice} + +% 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 +\refmodule{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\optional{, + name\optional{, class}}}} +Protect the object \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 \exception{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 (\character{_}). The bastion's string representation +will be \samp{<Bastion for \var{name}>} if a value for +\var{name} is provided; otherwise, \samp{repr(\var{object})} will be +used. + +\var{class}, if present, should be a subclass of \class{BastionClass}; +see the code in \file{bastion.py} for the details. Overriding the +default \class{BastionClass} will rarely be required. +\end{funcdesc} + + +\begin{classdesc}{BastionClass}{getfunc, name} +Class which actually implements bastion objects. This is the default +class used by \function{Bastion()}. The \var{getfunc} parameter is a +function which returns the value of an attribute which should be +exposed to the restricted execution environment when called with the +name of the attribute as the only parameter. \var{name} is used to +construct the \function{repr()} of the \class{BastionClass} instance. +\end{classdesc} |