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

Function render

plain2code.py:190–305  ·  view source on GitHub ↗
(  # noqa: C901
    plain_module: plain_modules.PlainModule,
    args,
    run_state: RunState,
    event_bus: EventBus,
    default_log_level: str = "INFO",
)

Source from the content-addressed store, hash-verified

188
189
190def render( # noqa: C901
191 plain_module: plain_modules.PlainModule,
192 args,
193 run_state: RunState,
194 event_bus: EventBus,
195 default_log_level: str = "INFO",
196):
197 # Compute render range from either --render-range or --render-from
198 render_range = None
199 if args.render_range or args.render_from:
200 render_range = plain_spec.compute_render_range(args, plain_module.plain_source)
201
202 codeplainAPI = codeplain_api.CodeplainAPI(args.api_key, console)
203 assert args.api is not None and args.api != "", "API URL is required"
204 codeplainAPI.api_url = args.api
205
206 run_state.user_email = _check_connection(codeplainAPI)
207
208 stop_event = threading.Event()
209 enter_pause_event = threading.Event()
210 signal.signal(signal.SIGTERM, lambda _signum, _frame: stop_event.set())
211
212 warn_if_acceptance_tests_without_conformance_script(plain_module, args)
213
214 render_choice = None
215 if render_range is None:
216 plain_module_render_state = get_plain_module_render_state(plain_module)
217 if plain_module_render_state is not None:
218 render_choices = get_render_choices(plain_module, plain_module_render_state, args.force_render)
219 ask_user = True
220 render_choice = None
221 if len(render_choices) <= 2:
222 # Last choice is Quit, first choice is the only other actionable choice
223 render_choice = render_choices[list(render_choices.keys())[0]]
224 ask_user = render_choice.is_destructive
225
226 if ask_user and not args.headless:
227 app = PlainModuleRenderChoiceTUI(
228 plain_module,
229 plain_module_render_state,
230 render_choices,
231 system_config.client_version,
232 run_state.render_id,
233 on_cancel=run_state.set_render_cancelled,
234 css_path="styles.css",
235 )
236 render_choice = app.run()
237 if render_choice is None or (
238 render_choice.module is None
239 and render_choice.render_range is None
240 and render_choice.choice_type == "quit"
241 ):
242 run_state.set_render_cancelled()
243 sys.exit(0)
244 elif ask_user and args.headless:
245 # ignore the default choice if it requires user input due to headless mode
246 # fallback to --render-from
247 # default choice is only used only when the action is not destructive

Callers 1

mainFunction · 0.85

Calls 11

render_moduleMethod · 0.95
get_render_choicesFunction · 0.90
ModuleRendererClass · 0.90
Plain2CodeTUIClass · 0.90
_check_connectionFunction · 0.85
runMethod · 0.80
set_render_cancelledMethod · 0.80
infoMethod · 0.80

Tested by

no test coverage detected