Changeset 2978:baddfacf3148 in livinglogic.python.xist

Show
Ignore:
Timestamp:
09/24/07 16:50:40 (12 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
newparser
Message:

In xnd.py namespace names now live in the element, not in the module

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • src/ll/xist/xnd.py

    r2939 r2978  
    102102 
    103103class Module(Base): 
    104     def __init__(self, xmlns=None, doc=None): 
    105         Base.__init__(self, "xmlns") 
    106         self.xmlns = xmlns 
     104    def __init__(self, doc=None): 
     105        Base.__init__(self, "____") 
    107106        self.doc = doc 
    108107        self.content = [] 
     
    173172 
    174173        lines.append([level, "from ll.xist import xsc, sims"]) 
    175  
    176         lines.append([0, ""]) 
    177         lines.append([0, ""]) 
    178         lines.append([level, "%s = %s" % (self.pyname, self.simplify(self.xmlns if self.xmlns is not None else "... insert namespace name ..."))]) 
    179174 
    180175        # output attribute groups 
     
    247242 
    248243class Element(Base): 
    249     def __init__(self, name, modeltype=None, modelargs=None, doc=None): 
     244    def __init__(self, name, xmlns=None, modeltype=None, modelargs=None, doc=None): 
    250245        Base.__init__(self, name) 
     246        self.xmlns = xmlns 
    251247        self.attrs = [] 
    252248        self.modeltype = modeltype 
     
    255251 
    256252    def __repr__(self): 
    257         return "<%s.%s name=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, id(self)) 
     253        return "<%s.%s name=%r xmlns=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.xmlns, id(self)) 
    258254 
    259255    def __call__(self, *content): 
     
    265261        newlines = [] 
    266262        self._adddoc(newlines, level+1) 
    267         newlines.append([level+1, "xmlns = xmlns"]) 
     263        if self.xmlns is not None: 
     264            newlines.append([level+1, "xmlns = %s" % self.simplify(self.xmlns)]) 
    268265        if self.pyname != self.name: 
    269266            newlines.append([level+1, "xmlname = %s" % self.simplify(self.name)]) 
     
    376373        newlines = [] 
    377374        self._adddoc(newlines, level+1) 
    378         newlines.append([level+1, "xmlns = xmlns"]) 
    379375        if self.pyname != self.name: 
    380376            newlines.append([level+1, "xmlname = %s" % self.simplify(self.name)]) 
     
    394390        newlines = [] 
    395391        self._adddoc(newlines, level+1) 
    396         newlines.append([level+1, "xmlns = xmlns"]) 
    397392        if self.pyname != self.name: 
    398393            newlines.append([level+1, "xmlname = %s" % self.simplify(self.name)]) 
     
    412407        newlines = [] 
    413408        self._adddoc(newlines, level+1) 
    414         newlines.append([level+1, "xmlns = xmlns"]) 
    415409        if self.pyname != self.name: 
    416410            newlines.append([level+1, "xmlname = %s" % self.simplify(self.name)]) 
  • test/test_xnd.py

    • Property exe deleted
    r2903 r2978  
    2626        encoding = "iso-8859-1" 
    2727        code = data.aspy(encoding=encoding).encode(encoding) 
     28        print code 
    2829        code = compile(code, "test.py", "exec") 
    2930        exec code in mod.__dict__ 
     
    3435    e = xnd.Module(xmlns)() 
    3536    ns = xnd2ns(e) 
    36     assert ns.xmlns == xmlns 
     37    assert ns.xsc is xsc 
     38 
     39 
     40def test_element(): 
     41    e = xnd.Module(xmlns)( 
     42        xnd.Element("foo", xmlns="http://xmlns.foo.com"), 
     43        xnd.Element("foo", xmlns="http://xmlns.foo2.com"), 
     44    ) 
     45    ns = xnd2ns(e) 
     46    assert ns.foo.xmlname == "foo" 
     47    assert ns.foo.xmlns == "http://xmlns.foo.com" 
     48    assert ns.foo2.xmlname == "foo" 
     49    assert ns.foo2.xmlns == "http://xmlns.foo2.com" 
    3750 
    3851