Changeset 673

Show
Ignore:
Timestamp:
08/25/03 17:42:52 (5 years ago)
Author:
sholloway
Message:

Correction of rootPath behavior

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBSkinning/RBSkinning/XMLSkinner.py

    r528 r673  
    4141 
    4242    DefaultContext = None 
     43    rootPath = '' 
    4344 
    4445    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    4647    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    4748 
    48     def __init__(self, mapSupportedSkinNamespaces={}, rootPath=''): 
    49         self.rootPath = rootPath 
     49    def __init__(self, mapSupportedSkinNamespaces={}, rootPath=None): 
     50        if self.rootPath is not None: 
     51            self.rootPath = rootPath 
    5052        XMLClassBuilder.__init__(self) 
    5153        self.AddElementFactories(mapSupportedSkinNamespaces) 
     
    6264 
    6365    def SkinXML(self, xml, contextIn=None, **kwAddedContext): 
    64         rootPath = self.rootPath or os.getcwd(
     66        rootPath = self._GetRootPath(kwAddedContext
    6567        self._elements, self._LastCompleteElement  = [], None 
    6668        parser = self._CreateParser() 
     
    8587            file = os.path.abspath(file) 
    8688            file = open(file, 'r') 
    87         else: rootPath = kwAddedContext.get('__root__', None) or self.rootPath or os.getcwd() 
     89        else:  
     90            rootPath = self._GetRootPath(kwAddedContext) 
    8891 
    8992        self._elements, self._LastCompleteElement  = [], None 
     
    105108 
    106109    def GraftXML(self, GraftElements, xml, **kwAddedContext): 
    107         rootPath = self.rootPath or os.getcwd(
     110        rootPath = self._GetRootPath(kwAddedContext
    108111        self._elements, self._LastCompleteElement = GraftElements, GraftElements[-1] 
    109112 
     
    132135            file = os.path.abspath(file) 
    133136            file = open(file, 'r') 
    134         else: rootPath = kwAddedContext.get('__root__', None) or self.rootPath or os.getcwd() 
     137        else: 
     138            rootPath = self._GetRootPath(kwAddedContext) 
    135139 
    136140        self._elements, self._LastCompleteElement = GraftElements, GraftElements[-1] 
     
    162166        element.context.__skinner__ = weakref.ref(self) 
    163167        element.context._update(kwAddedContext) 
     168        rootPath = self._GetRootPath(kwAddedContext) 
     169        if rootPath: element.context.__root__ = rootPath 
    164170 
    165171        self._do_parse(parser.Parse, xml) 
     
    176182            file = os.path.abspath(file) 
    177183            file = open(file, 'r') 
    178         else: rootPath = '' 
     184        else: self._GetRootPath(kwAddedContext) 
    179185 
    180186        parser = self._CreateParser() 
     
    186192 
    187193        return self._LastCompleteElement 
     194 
     195    def _GetRootPath(self, context, default=None): 
     196        if default is None: 
     197            result = context.get('__root__', None) or self.rootPath or os.getcwd() 
     198        else: 
     199            result = context.get('__root__', default) 
     200        return result 
     201