Beispiel #1
0
 def _detect_dict(self, d, s, name):
     s["type"] = Struct
     s["jsonname"] = name
     s["freq"] += 1
     for k, v in d.items():
         goname = to_goname(k)
         self._detect(v, s["children"][goname], k)
def detect_struct_info(d, name):
    def _detect_struct_info(d, s, name):
        if hasattr(d, "keys"):
            s["type"] = "struct"
            s["jsonname"] = name
            s["freq"] += 1
            for k, v in d.items():
                goname = to_goname(k)
                _detect_struct_info(v, s["children"][goname], k)
        elif isinstance(d, (list, tuple)):
            s["type2"] = "slice"
            for x in d:
                _detect_struct_info(x, s, name)  # xxx
        else:
            typ = resolve_type(d)
            s["jsonname"] = name
            s["freq"] += 1
            s["type"] = select_better_type(s["type"], typ)

    def make_struct_info():
        return {"freq": 0, "type": None, "children": defaultdict(make_struct_info)}
    s = defaultdict(make_struct_info)
    goname = to_goname(name)
    _detect_struct_info(d, s[goname], goname)
    return s[goname]
Beispiel #3
0
def detect_struct_info(d, name):
    def _detect_struct_info(d, s, name):
        if hasattr(d, "keys"):
            s["type"] = "struct"
            s["jsonname"] = name
            s["freq"] += 1
            for k, v in d.items():
                goname = to_goname(k)
                _detect_struct_info(v, s["children"][goname], k)
        elif isinstance(d, (list, tuple)):
            s["type2"] = "slice"
            for x in d:
                _detect_struct_info(x, s, name)  # xxx
        else:
            typ = resolve_type(d)
            s["jsonname"] = name
            s["freq"] += 1
            s["type"] = select_better_type(s["type"], typ)

    def make_struct_info():
        return {
            "freq": 0,
            "type": None,
            "children": defaultdict(make_struct_info)
        }

    s = defaultdict(make_struct_info)
    goname = to_goname(name)
    _detect_struct_info(d, s[goname], goname)
    return s[goname]
 def _detect_dict(self, d, s, name):
     s["type"] = Struct
     s["jsonname"] = name
     s["freq"] += 1
     for k, v in d.items():
         goname = to_goname(k)
         self._detect(v, s["children"][goname], k)
 def _detect_struct_info(d, s, name):
     if hasattr(d, "keys"):
         s["type"] = "struct"
         s["jsonname"] = name
         s["freq"] += 1
         for k, v in d.items():
             goname = to_goname(k)
             _detect_struct_info(v, s["children"][goname], k)
     elif isinstance(d, (list, tuple)):
         s["type2"] = "slice"
         for x in d:
             _detect_struct_info(x, s, name)  # xxx
     else:
         typ = resolve_type(d)
         s["jsonname"] = name
         s["freq"] += 1
         s["type"] = select_better_type(s["type"], typ)
Beispiel #6
0
 def _detect_struct_info(d, s, name):
     if hasattr(d, "keys"):
         s["type"] = "struct"
         s["jsonname"] = name
         s["freq"] += 1
         for k, v in d.items():
             goname = to_goname(k)
             _detect_struct_info(v, s["children"][goname], k)
     elif isinstance(d, (list, tuple)):
         s["type2"] = "slice"
         for x in d:
             _detect_struct_info(x, s, name)  # xxx
     else:
         typ = resolve_type(d)
         s["jsonname"] = name
         s["freq"] += 1
         s["type"] = select_better_type(s["type"], typ)
Beispiel #7
0
 def detect(self, d, name):
     goname = to_goname(name)
     self._detect(d, self.state[goname], name)
     return self.state[goname]
 def detect(self, d, name):
     goname = to_goname(name)
     self._detect(d, self.state[goname], name)
     return self.state[goname]