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.