示例#1
0
文件: parser.py 项目: simudream/spyne
    def get_type(self, tn):
        if tn is None:
            return Null
        if tn.startswith("{"):
            ns, qn = tn[1:].split('}', 1)
        elif ":" in tn:
            ns, qn = tn.split(":", 1)
            ns = self.nsmap[ns]
        else:
            if None in self.nsmap:
                ns, qn = self.nsmap[None], tn
            else:
                ns, qn = self.tns, tn

        ti = self.retval.get(ns)
        if ti is not None:
            t = ti.types.get(qn)
            if t:
                return t

            e = ti.elements.get(qn)
            if e:
                if ":" in e.type:
                    return self.get_type(e.type)
                else:
                    retval = self.get_type("{%s}%s" % (ns, e.type))
                    if retval is None and None in self.nsmap:
                        retval = self.get_type("{%s}%s" %
                                               (self.nsmap[None], e.type))
                    return retval

        return TYPE_MAP.get("{%s}%s" % (ns, qn))
示例#2
0
文件: parser.py 项目: jpunwin/spyne
def get_type(ctx, tn):
    if tn is None:
        return Null
    if tn.startswith("{"):
        ns, qn = tn[1:].split('}',1)
    elif ":" in tn:
        ns, qn = tn.split(":",1)
        ns = ctx.nsmap[ns]
    else:
        if None in ctx.nsmap:
            ns, qn = ctx.nsmap[None], tn
        else:
            ns, qn = ctx.tns, tn

    ti = ctx.retval.get(ns)
    if ti is not None:
        t = ti.types.get(qn)
        if t:
            return t

        e = ti.elements.get(qn)
        if e:
            if ":" in e.type:
                return get_type(ctx, e.type)
            else:
                retval = get_type(ctx, "{%s}%s" % (ns, e.type))
                if retval is None and None in ctx.nsmap:
                    retval = get_type(ctx, "{%s}%s" % (ctx.nsmap[None], e.type))
                return retval

    return TYPE_MAP.get("{%s}%s" % (ns, qn))
示例#3
0
文件: parser.py 项目: skumyol/spyne
    def get_type(self, tn):
        if tn is None:
            return Null

        ns, qn = self.get_name(tn)

        ti = self.retval.get(ns)
        if ti is not None:
            t = ti.types.get(qn)
            if t:
                return t

            e = ti.elements.get(qn)
            if e:
                if ":" in e.type:
                    return self.get_type(e.type)
                else:
                    retval = self.get_type("{%s}%s" % (ns, e.type))
                    if retval is None and None in self.nsmap:
                        retval = self.get_type("{%s}%s" %
                                               (self.nsmap[None], e.type))
                    return retval

        return TYPE_MAP.get("{%s}%s" % (ns, qn))
示例#4
0
文件: parser.py 项目: hozn/spyne
    def get_type(self, tn):
        if tn is None:
            return Null

        ns, qn = self.get_name(tn)

        ti = self.retval.get(ns)
        if ti is not None:
            t = ti.types.get(qn)
            if t:
                return t

            e = ti.elements.get(qn)
            if e:
                if ":" in e.type:
                    return self.get_type(e.type)
                else:
                    retval = self.get_type("{%s}%s" % (ns, e.type))
                    if retval is None and None in self.nsmap:
                        retval = self.get_type("{%s}%s" %
                                                     (self.nsmap[None], e.type))
                    return retval

        return TYPE_MAP.get("{%s}%s" % (ns, qn))