Skip to main content

Category Defaults

Category mapping defaults for SpecifyX template system

Overview

This module provides type-safe category configurations that eliminate hardcoding of template categories, their sources, targets, and rendering behavior.

Classes

CategoryDefaults

Developer defaults for template categories - packaged with SpecifyX

Dataclass

This provides centralized, type-safe category configurations that eliminate hardcoding throughout the template processing system.

Methods

get_ai_specific_categories
get_ai_specific_categories(self) -> List[str]

Get list of categories that are AI-specific

Returns: List

get_category_by_name
get_category_by_name(self, name: str) -> specify_cli.models.defaults.category_defaults.CategoryMapping

Get category configuration by name

Parameters:

  • name (str, required) - Category name

Returns: CategoryMapping

get_folder_mappings
get_folder_mappings(self, ai_assistant: str, project_name: str = '') -> List[specify_cli.models.defaults.category_defaults.FolderMappingResult]

Get all folder mappings for the given AI assistant

Parameters:

  • ai_assistant (str, required) - AI assistant name
  • project_name (str, optional) - Project name (optional)

Returns: List

get_renderable_categories
get_renderable_categories(self) -> List[str]

Get list of categories that should render templates

Returns: List

resolve_target_for_category
resolve_target_for_category(self, category_name: str, ai_assistant: str, project_name: str = '') -> str

Resolve target path for specific category and AI assistant

Parameters:

  • category_name (str, required) - Category name
  • ai_assistant (str, required) - AI assistant name
  • project_name (str, optional) - Project name (optional)

Returns: str

should_render_category
should_render_category(self, category_name: str) -> bool

Check if category should render templates

Parameters:

  • category_name (str, required) - Name of category to check

Returns: bool

CategoryMapping

Single category configuration for template processing

Dataclass

Methods

resolve_target
resolve_target(self, ai_assistant: str, project_name: str = '') -> str

Resolve target path with variable substitution

Parameters:

  • ai_assistant (str, required) - AI assistant name
  • project_name (str, optional) - Project name (if needed in pattern)

Returns: str