MCPcopy Index your code
hub / github.com/hunvreus/devpush / ProjectBuildAndDeployForm

Class ProjectBuildAndDeployForm

app/forms/project.py:404–446  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

402
403
404class ProjectBuildAndDeployForm(StarletteForm):
405 preset = SelectField(
406 _l("Framework presets"),
407 validators=[Optional(), Length(max=255)],
408 )
409 runner = SelectField(
410 _l("Runner"),
411 validators=[DataRequired(), Length(min=1, max=255)],
412 )
413 root_directory = StringField(
414 _l("Root directory"),
415 validators=[
416 Length(max=255, message=_l("Root directory cannot exceed 255 characters")),
417 Regexp(
418 r"^[a-zA-Z0-9_\-./]*$",
419 message=_l(
420 "Root directory can only contain letters, numbers, dots, hyphens, underscores, and forward slashes"
421 ),
422 ),
423 ],
424 )
425 build_command = StringField(_l("Build command"))
426 pre_deploy_command = StringField(_l("Pre-deploy command"))
427 start_command = StringField(
428 _l("Start command"), validators=[DataRequired(), Length(min=1)]
429 )
430
431 def __init__(self, *args, **kwargs):
432 super().__init__(*args, **kwargs)
433 settings = get_settings()
434 registry_state = RegistryService(Path(settings.data_dir) / "registry").state
435 self._runners = registry_state.runners
436 self._presets = registry_state.presets
437 self.preset.choices = [("", _l("None"))] + [
438 (preset["slug"], preset["name"])
439 for preset in self._presets
440 if preset.get("enabled") is True
441 ]
442 self.runner.choices = _runner_choices(self._runners)
443
444 validate_runner = validate_runner
445
446 validate_root_directory = validate_root_directory
447
448
449class ProjectGeneralForm(StarletteForm):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected