home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / p / python / pyhtmldoc / b / bastion next >
Text File  |  1996-11-14  |  2KB  |  33 lines

  1. <TITLE>Bastion -- Python library reference</TITLE>
  2. Prev: <A HREF="../r/rexec" TYPE="Prev">rexec</A>  
  3. Up: <A HREF="../r/restricted_execution" TYPE="Up">Restricted Execution</A>  
  4. Top: <A HREF="../t/top" TYPE="Top">Top</A>  
  5. <H1>11.2. Standard Module <CODE>Bastion</CODE></H1>
  6. According to the dictionary, a bastion is ``a fortified area or
  7. position'', or ``something that is considered a stronghold.''  It's a
  8. suitable name for this module, which provides a way to forbid access
  9. to certain attributes of an object.  It must always be used with the
  10. <CODE>rexec</CODE> module, in order to allow restricted-mode programs access
  11. to certain safe attributes of an object, while denying access to
  12. other, unsafe attributes.
  13. <P>
  14. <DL><DT><B>Bastion</B> (<VAR>object</VAR>[, <VAR>filter</VAR>, <VAR>name</VAR>, <VAR>class</VAR>]) -- function of module Bastion<DD>
  15. Protect the class instance <VAR>object</VAR>, returning a bastion for the
  16. object.  Any attempt to access one of the object's attributes will
  17. have to be approved by the <VAR>filter</VAR> function; if the access is
  18. denied an AttributeError exception will be raised.
  19. <P>
  20. If present, <VAR>filter</VAR> must be a function that accepts a string
  21. containing an attribute name, and returns true if access to that
  22. attribute will be permitted; if <VAR>filter</VAR> returns false, the access
  23. is denied.  The default filter denies access to any function beginning
  24. with an underscore (<CODE>_</CODE>).  The bastion's string representation
  25. will be <CODE><Bastion for <VAR>name</VAR>></CODE> if a value for
  26. <VAR>name</VAR> is provided; otherwise, <CODE>repr(<VAR>object</VAR>)</CODE> will be used.
  27. <P>
  28. <VAR>class</VAR>, if present, would be a subclass of <CODE>BastionClass</CODE>;
  29. see the code in <FILE>bastion.py</FILE> for the details.  Overriding the
  30. default <CODE>BastionClass</CODE> will rarely be required.  
  31. <P>
  32. </DL>
  33.