summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Doc/lib/libbastion.tex
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libbastion.tex
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (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.tex57
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}