def dict_format()

in packages/python-packages/protocol-stub-generator/protocol/protocol_models.py [0:0]


    def dict_format(self, json_request, yaml, not_first, indent, inner_model, no_list,name):
        if isinstance(json_request, dict):
            for i in json_request:
                if indent == 4:
                    self.add_whitespace(indent)
                    if not_first:
                        self.add_new_line()
                        self.add_whitespace(indent)
                        self.add_new_line()
                        self.add_whitespace(indent)
                    if not inner_model:
                        self.add_comment(None, "model " + i + " {", None)
                        self.add_new_line()
                        not_first = True
                        name = i
                        inner_model.clear()
                    else:
                        inner_model.append(Token(" ", TokenKind.Newline))
                        inner_model.append(Token(" " * (indent * 4), TokenKind.Whitespace))
                        inner_model.append(Token("model " + i + " {", TokenKind.Comment))
                        inner_model.append(Token(" ", TokenKind.Newline))
                if indent > 4 and (
                    isinstance(json_request[i], list) or isinstance(json_request[i], dict)
                ):
                    if i == "str":
                        if inner_model:
                            inner_model.append(Token(" ", TokenKind.Newline))
                            inner_model.append(
                                Token(" " * (indent * 4), TokenKind.Whitespace)
                            )
                            m_type, key = get_map_type(yaml, name)
                            m_type = format_map_type(m_type)
                            inner_model.append(
                                Token(
                                    key + ": Map<string, " + m_type + ">;",
                                    TokenKind.Comment,
                                )
                            )
                        else:
                            self.add_new_line()
                            self.add_whitespace(indent)
                            m_type, key = get_map_type(yaml, name)
                            m_type = format_map_type(m_type)
                            self.add_comment(
                                None, key + ": Map<string, " + m_type + ">;", None
                            )
                            self.add_new_line()
                            self.add_whitespace(4)
                            self.add_comment(None, "};", None)

                            # START COLLECTING INNER MODEL DATA
                            if not m_type == "{"+"}":
                                indent = 4
                                if "[]" in m_type:
                                    m_type = m_type[0 : len(m_type) - 2]
                                inner_model.append(Token(" ", TokenKind.Newline))
                                inner_model.append(
                                    Token(" " * (indent * 4), TokenKind.Whitespace)
                                )

                                inner_model.append(
                                    Token(
                                        "model " + m_type + " {",
                                        TokenKind.Comment,
                                    )
                                )

                    else:
                        if inner_model:
                            inner_model.append(Token(" ", TokenKind.Newline))
                            inner_model.append(
                                Token(" " * (indent * 4), TokenKind.Whitespace)
                            )
                            if isinstance(json_request[i], list) and not isinstance(
                                json_request[i][0], dict
                            ):
                                inner_model.append(Token(i, TokenKind.Comment))
                            else:
                                inner_model.append(
                                    Token(i + ": {", TokenKind.Comment)
                                ) 
                            name = i
                        else: 
                            self.add_new_line() 
                            if not (isinstance(json_request[i], list) and not isinstance(
                                json_request[i][0], dict)
                            ):
                                self.add_whitespace(indent)
                                self.add_comment(None, i + ": {", None)  
                            name = i
                            inner_model = []
                if isinstance(json_request[i], str):
                    in_model = False
                    if indent == 4:
                        in_model = True
                        indent = indent + 1
                        name = i
                    if inner_model:
                        inner_model.append(Token(" ", TokenKind.Newline))
                        inner_model.append(Token(" " * (indent * 4), TokenKind.Whitespace))
                    else:
                        self.add_new_line()
                        self.add_whitespace(indent)
                    index = json_request[i].find("(optional)")
                    param = json_request[i].split()
                    if i == "str":
                        param[0] = format_param_type(param[0])
                        m_type, key = get_map_type(yaml, name)
                        m_type = format_map_type(m_type)
                        if not key: key = self.parameters[0].name
                        if inner_model:
                            optional = ""
                            if index != -1:
                                optional = "?"
                            inner_model.append(
                                Token(
                                    key + optional + " : Map<string, " + param[0] + ">;",
                                    TokenKind.Comment,
                                )
                            )
                        else:
                            optional = ""
                            if index != -1:
                                optional = "?"
                            self.add_comment(
                                None, key + optional + " : Map<string, " + param[0] + ">;", None
                            )

                            if in_model:
                                self.add_new_line()
                                self.add_whitespace(4)
                                self.add_comment(None, "};", None)
                                in_model = False
                                indent = 4
                    else:
                        if len(param) >= 2:
                            param[0] = format_param_type(param[0])
                            optional = ""
                            if index != -1:
                                optional = "?"
                            json_request[i] = i + optional + " : " + param[0] + ";"
                            if inner_model:
                                inner_model.append(
                                    Token(json_request[i], TokenKind.Comment)
                                )
                            else:
                                self.add_comment(None, json_request[i], None)
                                if in_model:
                                    self.add_new_line()
                                    self.add_whitespace(4)
                                    self.add_comment(None, "};", None)
                                    in_model = False
                                    indent = 4
                        else:
                            json_request[i] = format_param_type(json_request[i])
                            if inner_model:
                                inner_model.append(
                                    Token(
                                        i + ":" + json_request[i] + ";", TokenKind.Comment
                                    )
                                )
                            else:
                                self.add_comment(
                                    None, i + ": " + json_request[i] + ";", None
                                )
                                if in_model:
                                    self.add_new_line()
                                    self.add_whitespace(4)
                                    self.add_comment(None, "};", None)
                                    in_model = False
                                    indent = 4

                else:
                    self.request_builder(
                        json_request[i],
                        yaml,
                        indent=indent + 1,
                        not_first=True,
                        name=name,
                        inner_model=inner_model,
                        no_list=no_list,
                    )
                    inner_model = self.format_punctuation(json_request, indent, inner_model, i)