def render()

in rostran/providers/terraform/template_blocks.py [0:0]


    def render(self, indent=0):
        space = " " * indent
        indent += 2
        labels = " ".join(str(label) for label in self.labels)
        label_space = " " if self.labels else ""
        newline = ""
        args = ""
        if self.arguments:
            newline = "\n" if self.arguments else ""
            indent_spacing = " " * indent
            block_args = []
            comment_args = []
            json_args = []
            common_args = []
            specific_args = []

            for name, value in self.arguments.items():
                if self.block_type == "resource" and name == "count":
                    specific_args.append(f"{indent_spacing}{name} = {value.render(indent)}")
                    continue

                if isinstance(value, Block):
                    block_args.append(value.render(indent))
                elif isinstance(value, CommentType):
                    comment_args.append(value.render(indent))
                elif isinstance(value, JsonType):
                    json_args.append(f"{indent_spacing}{name} = {value.render(indent)}")
                elif isinstance(value, TerraformType):
                    common_args.append(f"{indent_spacing}{name} = {value.render(indent)}")
                else:
                    common_args.append(f"{indent_spacing}{name} = {value}")

            all_args = specific_args + comment_args + common_args + json_args + block_args
            args = "\n".join(all_args)
        return f"{space}{self.block_type}{label_space}{labels} {{{newline}{args}{newline}{space}}}"