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 nameproject_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 nameai_assistant(str, required) - AI assistant nameproject_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 nameproject_name(str, optional) - Project name (if needed in pattern)
Returns: str