Render a module. Returns: tuple[bool, bool]: (Whether the module was rendered and whether the rendering failed)
(
self, plain_module: PlainModule, render_range: list[str] | None, force_render: bool
)
| 68 | ) |
| 69 | |
| 70 | def _render_module( |
| 71 | self, plain_module: PlainModule, render_range: list[str] | None, force_render: bool |
| 72 | ) -> tuple[bool, bool]: |
| 73 | """Render a module. |
| 74 | |
| 75 | Returns: |
| 76 | tuple[bool, bool]: (Whether the module was rendered and whether the rendering failed) |
| 77 | """ |
| 78 | is_render_choice_module = ( |
| 79 | self.render_choice is not None |
| 80 | and self.render_choice.module is not None |
| 81 | and self.render_choice.module.module_name == plain_module.module_name |
| 82 | ) |
| 83 | |
| 84 | if is_render_choice_module: |
| 85 | render_range = self.render_choice.render_range |
| 86 | |
| 87 | if render_range is not None: |
| 88 | plain_module.ensure_previous_frid_commits_exist(render_range, self.args.render_conformance_tests) |
| 89 | |
| 90 | has_any_required_module_changed = False |
| 91 | if not self.args.render_machine_graph and plain_module.required_modules and not is_render_choice_module: |
| 92 | console.debug(f"Analyzing required modules of module {plain_module.module_name}...") |
| 93 | for required_module in plain_module.required_modules: |
| 94 | has_module_changed, rendering_failed = self._render_module( |
| 95 | required_module, |
| 96 | None, |
| 97 | self.args.force_render, |
| 98 | ) |
| 99 | has_any_required_module_changed |= has_module_changed |
| 100 | if rendering_failed: |
| 101 | return False, True |
| 102 | |
| 103 | if ( |
| 104 | ( |
| 105 | (not force_render) |
| 106 | or any(module.module_name == plain_module.module_name for module in self.loaded_modules) |
| 107 | ) |
| 108 | and plain_module.get_repo() is not None |
| 109 | and not has_any_required_module_changed |
| 110 | and not plain_module.has_plain_spec_changed() |
| 111 | and not plain_module.has_required_modules_code_changed() |
| 112 | and not is_render_choice_module |
| 113 | ): |
| 114 | return False, False |
| 115 | |
| 116 | memory_manager = MemoryManager( |
| 117 | self.codeplainAPI, |
| 118 | plain_module.module_name, |
| 119 | self.args.conformance_tests_folder, |
| 120 | ) |
| 121 | render_context = self._build_render_context_for_module( |
| 122 | plain_module, |
| 123 | memory_manager, |
| 124 | render_range, |
| 125 | ) |
| 126 | |
| 127 | code_renderer = CodeRenderer(render_context) |
no test coverage detected