Esempio n. 1
0
 def _setup_repr(self):
     clsfields = {}
     pbcfields = {}
     if self.classdef is not None:
         # class attributes
         llfields = []
         """
         attrs = self.classdef.attrs.items()
         attrs.sort()
         for name, attrdef in attrs:
             if attrdef.readonly:
                 s_value = attrdef.s_value
                 s_unboundmethod = self.prepare_method(s_value)
                 if s_unboundmethod is not None:
                     allmethods[name] = True
                     s_value = s_unboundmethod
                 r = self.rtyper.getrepr(s_value)
                 mangled_name = 'cls_' + name
                 clsfields[name] = mangled_name, r
                 llfields.append((mangled_name, r.lowleveltype))
         """
         # attributes showing up in getattrs done on the class as a PBC
         extra_access_sets = self.rtyper.class_pbc_attributes.get(
             self.classdef, {})
         for access_set, (attr, counter) in extra_access_sets.items():
             r = self.rtyper.getrepr(access_set.s_value)
             mangled_name = pbcmangle('pbc%d' % counter, attr)
             pbcfields[access_set, attr] = mangled_name, r
             llfields.append((mangled_name, r.lowleveltype))
         
         self.rbase.setup()
         ootype.addFields(self.lowleveltype, dict(llfields))
     #self.clsfields = clsfields
     self.pbcfields = pbcfields
     self.meta_instance = None
Esempio n. 2
0
    def _setup_repr(self):
        clsfields = {}
        pbcfields = {}
        if self.classdef is not None:
            # class attributes
            llfields = []
            """
            attrs = self.classdef.attrs.items()
            attrs.sort()
            for name, attrdef in attrs:
                if attrdef.readonly:
                    s_value = attrdef.s_value
                    s_unboundmethod = self.prepare_method(s_value)
                    if s_unboundmethod is not None:
                        allmethods[name] = True
                        s_value = s_unboundmethod
                    r = self.rtyper.getrepr(s_value)
                    mangled_name = 'cls_' + name
                    clsfields[name] = mangled_name, r
                    llfields.append((mangled_name, r.lowleveltype))
            """
            # attributes showing up in getattrs done on the class as a PBC
            extra_access_sets = self.rtyper.class_pbc_attributes.get(
                self.classdef, {})
            for access_set, (attr, counter) in extra_access_sets.items():
                r = self.rtyper.getrepr(access_set.s_value)
                mangled_name = pbcmangle('pbc%d' % counter, attr)
                pbcfields[access_set, attr] = mangled_name, r
                llfields.append((mangled_name, r.lowleveltype))

            self.rbase.setup()
            ootype.addFields(self.lowleveltype, dict(llfields))
        #self.clsfields = clsfields
        self.pbcfields = pbcfields
        self.meta_instance = None
Esempio n. 3
0
 def _setup_repr(self):
     pbcfields = {}
     if self.lowleveltype != ootype.Class:
         # class attributes
         llfields = []
         # attributes showing up in getattrs done on the class as a PBC
         extra_access_sets = self.rtyper.class_pbc_attributes.get(
             self.classdef, {})
         for access_set, (attr, counter) in extra_access_sets.items():
             r = self.rtyper.getrepr(access_set.s_value)
             mangled_name = pbcmangle('pbc%d' % counter, attr)
             pbcfields[access_set, attr] = mangled_name, r
             llfields.append((mangled_name, r.lowleveltype))
         
         self.rbase.setup()
         ootype.addFields(self.lowleveltype, dict(llfields))
     self.pbcfields = pbcfields
     self.meta_instance = None
Esempio n. 4
0
    def _setup_repr(self):
        pbcfields = {}
        if self.lowleveltype != ootype.Class:
            # class attributes
            llfields = []
            # attributes showing up in getattrs done on the class as a PBC
            extra_access_sets = self.rtyper.class_pbc_attributes.get(
                self.classdef, {})
            for access_set, (attr, counter) in extra_access_sets.items():
                r = self.rtyper.getrepr(access_set.s_value)
                mangled_name = pbcmangle('pbc%d' % counter, attr)
                pbcfields[access_set, attr] = mangled_name, r
                llfields.append((mangled_name, r.lowleveltype))

            self.rbase.setup()
            ootype.addFields(self.lowleveltype, dict(llfields))
        self.pbcfields = pbcfields
        self.meta_instance = None