MCPcopy Create free account
hub / github.com/apache/fory / generate_file

Method generate_file

compiler/fory_compiler/generators/dart.py:159–200  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

157 return self.dart_type(field_type, nullable, parent_stack)
158
159 def generate_file(self) -> GeneratedFile:
160 lines: List[str] = [
161 self.get_license_header("//"),
162 "",
163 "// ignore_for_file: camel_case_types, constant_identifier_names, non_constant_identifier_names, unnecessary_brace_in_string_interps, avoid_init_to_null",
164 "",
165 "library;",
166 "",
167 "import 'dart:typed_data';",
168 "",
169 "import 'package:fory/fory.dart';",
170 ]
171 imports = self._import_statements()
172 if imports:
173 lines.append("")
174 lines.extend(imports)
175 lines.extend(
176 [
177 "",
178 f"part '{self.part_file_name()}';",
179 ]
180 )
181 lines.append("")
182
183 indent = 0
184
185 for enum in self.schema.enums:
186 if not self.is_imported_type(enum):
187 lines.extend(self.generate_enum(enum, indent))
188 lines.append("")
189 for union in self.schema.unions:
190 if not self.is_imported_type(union):
191 lines.extend(self.generate_union(union, indent))
192 lines.append("")
193 for message in self.schema.messages:
194 if not self.is_imported_type(message):
195 lines.extend(self.generate_message(message, indent))
196 lines.append("")
197
198 lines.extend(self.generate_module_type(indent))
199 lines.append("")
200 return GeneratedFile(self.output_file_path(), "\n".join(lines).rstrip() + "\n")
201
202 def output_file_path(self) -> str:
203 return str(self._schema_output_path(self.schema))

Callers 1

generateMethod · 0.95

Calls 12

_import_statementsMethod · 0.95
part_file_nameMethod · 0.95
is_imported_typeMethod · 0.95
generate_enumMethod · 0.95
generate_unionMethod · 0.95
generate_messageMethod · 0.95
generate_module_typeMethod · 0.95
output_file_pathMethod · 0.95
GeneratedFileClass · 0.90
get_license_headerMethod · 0.80
extendMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected