Changeset 175

Show
Ignore:
Timestamp:
06/17/02 20:42:53 (6 years ago)
Author:
sholloway
Message:

Updated documentation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/ObjectifiedXMLParser.py

    r164 r175  
    3636 
    3737from xml.parsers.expat import ParserCreate as _ParserCreate 
     38from WeakBind import BindCallable 
    3839 
    3940#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    4243 
    4344class LazyExpatXMLParser(object): 
     45    """Use Expat parser to parse string/file data, but create the 
     46    parser as late as possible.""" 
    4447    def __init__(self, encoding='ASCII', seperator=' '): 
    4548        self._encoding = encoding 
     
    5053        parser = _ParserCreate(self._encoding, self._seperator) 
    5154        parser.returns_unicode = self._encoding != 'ASCII' and 1 or 0 
    52         parser.StartElementHandler = self.StartElementHandler 
    53         parser.EndElementHandler = self.EndElementHandler  
    54         parser.CharacterDataHandler = self.CharacterDataHandler  
     55        parser.StartElementHandler = BindCallable(self.StartElementHandler) 
     56        parser.EndElementHandler = BindCallable(self.EndElementHandler) 
     57        parser.CharacterDataHandler = BindCallable(self.CharacterDataHandler) 
    5558        return parser.Parse(*args, **kw) 
    5659 
     
    6770 
    6871class ObjectifiedXMLParser(LazyExpatXMLParser): 
     72    """Mimics the events of the Expat parser with an Objectifed XML 
     73    object as the source data.  Builds on LazyExpatXMLParser in case 
     74    the passed in data is in string form.""" 
    6975    def Parse(self, obj, *args, **kw): 
    70         if not isinstance(obj, str): 
     76        if not isinstance(obj, str):  
    7177            # Here's the magic... reuse the already objectified XML 
    7278            name = self._seperator.join([obj.__namespace__, obj.__node__]) 
  • trunk/RBFoundation/RBFoundation/WeakBind.py

    r164 r175  
    3131##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
     33"""weakref for callable objects. 
     34 
     35See WeakBoundCallable and BindCallable for more details 
     36""" 
     37 
    3338#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3439#~ Imports  
     
    5661 
    5762class WeakBoundCallable(BoundCallableBase): 
     63    """weakref for callable objects. 
     64     
     65    Weakref objects have become a matter of necessity for managing the scope of interconnected 
     66    networks of objects, defining owner and owned, while still allow for reference loops. 
     67    However, weakref-ing a bound method always returns a dead weakref, but true references keep 
     68    the "owner" class around.  WeakBoundCallable's intention is to provide weakref-type support  
     69    for bound methods, as well as all other callable objects. 
     70     
     71    As a related sidenote, the ContextApply module builds upon this concepts to bind method variables 
     72    to bound-callable objects.""" 
     73     
    5874    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    5975    #~ Constants / Variables / Etc.  
     
    122138 
    123139class StrongBoundCallable(BoundCallableBase): 
     140    """Provides the same interface as WeakBoundCallable, but maintains strong references 
     141    to both class instances and callable objects.  Used mainly in ContextApply to build  
     142    upon a common class interface.""" 
     143 
    124144    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    125145    #~ Constants / Variables / Etc.  
     
    160180 
    161181def BindCallable(callback): 
     182    """Weakly binds a callable object only if needed."""  
    162183    if isinstance(callback, BoundCallableBase): 
    163184        # It's already bound in some form or another,  
  • trunk/RBSkinning/RBSkinning/wxPythonSkin/status.html

    r174 r175  
    22    <body> 
    33        <table> 
    4             <tr><td><b>Special:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     4            <tr><td><b>Special:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    55            <tr><td>PyCrust: crust, shell, filling<td>1<td>-<td>-<td>- 
    66            <tr><td>wxStyledTextCtrl<td>1<td>-<td>-<td>- 
    77            <tr><td>Transform wxEventSystem<td>1<td>-<td>-<td>- 
    88 
    9             <tr><td><b>Frame:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     9            <tr><td><b>Frame:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    1010            <tr><td>wxFrame<td>1<td>-<td>-<td>- 
    1111            <tr><td>wxMiniFrame<td>1<td>-<td>-<td>- 
     
    1313            <tr><td>wxMDIParentFrame<td>1<td>-<td>-<td>- 
    1414 
    15             <tr><td><b>Dialogs:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     15            <tr><td><b>Dialogs:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    1616            <tr><td>wxDialog<td>1<td>-<td>-<td>- 
    1717            <tr><td>wxWizard<td>-<td>-<td>1<td>- 
     
    1919            <tr><td>wxWizardPageSimple<td>-<td>-<td>1<td>- 
    2020 
    21             <tr><td><b>Container Windows:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     21            <tr><td><b>Container Windows:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    2222            <tr><td>wxPopupWindow<td>-<td>-<td>-<td>1 
    2323            <tr><td>wxPopupTransientWindow<td>-<td>-<td>-<td>1 
     
    3030            <tr><td>wxPanel<td>1<td>-<td>-<td>- 
    3131 
    32             <tr><td><b>Bars:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     32            <tr><td><b>Bars:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    3333            <tr><td>wxMenuBar<td>1<td>-<td>-<td>- 
    3434            <tr><td>wxToolBar<td>-<td>-<td>1<td>- 
    3535            <tr><td>wxStatusBar<td>1<td>-<td>-<td>- 
    3636 
    37             <tr><td><b>Widgets:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     37            <tr><td><b>Widgets:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    3838            <tr><td>wxGrid<td>1<td>-<td>-<td>- 
    3939            <tr><td>wxHtmlWindow<td>-<td>-<td>1<td>- 
     
    4949            <tr><td>wxListCtrl<td>1<td>-<td>-<td>- 
    5050            <tr><td>wxTextCtrl<td>1<td>-<td>-<td>- 
    51             <tr><td>wxTaCtrl<td>-<td>-<td>-<td>1 
     51            <tr><td>wxTabCtrl<td>-<td>-<td>-<td>1 
    5252            <tr><td>wxTreeCtrl<td>1<td>-<td>-<td>- 
    5353            <tr><td>wxScrollBar<td>-<td>-<td>1<td>- 
     
    6363            <tr><td>wxLEDNumberCtrl<td>-<td>-<td>-<td>1 
    6464 
    65             <tr><td><b>User Interaction:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     65            <tr><td><b>User Interaction:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    6666            <tr><td>wxMenu<td>1<td>-<td>-<td>- 
    6767            <tr><td>wxMenuItem<td>1<td>-<td>-<td>- 
    6868            <tr><td>wxAcceleratorTable<td>-<td>1<td>-<td>- 
    6969 
    70             <tr><td><b>Layout:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     70            <tr><td><b>Layout:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    7171            <tr><td>wxLayoutConstraints<td>-<td>-<td>-<td>1 
    7272            <tr><td>wxIndividualLayoutConstraint<td>-<td>-<td>-<td>1 
    7373            <tr><td>wxSizers<td>1<td>-<td>-<td>- 
    74             <tr><td>wxLayoutAlgorithm<td>-<td>-<td>-<td>1 
     74            <tr><td>wxLayoutAlgorithm<td>1<td>-<td>-<td>- 
    7575            <tr><td>LayoutAnchors (from wxPython.lib.anchors)<td>-<td>-<td>1<td>- 
    7676 
    77             <tr><td><b>Graphics:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     77            <tr><td><b>Graphics:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    7878            <tr><td>wxFont<td>-<td>-<td>1<td>- 
    7979            <tr><td>wxFontList<td>-<td>-<td>1<td>- 
     
    8383            <tr><td>wxMask<td>-<td>-<td>1<td>- 
    8484 
    85             <tr><td><b>Misc:</b><td>Complete<td>Needed<td>Wanted<td>WhyIsItHere 
     85            <tr><td><b>Misc:</b><td>Complete<td>Needed<td>Wanted<td>NotPlanned 
    8686            <tr><td>wxApplication<td>1<td>-<td>-<td>- 
    8787            <tr><td>wxTimer<td>-<td>-<td>1<td>- 
    8888            <tr><td>wxGLCanvas<td>1<td>-<td>-<td>- 
    89             <tr><td>wxOGL<td>-<td>-<td>1<td>- 
     89            <tr><td>wxOGL<td>1<td>-<td>-<td>- 
    9090            <tr><td>wxJoystick<td>-<td>-<td>1<td>- 
    9191            <tr><td>SplitTree<td>-<td>-<td>-<td>1