Skip to main content

Project

Project-related data models for spec-kit

Overview​

These models define project context and template variables for the Jinja2 engine.

Classes​

TemplateContext​

Context data for template rendering with Jinja2

Dataclass

Methods​

create_default​
create_default(project_name: str) -> 'TemplateContext'

Create a default template context for a project

Parameters:

  • project_name (str, required)

Returns: TemplateContext

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

Create TemplateContext from dictionary

Parameters:

  • data (Dict, required)

Returns: TemplateContext

merge_variables​
merge_variables(self, variables: Dict[str, Any]) -> 'TemplateContext'

Create new context with merged template variables

Parameters:

  • variables (Dict, required)

Returns: TemplateContext

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

Convert to dictionary for Jinja2 template rendering

Returns: Dict

TemplateVariables​

Type-safe container for template variables that avoids dict method conflicts.

Dataclass

This replaces TemplateDict with a more type-safe approach that prevents template variables from conflicting with dictionary methods in Jinja2.

Methods​

get​
get(self, key: str, default: Any = None) -> Any

Get a template variable with a default value.

Parameters:

  • key (str, required)
  • default (Any, optional)
items​
items(self)

Get all template variables as key-value pairs.

keys​
keys(self)

Get all template variable keys.

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

Convert to regular dictionary for Jinja2 compatibility.

Returns: Dict

values​
values(self)

Get all template variable values.