Changeset 2614:d15f947ea8c4 in livinglogic.python.xist

Show
Ignore:
Timestamp:
01/24/07 19:07:42 (13 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Update xattrs and xiter for Node and Namespace.

Files:
1 modified

Legend:

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

    r2613 r2614  
    11991199            return self 
    12001200 
    1201     def __xattrs__(self, mode="default"): 
    1202         return ("startloc", _ipipe_type, _ipipe_ns, _ipipe_name, _ipipe_content, _ipipe_childrencount, _ipipe_attrscount) 
     1201 
     1202if ipipe is not None: 
     1203    @ipipe.xattrs.when_type(Node) 
     1204    def xattrs_node(self, mode="default"): 
     1205        yield ipipe.AttributeDescriptor("startloc", doc="the locate in the XML file") 
     1206        yield ipipe.FunctionDescriptor(_ipipe_type) 
     1207        yield ipipe.AttributeDescriptor("xmlns", doc="the XML namespace of the node") 
     1208        yield ipipe.FunctionDescriptor(_ipipe_name, "name") 
     1209        yield ipipe.FunctionDescriptor(_ipipe_content, "content") 
     1210        if mode == "detail": 
     1211            yield ipipe.IterAttributeDescriptor("children", "the element content") 
     1212            yield ipipe.IterAttributeDescriptor("attrs", "the element attributes") 
     1213        else: 
     1214            yield ipipe.FunctionDescriptor(_ipipe_childrencount, "children") 
     1215            yield ipipe.FunctionDescriptor(_ipipe_attrscount, "attrs") 
    12031216 
    12041217 
     
    38583871            yield (astyle.style_default, repr(self)) 
    38593872 
    3860     def __xiter__(self, mode): 
    3861         if mode is None: 
    3862             celements = misc.count(self.iterelementkeys()) 
    3863             cprocinsts = misc.count(self.iterprocinstkeys()) 
    3864             centities = misc.count(self.iterentitykeys()) 
    3865             ccharrefs = misc.count(self.itercharrefkeys()) 
    3866             yield ipipe.XMode(self, "elements", "elements", "elements in this namespace (%d)" % celements) 
    3867             yield ipipe.XMode(self, "procinsts", "procinsts", "processing instructions in this namespace (%d)" % cprocinsts) 
    3868             yield ipipe.XMode(self, "entities", "entities", "entities in this namespace (including charrefs) (%d)" % centities) 
    3869             yield ipipe.XMode(self, "charrefs", "charrefs", "character reference entities in this namespace (%d)" % ccharrefs) 
    3870             yield ipipe.XMode(self, "all", "all", "all objects in this namespace (%d)" % (celements+cprocinsts+centities+ccharrefs)) 
    3871         elif mode == "elements" or mode == "all": 
    3872             for element in self.iterelementvalues(): 
    3873                 yield element 
    3874         elif mode == "procinsts" or mode == "all": 
    3875             for procinst in self.iterprocinstvalues(): 
    3876                 yield procinst 
    3877         elif mode == "entities" or mode == "all": 
    3878             for entity in self.iterentityvalues(): 
    3879                 yield entity 
    3880         elif mode == "charrefs" or mode == "all": 
    3881             for charref in self.itercharrefvalues(): 
    3882                 yield charref 
    3883         else: 
    3884             for element in self.iterelementvalues(): 
    3885                 yield element 
     3873if ipipe is not None: 
     3874    @ipipe.xattrs.when_type(_Namespace_Meta) 
     3875    def xattrs_namespace(self, mode="default"): 
     3876        yield ipipe.AttributeDescriptor("xmlname", "default prefix") 
     3877        yield ipipe.AttributeDescriptor("xmlurl", "namespace name") 
     3878        if mode == "detail": 
     3879            yield ipipe.IterMethodDescriptor("iterelementvalues", "elements in this namespace (%d)" % misc.count(self.iterelementkeys())) 
     3880            yield ipipe.IterMethodDescriptor("iterprocinstvalues", "processing instructions in this namespace (%d)" % misc.count(self.iterprocinstkeys())) 
     3881            yield ipipe.IterMethodDescriptor("iterentityvalues", "entities in this namespace (%d)" % misc.count(self.iterentitykeys())) 
     3882            yield ipipe.IterMethodDescriptor("itercharrefvalues", "charrefs in this namespace (%d)" % misc.count(self.itercharrefkeys())) 
     3883 
     3884    @ipipe.xiter.when_type(_Namespace_Meta) 
     3885    def xiter_namespace(self): 
     3886        print "gurk" 
     3887        for value in  self.iterelementvalues(): 
     3888            yield value 
     3889        for value in  self.iterprocinstvalues(): 
     3890            yield value 
     3891        for value in  self.iterentityvalues(): 
     3892            yield value 
     3893        for value in  self.itercharrefvalues(): 
     3894            yield value 
    38863895 
    38873896