Skip to main content

Script

Script data models for spec-kit

Overview​

These models define the structure for generated Python scripts with SpecifyX utility access, supporting state transitions and validation.

Classes​

GeneratedScript​

Python scripts generated from templates with SpecifyX utility access

Dataclass

Purpose: Represents Python scripts created from script templates that can import and use SpecifyX utilities. Supports state transitions from generation through validation with proper permission management.

Methods​

create_from_template​
create_from_template(name: str, source_template: str, target_path: pathlib.Path, imports: List[str], json_output: bool = False) -> 'GeneratedScript'

Create a new GeneratedScript from template processing

Parameters:

  • name (str, required) - Script name
  • source_template (str, required) - Name of the source template
  • target_path (Path, required) - Absolute path where script will be created
  • imports (List, required) - List of SpecifyX utility imports
  • json_output (bool, optional) - Whether script supports --json flag - Default: False

Returns: GeneratedScript

from_dict​
from_dict(data: Dict[str, Any]) -> 'GeneratedScript'

Create instance from dictionary

Parameters:

  • data (Dict, required)

Returns: GeneratedScript

get_relative_path_from_project​
get_relative_path_from_project(self, project_root: pathlib.Path) -> pathlib.Path

Get script path relative to project root

Parameters:

  • project_root (Path, required)

Returns: Path

get_script_directory​
get_script_directory(self) -> pathlib.Path

Get the directory containing the script

Returns: Path

is_ready_for_use​
is_ready_for_use(self) -> bool

Check if script is fully processed and ready for use

Returns: bool

make_executable​
make_executable(self) -> None

Transition to MADE_EXECUTABLE state after setting permissions

mark_validated​
mark_validated(self) -> None

Transition to VALIDATED state after syntax and imports check

mark_validation_error​
mark_validation_error(self, error_message: str) -> None

Mark script as having validation error, preserving current state

Parameters:

  • error_message (str, required)
reset_to_generated​
reset_to_generated(self) -> None

Reset script to GENERATED state (for reprocessing)

to_dict​
to_dict(self) -> Dict[str, Any]

Convert to dictionary for serialization

Returns: Dict