Esempio n. 1
0
 def getattr(self, name):
     if name == u"doc":
         return self.doc
     elif name == u"loc":
         source, start, stop = self.source_location
         obj = space.Exnihilo()
         obj.setattr(u"source", space.String(source))
         obj.setattr(u"start", space.Integer(start))
         obj.setattr(u"stop", space.Integer(stop))
         return obj
     elif name == u"spec":
         argc, optional, variadic, varnames, argtypes = self.spec
         varnames = [
             space.String(name.decode('utf-8')) for name in varnames
         ]
         spec = space.Exnihilo()
         spec.setattr(u'argc', space.Integer(rffi.r_long(argc)))
         spec.setattr(u'optional', space.Integer(rffi.r_long(optional)))
         spec.setattr(u'is_variadic', space.boolean(variadic))
         spec.setattr(u'varnames', space.List(list(varnames)))
         if argtypes is not None:
             spec.setattr(u'argtypes', space.List(list(argtypes)))
         else:
             spec.setattr(u'argtypes', space.null)
         return spec
     else:
         return Object.getattr(self, name)
Esempio n. 2
0
 def getattr(self, name):
     if name == u"doc":
         return self.doc
     elif name == u"loc":
         unit = self.function.unit
         trace = TraceEntry(0, unit.sources, self.function.sourcemap,
                            unit.path)
         name, col0, lno0, col1, lno1 = trace.pc_location()
         start = space.Exnihilo()
         start.setattr(u"col", space.Integer(col0))
         start.setattr(u"lno", space.Integer(lno0))
         stop = space.Exnihilo()
         stop.setattr(u"col", space.Integer(col1))
         stop.setattr(u"lno", space.Integer(lno1))
         obj = space.Exnihilo()
         obj.setattr(u"source", name)
         obj.setattr(u"start", start)
         obj.setattr(u"stop", stop)
         return obj
     elif name == u"spec":
         spec = space.Exnihilo()
         spec.setattr(u'argc',
                      space.Integer(rffi.r_long(self.function.argc)))
         spec.setattr(
             u'optional',
             space.Integer(
                 rffi.r_long(self.function.topc - self.function.argc)))
         spec.setattr(u'is_variadic',
                      space.boolean(self.function.flags & 1 == 1))
         spec.setattr(u'varnames', self.function.varnames)
         return spec
     else:
         return space.Object.getattr(self, name)
Esempio n. 3
0
 def getattr(self, name):
     if name == u"closure":
         return self.closure
     elif name == u"is_generator":
         return space.boolean(self.closure.function.flags & 2 != 0)
     elif name == u"excs":
         return self.excs_l
     elif name == u"regc":
         return space.Integer(rffi.r_long(self.closure.function.regc))
     elif name == u"localc":
         return space.Integer(rffi.r_long(self.closure.function.localc))
     elif name == u"length":
         return space.Integer(len(self.closure.function.block))
     elif name == u"module":
         return self.closure.frame.module
     return space.Object.getattr(self, name)
Esempio n. 4
0
 def getattr(self, name):
     if name == u"doc":
         return self.doc
     elif name == u"loc":
         return sourceloc_introspection(0, self.function)
     elif name == u"spec":
         spec = space.Exnihilo()
         spec.setattr(u'argc',
                      space.Integer(rffi.r_long(self.function.argc)))
         spec.setattr(
             u'optional',
             space.Integer(
                 rffi.r_long(self.function.topc - self.function.argc)))
         spec.setattr(u'is_variadic',
                      space.boolean(self.function.flags & 1 == 1))
         spec.setattr(u'varnames', self.function.varnames)
         return spec
     elif name == u"code":
         return Introspection(self)
     else:
         return space.Object.getattr(self, name)
Esempio n. 5
0
def String_endswith(self, postfix):
    return space.boolean(
        self.string.endswith(postfix.string))
Esempio n. 6
0
def String_startswith(self, prefix):
    return space.boolean(
        self.string.startswith(prefix.string))
Esempio n. 7
0
def String_endswith(self, postfix):
    return space.boolean(
        self.string.endswith(postfix.string))
Esempio n. 8
0
def String_startswith(self, prefix):
    return space.boolean(
        self.string.startswith(prefix.string))