MCPcopy Index your code
hub / github.com/Codeplain-ai/codeplain / get_plain_module_render_state

Function get_plain_module_render_state

partial_rendering.py:73–116  ·  view source on GitHub ↗
(plain_module: PlainModule)

Source from the content-addressed store, hash-verified

71
72
73def get_plain_module_render_state(plain_module: PlainModule) -> PlainModuleRenderState | None:
74 sc = spec_change(plain_module)
75 cc = code_change(plain_module)
76 all_required_modules = plain_module.all_required_modules
77 last_rendered_module_name, last_rendered_frid = plain_module.get_module_render_status()
78 if last_rendered_module_name is None and last_rendered_frid is None:
79 return None
80
81 if last_rendered_module_name == plain_module.module_name:
82 module = plain_module
83 else:
84 found_module: PlainModule | None = None
85 for required_module in all_required_modules:
86 if required_module.module_name == last_rendered_module_name:
87 found_module = required_module
88
89 if found_module is None:
90 raise ModuleDoesNotExistError(
91 f"Last rendered module {last_rendered_module_name} not found in {[rmodule.module_name for rmodule in all_required_modules]}"
92 )
93 module = found_module
94
95 pr = PlainModuleRenderState(
96 last_render_module=module,
97 last_render_frid=last_rendered_frid,
98 change=None,
99 change_type=None,
100 )
101
102 if sc is None and cc is None:
103 return pr
104
105 if sc is not None:
106 pr.change = sc
107 pr.change_type = "spec_change"
108
109 if cc is not None and (
110 pr.change is None
111 or (pr.change is not None and module_comes_before_or_equal(all_required_modules, cc, pr.change))
112 ):
113 pr.change = cc
114 pr.change_type = "code_change"
115
116 return pr
117
118
119def get_all_affected_modules_from_change(

Calls 6

spec_changeFunction · 0.85
code_changeFunction · 0.85