Config Service
Configuration service for managing project and global settings
Overview
Provides TOML-based configuration management with backup/restore capabilities.
Classes
ConfigService
Abstract interface for configuration management
Inherits from: ABC
Abstract class
Methods
backup_config
backup_config(self, project_path: pathlib.Path) -> pathlib.Path
Create backup of project configuration
Parameters:
project_path(Path, required)
Returns: Path
expand_branch_name
expand_branch_name(self, pattern: str, context: Dict[str, str]) -> str
Expand branch name pattern with context variables
Parameters:
pattern(str, required)context(Dict, required)
Returns: str
expand_special_placeholders
expand_special_placeholders(self, pattern: str) -> str
Expand special placeholders like \{number-3\}, \{date\}, \{datetime\}
Parameters:
pattern(str, required)
Returns: str
generate_branch_name
generate_branch_name(self, pattern: str, context: Dict[str, str], validation_rules: List[str]) -> Tuple[str, bool, Optional[str]]
Generate and validate a branch name from pattern and context
Parameters:
pattern(str, required)context(Dict, required)validation_rules(List, required)
Returns: Tuple
get_merged_config
get_merged_config(self, project_path: pathlib.Path) -> specify_cli.models.config.ProjectConfig
Get merged configuration (global defaults + project overrides)
Parameters:
project_path(Path, required)
Returns: ProjectConfig
load_global_config
load_global_config(self) -> Optional[specify_cli.models.config.ProjectConfig]
Load global configuration from ~/.specify/config.toml
Returns: Optional
load_project_config
load_project_config(self, project_path: pathlib.Path) -> Optional[specify_cli.models.config.ProjectConfig]
Load project configuration from .specify/config.toml
Parameters:
project_path(Path, required)
Returns: Optional
load_project_config_cross_platform
load_project_config_cross_platform(self, project_path: pathlib.Path, platform_name: str) -> Optional[specify_cli.models.config.ProjectConfig]
Load project configuration with cross-platform compatibility
Parameters:
project_path(Path, required)platform_name(str, required)
Returns: Optional
restore_config
restore_config(self, project_path: pathlib.Path, backup_path: pathlib.Path) -> bool
Restore configuration from backup
Parameters:
project_path(Path, required)backup_path(Path, required)
Returns: bool
save_global_config
save_global_config(self, config: specify_cli.models.config.ProjectConfig) -> bool
Save global configuration to ~/.specify/config.toml
Parameters:
config(ProjectConfig, required)
Returns: bool
save_project_config
save_project_config(self, project_path: pathlib.Path, config: specify_cli.models.config.ProjectConfig) -> bool
Save project configuration to .specify/config.toml
Parameters:
project_path(Path, required)config(ProjectConfig, required)
Returns: bool
save_project_config_cross_platform
save_project_config_cross_platform(self, project_path: pathlib.Path, config: specify_cli.models.config.ProjectConfig, platform_name: str) -> bool
Save project configuration with cross-platform compatibility
Parameters:
project_path(Path, required)config(ProjectConfig, required)platform_name(str, required)
Returns: bool
validate_branch_name_against_rules
validate_branch_name_against_rules(self, branch_name: str, validation_rules: List[str]) -> Tuple[bool, Optional[str]]
Validate a generated branch name against validation rules
Parameters:
branch_name(str, required)validation_rules(List, required)
Returns: Tuple
validate_branch_name_matches_pattern
validate_branch_name_matches_pattern(self, branch_name: str, pattern: str) -> Tuple[bool, Optional[str]]
Validate if a branch name matches a given pattern
Parameters:
branch_name(str, required)pattern(str, required)
Returns: Tuple
validate_branch_naming_config
validate_branch_naming_config(self, config: 'BranchNamingConfig') -> Tuple[bool, Optional[str]]
Validate a complete BranchNamingConfig object
Parameters:
config(BranchNamingConfig, required)
Returns: Tuple
validate_branch_pattern
validate_branch_pattern(self, pattern: str) -> Tuple[bool, Optional[str]]
Validate branch naming pattern
Parameters:
pattern(str, required)
Returns: Tuple
TomlConfigService
TOML-based configuration service implementation
Inherits from: ConfigService
Methods
backup_config
backup_config(self, project_path: pathlib.Path) -> pathlib.Path
Create backup of project configuration
Parameters:
project_path(Path, required)
Returns: Path
ensure_project_config
ensure_project_config(self, project_path: pathlib.Path, ai_assistant: str, branch_naming_config: Optional[ForwardRef('BranchNamingConfig')] = None) -> specify_cli.models.config.ProjectConfig
Ensure project has valid configuration, creating defaults if needed
Parameters:
project_path(Path, required)ai_assistant(str, required)branch_naming_config(Optional, optional)
Returns: ProjectConfig
expand_branch_name
expand_branch_name(self, pattern: str, context: Dict[str, str]) -> str
Expand branch name pattern with context variables
Parameters:
pattern(str, required)context(Dict, required)
Returns: str
expand_special_placeholders
expand_special_placeholders(self, pattern: str) -> str
Expand special placeholders like \{number-3\}, \{date\}, \{datetime\}
Parameters:
pattern(str, required)
Returns: str
generate_branch_name
generate_branch_name(self, pattern: str, context: Dict[str, str], validation_rules: List[str]) -> Tuple[str, bool, Optional[str]]
Generate and validate a branch name from pattern and context
Parameters:
pattern(str, required)context(Dict, required)validation_rules(List, required)
Returns: Tuple
get_merged_config
get_merged_config(self, project_path: pathlib.Path) -> specify_cli.models.config.ProjectConfig
Get merged configuration (global defaults + project overrides)
Parameters:
project_path(Path, required)
Returns: ProjectConfig
load_global_config
load_global_config(self) -> Optional[specify_cli.models.config.ProjectConfig]
Load global configuration from ~/.specify/config.toml
Returns: Optional
load_project_config
load_project_config(self, project_path: pathlib.Path) -> Optional[specify_cli.models.config.ProjectConfig]
Load project configuration from .specify/config.toml
Parameters:
project_path(Path, required)
Returns: Optional
load_project_config_cross_platform
load_project_config_cross_platform(self, project_path: pathlib.Path, platform_name: str) -> Optional[specify_cli.models.config.ProjectConfig]
Load project configuration with cross-platform compatibility.
Parameters:
project_path(Path, required) - Path to the project directoryplatform_name(str, required) - Name of the platform (windows, macos, linux)
Returns: Optional
restore_config
restore_config(self, project_path: pathlib.Path, backup_path: pathlib.Path) -> bool
Restore configuration from backup
Parameters:
project_path(Path, required)backup_path(Path, required)
Returns: bool
save_global_config
save_global_config(self, config: specify_cli.models.config.ProjectConfig) -> bool
Save global configuration to ~/.specify/config.toml
Parameters:
config(ProjectConfig, required)
Returns: bool
save_project_config
save_project_config(self, project_path: pathlib.Path, config: specify_cli.models.config.ProjectConfig) -> bool
Save project configuration to .specify/config.toml
Parameters:
project_path(Path, required)config(ProjectConfig, required)
Returns: bool
save_project_config_cross_platform
save_project_config_cross_platform(self, project_path: pathlib.Path, config: specify_cli.models.config.ProjectConfig, platform_name: str) -> bool
Save project configuration with cross-platform compatibility.
Parameters:
project_path(Path, required) - Path to the project directoryconfig(ProjectConfig, required) - Project configuration to saveplatform_name(str, required) - Name of the platform (windows, macos, linux)
Returns: bool
validate_branch_name_against_rules
validate_branch_name_against_rules(self, branch_name: str, validation_rules: List[str]) -> Tuple[bool, Optional[str]]
Validate a generated branch name against validation rules
Parameters:
branch_name(str, required)validation_rules(List, required)
Returns: Tuple
validate_branch_name_matches_pattern
validate_branch_name_matches_pattern(self, branch_name: str, pattern: str) -> Tuple[bool, Optional[str]]
Validate if a branch name matches a given pattern
Parameters:
branch_name(str, required)pattern(str, required)
Returns: Tuple
validate_branch_naming_config
validate_branch_naming_config(self, config: 'BranchNamingConfig') -> Tuple[bool, Optional[str]]
Validate a complete BranchNamingConfig object
Parameters:
config(BranchNamingConfig, required)
Returns: Tuple
validate_branch_pattern
validate_branch_pattern(self, pattern: str) -> Tuple[bool, Optional[str]]
Validate branch naming pattern
Parameters:
pattern(str, required)
Returns: Tuple
Constants
TYPE_CHECKING(bool) =False