SYMBOL INDEX (471 symbols across 38 files) FILE: .github/scripts/generate_wiki_docs.py function format_value (line 26) | def format_value(value): function generate_module_docs (line 37) | def generate_module_docs(module_name: str, output_dir: Path): # noqa: P... function generate_variables_index (line 181) | def generate_variables_index(modules: list[str], output_dir: Path): function main (line 219) | def main(): FILE: cli/__main__.py class OrderedGroup (line 27) | class OrderedGroup(TyperGroup): method list_commands (line 30) | def list_commands(self, ctx: click.Context) -> list[str]: function setup_logging (line 51) | def setup_logging(log_level: str = "WARNING") -> None: function main (line 79) | def main( function _import_modules (line 118) | def _import_modules(modules_path: Path, logger: logging.Logger) -> list[... function _register_repo_command (line 137) | def _register_repo_command(logger: logging.Logger) -> list[str]: function _register_module_classes (line 150) | def _register_module_classes(logger: logging.Logger) -> tuple[list, list... function _build_error_details (line 169) | def _build_error_details(failed_imports: list[str], failed_registrations... function init_app (line 179) | def init_app() -> None: function run (line 220) | def run() -> None: FILE: cli/core/config/config_manager.py class LibraryConfig (line 18) | class LibraryConfig: class ConfigManager (line 30) | class ConfigManager: method __init__ (line 33) | def __init__(self, config_path: str | Path | None = None) -> None: method _create_default_config (line 68) | def _create_default_config(self) -> None: method _migrate_config_if_needed (line 87) | def _migrate_config_if_needed(self) -> None: method _read_config (line 126) | def _read_config(self) -> dict[str, Any]: method _write_config (line 155) | def _write_config(self, config: dict[str, Any]) -> None: method _validate_config_structure (line 205) | def _validate_config_structure(self, config: dict[str, Any]) -> None: method _validate_top_level_types (line 226) | def _validate_top_level_types(self, config: dict[str, Any]) -> None: method _validate_defaults_types (line 237) | def _validate_defaults_types(self, config: dict[str, Any]) -> None: method _validate_libraries_fields (line 246) | def _validate_libraries_fields(self, config: dict[str, Any]) -> None: method get_config_path (line 266) | def get_config_path(self) -> Path: method is_using_local_config (line 274) | def is_using_local_config(self) -> bool: method get_defaults (line 282) | def get_defaults(self, module_name: str) -> dict[str, Any]: method set_defaults (line 301) | def set_defaults(self, module_name: str, defaults: dict[str, Any]) -> ... method set_default_value (line 328) | def set_default_value(self, module_name: str, var_name: str, value: An... method get_default_value (line 351) | def get_default_value(self, module_name: str, var_name: str) -> Any | ... method clear_defaults (line 364) | def clear_defaults(self, module_name: str) -> None: method get_preference (line 377) | def get_preference(self, key: str) -> Any | None: method set_preference (line 390) | def set_preference(self, key: str, value: Any) -> None: method get_all_preferences (line 413) | def get_all_preferences(self) -> dict[str, Any]: method get_libraries (line 422) | def get_libraries(self) -> list[dict[str, Any]]: method get_library_by_name (line 431) | def get_library_by_name(self, name: str) -> dict[str, Any] | None: method add_library (line 446) | def add_library(self, lib_config: LibraryConfig) -> None: method remove_library (line 505) | def remove_library(self, name: str) -> None: method update_library (line 527) | def update_library(self, name: str, **kwargs: Any) -> None: method get_libraries_path (line 569) | def get_libraries_path(self) -> Path: FILE: cli/core/display/__init__.py class DisplayManager (line 24) | class DisplayManager: method __init__ (line 37) | def __init__(self, quiet: bool = False, settings: DisplaySettings | No... method text (line 57) | def text(self, text: str, style: str | None = None) -> None: method heading (line 61) | def heading(self, text: str, style: str | None = None) -> None: method section (line 65) | def section(self, title: str, description: str | None = None) -> None: method table (line 77) | def table( method tree (line 88) | def tree(self, root_label: str, nodes: dict | list) -> None: method code (line 92) | def code(self, code_text: str, language: str | None = None) -> None: method progress (line 96) | def progress(self, *columns): method file_tree (line 100) | def file_tree( method truncate (line 111) | def truncate(self, value: str, max_length: int | None = None) -> str: method format_file_size (line 115) | def format_file_size(self, size_bytes: int) -> str: method data_table (line 119) | def data_table( method display_status_table (line 129) | def display_status_table( method error (line 139) | def error(self, message: str, context: str | None = None, details: str... method warning (line 143) | def warning(self, message: str, context: str | None = None, details: s... method success (line 147) | def success(self, message: str, context: str | None = None) -> None: method info (line 151) | def info(self, message: str, context: str | None = None) -> None: method skipped (line 155) | def skipped(self, message: str, reason: str | None = None) -> None: method get_lock_icon (line 160) | def get_lock_icon(self) -> str: method print_table (line 164) | def print_table(self, table) -> None: FILE: cli/core/display/display_base.py class BaseDisplay (line 21) | class BaseDisplay: method __init__ (line 28) | def __init__(self, settings: DisplaySettings, quiet: bool = False): method heading (line 38) | def heading(self, text: str, style: str | None = None) -> None: method text (line 50) | def text(self, text: str, style: str | None = None) -> None: method table (line 62) | def table( method tree (line 103) | def tree(self, root_label: str, nodes: dict | list | Tree) -> None: method _build_tree_nodes (line 117) | def _build_tree_nodes(self, parent, nodes): method _print_tree (line 138) | def _print_tree(self, tree) -> None: method _print_table (line 146) | def _print_table(self, table) -> None: method _print_markdown (line 158) | def _print_markdown(self, markdown) -> None: method code (line 166) | def code(self, code_text: str, language: str | None = None) -> None: method progress (line 180) | def progress(self, *columns): method truncate (line 201) | def truncate(self, value: str, max_length: int | None = None) -> str: method format_file_size (line 218) | def format_file_size(self, size_bytes: int) -> str: method file_tree (line 235) | def file_tree( method _get_icon_by_type (line 284) | def _get_icon_by_type(self, icon_type: str) -> str: method get_lock_icon (line 302) | def get_lock_icon(self) -> str: FILE: cli/core/display/display_icons.py class IconManager (line 9) | class IconManager: method get_file_icon (line 84) | def get_file_icon(cls, file_path: str | Path) -> str: method get_status_icon (line 130) | def get_status_icon(cls, status: str) -> str: method folder (line 155) | def folder(cls) -> str: method config (line 160) | def config(cls) -> str: method lock (line 165) | def lock(cls) -> str: method arrow_right (line 170) | def arrow_right(cls) -> str: method replace_shortcodes (line 175) | def replace_shortcodes(cls, text: str) -> str: FILE: cli/core/display/display_settings.py class DisplaySettings (line 4) | class DisplaySettings: FILE: cli/core/display/display_status.py class LeftAlignedHeading (line 25) | class LeftAlignedHeading(Heading): method __rich_console__ (line 28) | def __rich_console__(self, console: Console, options: ConsoleOptions) ... class IconListItem (line 43) | class IconListItem(ListItem): method render_bullet (line 46) | def render_bullet(self, console: Console, options: ConsoleOptions) -> ... class LeftAlignedMarkdown (line 109) | class LeftAlignedMarkdown(Markdown): method __init__ (line 112) | def __init__(self, markup: str, **kwargs): class StatusDisplay (line 123) | class StatusDisplay: method __init__ (line 130) | def __init__(self, settings: DisplaySettings, quiet: bool, base: BaseD... method _display_message (line 142) | def _display_message(self, level: str, message: str, context: str | No... method error (line 199) | def error(self, message: str, context: str | None = None, details: str... method warning (line 223) | def warning(self, message: str, context: str | None = None, details: s... method success (line 247) | def success(self, message: str, context: str | None = None) -> None: method info (line 256) | def info(self, message: str, context: str | None = None) -> None: method skipped (line 265) | def skipped(self, message: str, reason: str | None = None) -> None: method markdown (line 277) | def markdown(self, content: str) -> None: FILE: cli/core/display/display_table.py class TableDisplay (line 18) | class TableDisplay: method __init__ (line 24) | def __init__(self, settings: DisplaySettings, base: BaseDisplay): method data_table (line 34) | def data_table( method render_templates_table (line 77) | def render_templates_table(self, templates: list, module_name: str, _t... method render_status_table (line 116) | def render_status_table( method render_summary_table (line 140) | def render_summary_table(self, title: str, items: dict[str, str]) -> N... method render_file_operation_table (line 162) | def render_file_operation_table(self, files: list[tuple[str, int, str]... method _build_section_label (line 185) | def _build_section_label( method _build_variable_label (line 207) | def _build_variable_label( method _add_section_variables (line 233) | def _add_section_variables(self, section_node, section_vars: dict, sho... method render_config_tree (line 243) | def render_config_tree(self, spec: dict, module_name: str, show_all: b... FILE: cli/core/display/display_template.py class TemplateDisplay (line 21) | class TemplateDisplay: method __init__ (line 28) | def __init__( method render_template (line 48) | def render_template(self, template: Template, template_id: str) -> None: method render_template_header (line 59) | def render_template_header(self, template: Template, template_id: str)... method render_file_tree (line 100) | def render_file_tree(self, template: Template) -> None: method render_file_generation_confirmation (line 124) | def render_file_generation_confirmation( FILE: cli/core/display/display_variable.py class VariableDisplay (line 18) | class VariableDisplay: method __init__ (line 25) | def __init__(self, settings: DisplaySettings, base: BaseDisplay): method render_variable_value (line 35) | def render_variable_value( method _format_value (line 93) | def _format_value(self, variable, value, max_length: int | None = None... method render_section (line 114) | def render_section(self, title: str, description: str | None) -> None: method _render_section_header (line 134) | def _render_section_header(self, section, is_dimmed: bool) -> str: method _render_variable_row (line 153) | def _render_variable_row(self, var_name: str, variable, is_dimmed: boo... method render_variables_table (line 187) | def render_variables_table(self, template: Template) -> None: FILE: cli/core/exceptions.py class BoilerplatesError (line 12) | class BoilerplatesError(Exception): class ConfigError (line 18) | class ConfigError(BoilerplatesError): class ConfigValidationError (line 24) | class ConfigValidationError(ConfigError): class TemplateError (line 30) | class TemplateError(BoilerplatesError): class TemplateNotFoundError (line 36) | class TemplateNotFoundError(TemplateError): method __init__ (line 39) | def __init__(self, template_id: str, module_name: str | None = None): class TemplateDraftError (line 48) | class TemplateDraftError(TemplateError): method __init__ (line 51) | def __init__(self, template_id: str, module_name: str | None = None): class DuplicateTemplateError (line 64) | class DuplicateTemplateError(TemplateError): method __init__ (line 67) | def __init__(self, template_id: str, library_name: str): class TemplateLoadError (line 76) | class TemplateLoadError(TemplateError): class TemplateSyntaxError (line 82) | class TemplateSyntaxError(TemplateError): method __init__ (line 85) | def __init__(self, template_id: str, errors: list[str]): class TemplateValidationError (line 92) | class TemplateValidationError(TemplateError): class IncompatibleSchemaVersionError (line 98) | class IncompatibleSchemaVersionError(TemplateError): method __init__ (line 101) | def __init__( class RenderErrorContext (line 123) | class RenderErrorContext: class TemplateRenderError (line 135) | class TemplateRenderError(TemplateError): method __init__ (line 138) | def __init__(self, message: str, context: RenderErrorContext | None = ... class VariableError (line 164) | class VariableError(BoilerplatesError): class VariableValidationError (line 170) | class VariableValidationError(VariableError): method __init__ (line 173) | def __init__(self, variable_name: str, message: str): class VariableTypeError (line 179) | class VariableTypeError(VariableError): method __init__ (line 182) | def __init__(self, variable_name: str, expected_type: str, actual_type... class LibraryError (line 190) | class LibraryError(BoilerplatesError): class ModuleError (line 196) | class ModuleError(BoilerplatesError): class ModuleNotFoundError (line 202) | class ModuleNotFoundError(ModuleError): method __init__ (line 205) | def __init__(self, module_name: str): class ModuleLoadError (line 211) | class ModuleLoadError(ModuleError): class SchemaError (line 217) | class SchemaError(BoilerplatesError): method __init__ (line 220) | def __init__(self, message: str, details: str | None = None): class FileOperationError (line 228) | class FileOperationError(BoilerplatesError): class RenderError (line 234) | class RenderError(BoilerplatesError): class YAMLParseError (line 240) | class YAMLParseError(BoilerplatesError): method __init__ (line 243) | def __init__(self, file_path: str, original_error: Exception): FILE: cli/core/input/input_manager.py class InputManager (line 22) | class InputManager: method __init__ (line 29) | def __init__(self, settings: InputSettings | None = None): method text (line 37) | def text( method password (line 74) | def password(self, prompt: str, default: str | None = None) -> str: method confirm (line 91) | def confirm(self, prompt: str, default: bool | None = None) -> bool: method integer (line 110) | def integer( method choice (line 160) | def choice(self, prompt: str, choices: list[str], default: str | None ... method validate_email (line 191) | def validate_email(self, email: str) -> bool: method validate_url (line 203) | def validate_url(self, url: str) -> bool: method validate_hostname (line 215) | def validate_hostname(self, hostname: str) -> bool: FILE: cli/core/input/input_settings.py class InputSettings (line 8) | class InputSettings: FILE: cli/core/input/prompt_manager.py class PromptHandler (line 16) | class PromptHandler: method __init__ (line 19) | def __init__(self) -> None: method _handle_section_toggle (line 23) | def _handle_section_toggle(self, section, collected: dict[str, Any]) -... method _should_skip_variable (line 41) | def _should_skip_variable( method _collect_variable_value (line 62) | def _collect_variable_value(self, variable: Variable, collected: dict[... method collect_variables (line 74) | def collect_variables(self, variables: VariableCollection) -> dict[str... method _prompt_variable (line 106) | def _prompt_variable(self, variable: Variable, _required: bool = False... method _get_prompt_handler (line 163) | def _get_prompt_handler(self, variable: Variable) -> Callable: method _show_validation_error (line 182) | def _show_validation_error(self, message: str) -> None: method _prompt_string (line 186) | def _prompt_string(self, prompt_text: str, default: Any = None, is_sen... method _prompt_bool (line 196) | def _prompt_bool(self, prompt_text: str, default: Any = None) -> bool ... method _prompt_int (line 203) | def _prompt_int(self, prompt_text: str, default: Any = None) -> int | ... method _prompt_enum (line 212) | def _prompt_enum( FILE: cli/core/library.py class Library (line 17) | class Library: method __init__ (line 20) | def __init__(self, name: str, path: Path, priority: int = 0, library_t... method _is_template_draft (line 37) | def _is_template_draft(self, template_path: Path) -> bool: method find_by_id (line 55) | def find_by_id(self, module_name: str, template_id: str) -> tuple[Path... method find (line 94) | def find(self, module_name: str, sort_results: bool = False) -> list[t... class LibraryManager (line 146) | class LibraryManager: method __init__ (line 149) | def __init__(self) -> None: method _resolve_git_library_path (line 154) | def _resolve_git_library_path(self, name: str, lib_config: dict, libra... method _resolve_static_library_path (line 162) | def _resolve_static_library_path(self, name: str, lib_config: dict) ->... method _warn_missing_library (line 174) | def _warn_missing_library(self, name: str, library_path: Path, lib_typ... method _load_libraries_from_config (line 183) | def _load_libraries_from_config(self) -> list[Library]: method find_by_id (line 235) | def find_by_id(self, module_name: str, template_id: str) -> tuple[Path... method find (line 286) | def find(self, module_name: str, sort_results: bool = False) -> list[t... FILE: cli/core/module/base_commands.py class GenerationConfig (line 41) | class GenerationConfig: class ConfirmationContext (line 56) | class ConfirmationContext: function list_templates (line 68) | def list_templates(module_instance, raw: bool = False) -> list: function search_templates (line 141) | def search_templates(module_instance, query: str) -> list: function show_template (line 207) | def show_template(module_instance, id: str, var: list[str] | None = None... function check_output_directory (line 236) | def check_output_directory( function get_generation_confirmation (line 278) | def get_generation_confirmation(_ctx: ConfirmationContext) -> bool: function _collect_subdirectories (line 284) | def _collect_subdirectories(rendered_files: dict[str, str]) -> set[Path]: function _analyze_file_operations (line 294) | def _analyze_file_operations( function _format_size (line 320) | def _format_size(total_size: int) -> str: function execute_dry_run (line 329) | def execute_dry_run( function write_rendered_files (line 358) | def write_rendered_files( function _prepare_template (line 376) | def _prepare_template( function _render_template (line 398) | def _render_template(template, id: str, display: DisplayManager, interac... function _determine_output_dir (line 419) | def _determine_output_dir(directory: str | None, output: str | None, id:... function _display_template_error (line 446) | def _display_template_error(display: DisplayManager, template_id: str, e... function _display_generic_error (line 463) | def _display_generic_error(display: DisplayManager, template_id: str, er... function generate_template (line 479) | def generate_template(module_instance, config: GenerationConfig) -> None... function validate_templates (line 577) | def validate_templates( function _load_template_for_validation (line 594) | def _load_template_for_validation(module_instance, template_id: str, pat... function _validate_single_template (line 624) | def _validate_single_template(module_instance, template, template_id: st... function _run_semantic_validation (line 652) | def _run_semantic_validation(module_instance, template, verbose: bool) -... function _display_validation_details (line 679) | def _display_validation_details(module_instance, template, semantic: boo... function _validate_all_templates (line 689) | def _validate_all_templates(module_instance, verbose: bool) -> None: FILE: cli/core/module/base_module.py class Module (line 36) | class Module(ABC): method __init__ (line 51) | def __init__(self) -> None: method _load_all_templates (line 61) | def _load_all_templates(self, filter_fn=None) -> list: method _load_template_by_id (line 96) | def _load_template_by_id(self, id: str): method list (line 124) | def list( method search (line 131) | def search( method show (line 138) | def show( method generate (line 161) | def generate( method validate (line 235) | def validate( method config_get (line 269) | def config_get( method config_set (line 276) | def config_set( method config_remove (line 284) | def config_remove( method config_clear (line 291) | def config_clear( method config_list (line 299) | def config_list(self) -> None: method register_cli (line 304) | def register_cli(cls, app: Typer) -> None: FILE: cli/core/module/config_commands.py function config_get (line 15) | def config_get(module_instance, var_name: str | None = None) -> None: function config_set (line 40) | def config_set(module_instance, var_name: str, value: str | None = None)... function config_remove (line 67) | def config_remove(module_instance, var_name: str) -> None: function config_clear (line 84) | def config_clear(module_instance, var_name: str | None = None, force: bo... function config_list (line 125) | def config_list(module_instance) -> None: FILE: cli/core/module/helpers.py function parse_var_inputs (line 19) | def parse_var_inputs(var_options: list[str], extra_args: list[str]) -> d... function _convert_string_to_type (line 56) | def _convert_string_to_type(value: str) -> Any: function load_var_file (line 87) | def load_var_file(var_file_path: str) -> dict: function apply_variable_defaults (line 125) | def apply_variable_defaults(template, config_manager, module_name: str) ... function apply_var_file (line 145) | def apply_var_file(template, var_file_path: str | None, display: Display... function apply_cli_overrides (line 184) | def apply_cli_overrides(template, var: list[str] | None, ctx=None) -> None: function collect_variable_values (line 212) | def collect_variable_values(template, interactive: bool) -> dict[str, Any]: FILE: cli/core/prompt.py class PromptHandler (line 16) | class PromptHandler: method __init__ (line 19) | def __init__(self) -> None: method collect_variables (line 23) | def collect_variables(self, variables: VariableCollection) -> dict[str... method _check_section_dependencies (line 61) | def _check_section_dependencies(self, variables: VariableCollection, s... method _handle_section_toggle (line 78) | def _handle_section_toggle(self, section, collected: dict[str, Any]) -... method _collect_section_variables (line 99) | def _collect_section_variables( method _prompt_and_update_variable (line 126) | def _prompt_and_update_variable(self, variable: Variable, collected: d... method _prompt_variable (line 139) | def _prompt_variable(self, variable: Variable, _required: bool = False... method _get_prompt_handler (line 195) | def _get_prompt_handler(self, variable: Variable) -> Callable: method _show_validation_error (line 214) | def _show_validation_error(self, message: str) -> None: method _prompt_string (line 218) | def _prompt_string(self, prompt_text: str, default: Any = None, is_sen... method _prompt_bool (line 228) | def _prompt_bool(self, prompt_text: str, default: Any = None) -> bool ... method _prompt_int (line 234) | def _prompt_int(self, prompt_text: str, default: Any = None) -> int | ... method _prompt_enum (line 243) | def _prompt_enum( FILE: cli/core/registry.py class ModuleRegistry (line 11) | class ModuleRegistry: method __init__ (line 14) | def __init__(self) -> None: method register (line 18) | def register(self, module_class: type) -> None: method iter_module_classes (line 30) | def iter_module_classes(self) -> Iterator[tuple[str, type]]: FILE: cli/core/repo.py function _run_git_command (line 24) | def _run_git_command(args: list[str], cwd: Path | None = None) -> tuple[... function _clone_or_pull_repo (line 52) | def _clone_or_pull_repo( function _pull_repo_updates (line 76) | def _pull_repo_updates(name: str, target_path: Path, branch: str | None)... function _clone_new_repo (line 93) | def _clone_new_repo( function _clone_sparse_repo (line 107) | def _clone_sparse_repo(url: str, target_path: Path, branch: str | None, ... function _clone_full_repo (line 142) | def _clone_full_repo(name: str, url: str, target_path: Path, branch: str... function _process_library_update (line 158) | def _process_library_update(lib: dict, libraries_path: Path, progress, v... function _display_update_summary (line 193) | def _display_update_summary(results: list[tuple[str, str, bool]]) -> None: function update (line 211) | def update( function _get_library_path_for_git (line 250) | def _get_library_path_for_git(lib: dict, libraries_path: Path, name: str... function _get_library_path_for_static (line 259) | def _get_library_path_for_static(lib: dict, config: ConfigManager) -> Path: function _get_library_info (line 268) | def _get_library_info(lib: dict, config: ConfigManager, libraries_path: ... function list (line 314) | def list() -> None: function add (line 349) | def add( function remove (line 411) | def remove( function register_cli (line 438) | def register_cli(parent_app: Typer) -> None: FILE: cli/core/template/template.py class TemplateErrorHandler (line 47) | class TemplateErrorHandler: method extract_error_context (line 57) | def extract_error_context(file_path: Path, line_number: int | None, co... method get_common_jinja_suggestions (line 89) | def get_common_jinja_suggestions(error_msg: str, available_vars: set) ... method parse_jinja_error (line 159) | def parse_jinja_error( class TemplateFile (line 210) | class TemplateFile: class TemplateMetadata (line 219) | class TemplateMetadata: method __init__ (line 234) | def __init__( method _validate_metadata (line 277) | def _validate_metadata(template_data: dict) -> None: class Template (line 299) | class Template: method __init__ (line 302) | def __init__(self, template_dir: Path, library_name: str, library_type... method set_qualified_id (line 367) | def set_qualified_id(self, library_name: str | None = None) -> None: method _find_main_template_file (line 377) | def _find_main_template_file(self) -> Path: method _warn_about_unused_variables (line 385) | def _warn_about_unused_variables(self, template_specs: dict) -> None: method _collect_template_files (line 416) | def _collect_template_files(self) -> None: method _extract_all_used_variables (line 446) | def _extract_all_used_variables(self) -> set[str]: method _filter_specs_to_used (line 486) | def _filter_specs_to_used( method _validate_kind (line 520) | def _validate_kind(template_data: dict) -> None: method _validate_variable_definitions (line 532) | def _validate_variable_definitions(self, used_variables: set[str], mer... method _create_jinja_env (line 579) | def _create_jinja_env(searchpath: Path) -> Environment: method _generate_autogenerated_values (line 597) | def _generate_autogenerated_values(self, variables: VariableCollection... method _log_render_start (line 627) | def _log_render_start(self, debug: bool, variable_values: dict) -> None: method _render_jinja2_file (line 636) | def _render_jinja2_file(self, template_file, variable_values: dict, _a... method _handle_jinja2_error (line 650) | def _handle_jinja2_error( method _render_static_file (line 675) | def _render_static_file(self, template_file, debug: bool) -> str: method render (line 696) | def render(self, variables: VariableCollection, debug: bool = False) -... method _sanitize_content (line 755) | def _sanitize_content(self, content: str, _file_path: Path) -> str: method template_files (line 775) | def template_files(self) -> list[TemplateFile]: method template_specs (line 781) | def template_specs(self) -> dict: method jinja_env (line 786) | def jinja_env(self) -> Environment: method used_variables (line 792) | def used_variables(self) -> set[str]: method variables (line 798) | def variables(self) -> VariableCollection: method status (line 816) | def status(self) -> str: FILE: cli/core/template/variable.py class Variable (line 20) | class Variable: method __init__ (line 23) | def __init__(self, data: dict[str, Any]) -> None: method convert (line 96) | def convert(self, value: Any) -> Any: method validate_and_convert (line 127) | def validate_and_convert(self, value: Any, check_required: bool = True... method _convert_bool (line 171) | def _convert_bool(self, value: Any) -> bool: method _convert_int (line 183) | def _convert_int(self, value: Any) -> int | None: method _convert_float (line 194) | def _convert_float(self, value: Any) -> float | None: method _convert_enum (line 205) | def _convert_enum(self, value: Any) -> str | None: method _convert_url (line 213) | def _convert_url(self, value: Any) -> str: method _convert_email (line 222) | def _convert_email(self, value: Any) -> str: method to_dict (line 233) | def to_dict(self) -> dict[str, Any]: method get_display_value (line 272) | def get_display_value(self, mask_sensitive: bool = True, max_length: i... method get_normalized_default (line 302) | def get_normalized_default(self) -> Any: method get_prompt_text (line 333) | def get_prompt_text(self) -> str: method get_validation_hint (line 347) | def get_validation_hint(self) -> str | None: method is_required (line 365) | def is_required(self) -> bool: method get_parent (line 378) | def get_parent(self) -> VariableSection | None: method clone (line 386) | def clone(self, update: dict[str, Any] | None = None) -> Variable: FILE: cli/core/template/variable_collection.py class VariableCollection (line 13) | class VariableCollection: method __init__ (line 16) | def __init__(self, spec: dict[str, Any]) -> None: method from_json (line 52) | def from_json(cls, json_spec: list[dict[str, Any]]) -> VariableCollect... method _validate_and_extract_section_key (line 100) | def _validate_and_extract_section_key(section_data: Any) -> str: method _build_section_dict (line 124) | def _build_section_dict(section_data: dict[str, Any]) -> dict[str, Any]: method _convert_vars_to_dict (line 143) | def _convert_vars_to_dict(section_data: dict[str, Any], section_key: s... method _initialize_sections (line 174) | def _initialize_sections(self, spec: dict[str, Any]) -> None: method _create_section (line 189) | def _create_section(self, key: str, data: dict[str, Any]) -> VariableS... method _initialize_variables (line 208) | def _initialize_variables(self, section: VariableSection, vars_data: d... method _validate_unique_variable_names (line 229) | def _validate_unique_variable_names(self) -> None: method _validate_section_toggle (line 251) | def _validate_section_toggle(self, section: VariableSection) -> None: method _parse_need (line 278) | def _parse_need(need_str: str) -> tuple[str, bool, Any | None]: method _is_need_satisfied (line 333) | def _is_need_satisfied(self, need_str: str) -> bool: method _check_section_need (line 371) | def _check_section_need(self, section_name: str) -> bool: method _check_variable_need (line 379) | def _check_variable_need(self, var_name: str, is_positive: bool, expec... method _matches_any_value (line 418) | def _matches_any_value(self, variable: Variable, actual_value: Any, ex... method _matches_single_value (line 426) | def _matches_single_value(self, variable: Variable, actual_value: Any,... method _values_match (line 431) | def _values_match(self, variable: Variable, actual: Any, expected: Any... method _validate_dependencies (line 437) | def _validate_dependencies(self) -> None: method is_section_satisfied (line 514) | def is_section_satisfied(self, section_key: str) -> bool: method is_variable_satisfied (line 543) | def is_variable_satisfied(self, var_name: str) -> bool: method reset_disabled_bool_variables (line 571) | def reset_disabled_bool_variables(self) -> list[str]: method sort_sections (line 624) | def sort_sections(self) -> None: method _topological_sort (line 667) | def _topological_sort(self) -> list[str]: method get_sections (line 705) | def get_sections(self) -> dict[str, VariableSection]: method get_section (line 709) | def get_section(self, key: str) -> VariableSection | None: method has_sections (line 713) | def has_sections(self) -> bool: method get_all_values (line 717) | def get_all_values(self) -> dict[str, Any]: method get_satisfied_values (line 722) | def get_satisfied_values(self) -> dict[str, Any]: method get_sensitive_variables (line 754) | def get_sensitive_variables(self) -> dict[str, Any]: method apply_defaults (line 758) | def apply_defaults(self, defaults: dict[str, Any], origin: str = "cli"... method validate_all (line 823) | def validate_all(self) -> None: method _validate_cli_bool_variables (line 844) | def _validate_cli_bool_variables(self, errors: list[str]) -> None: method _is_cli_bool_variable (line 864) | def _is_cli_bool_variable(self, variable: Variable) -> bool: method _collect_unmet_needs (line 868) | def _collect_unmet_needs( method _validate_section_variables (line 883) | def _validate_section_variables(self, errors: list[str]) -> None: method _validate_single_variable (line 901) | def _validate_single_variable(self, section, var_name: str, variable: ... method merge (line 933) | def merge( method _merge_sections (line 1003) | def _merge_sections( method filter_to_used (line 1063) | def filter_to_used(self, used_variables: set[str], keep_sensitive: boo... method get_all_variable_names (line 1118) | def get_all_variable_names(self) -> set[str]: FILE: cli/core/template/variable_section.py class VariableSection (line 10) | class VariableSection: method __init__ (line 13) | def __init__(self, data: dict[str, Any]) -> None: method to_dict (line 50) | def to_dict(self) -> dict[str, Any]: method is_enabled (line 67) | def is_enabled(self) -> bool: method clone (line 85) | def clone(self, origin_update: str | None = None) -> VariableSection: method _build_dependency_graph (line 119) | def _build_dependency_graph(self, var_list: list[str]) -> dict[str, li... method _topological_sort (line 138) | def _topological_sort(self, var_list: list[str], dependencies: dict[st... method sort_variables (line 164) | def sort_variables(self, _is_need_satisfied_func=None) -> None: FILE: cli/core/validators.py class ValidationResult (line 24) | class ValidationResult: method __init__ (line 27) | def __init__(self): method add_error (line 32) | def add_error(self, message: str) -> None: method add_warning (line 37) | def add_warning(self, message: str) -> None: method add_info (line 42) | def add_info(self, message: str) -> None: method is_valid (line 48) | def is_valid(self) -> bool: method has_warnings (line 53) | def has_warnings(self) -> bool: method display (line 57) | def display(self, context: str = "Validation") -> None: class ContentValidator (line 80) | class ContentValidator(ABC): method validate (line 84) | def validate(self, content: str, _file_path: str) -> ValidationResult: method can_validate (line 97) | def can_validate(self, file_path: str) -> bool: class DockerComposeValidator (line 109) | class DockerComposeValidator(ContentValidator): method can_validate (line 119) | def can_validate(self, file_path: str) -> bool: method validate (line 124) | def validate(self, content: str, _file_path: str) -> ValidationResult: method _validate_service (line 176) | def _validate_service(self, name: str, config: Any, result: Validation... class YAMLValidator (line 217) | class YAMLValidator(ContentValidator): method can_validate (line 220) | def can_validate(self, file_path: str) -> bool: method validate (line 224) | def validate(self, content: str, _file_path: str) -> ValidationResult: class ValidatorRegistry (line 237) | class ValidatorRegistry: method __init__ (line 240) | def __init__(self): method _register_default_validators (line 244) | def _register_default_validators(self) -> None: method register (line 249) | def register(self, validator: ContentValidator) -> None: method get_validator (line 258) | def get_validator(self, file_path: str) -> ContentValidator | None: method validate_file (line 273) | def validate_file(self, content: str, file_path: str) -> ValidationRes... function get_validator_registry (line 299) | def get_validator_registry() -> ValidatorRegistry: FILE: cli/core/version.py function parse_version (line 15) | def parse_version(version_str: str) -> tuple[int, int]: function compare_versions (line 50) | def compare_versions(version1: str, version2: str) -> int: function is_compatible (line 83) | def is_compatible(current_version: str, required_version: str) -> bool: FILE: cli/modules/ansible/__init__.py class AnsibleModule (line 11) | class AnsibleModule(Module): FILE: cli/modules/compose/__init__.py class ComposeModule (line 18) | class ComposeModule(Module): method validate (line 24) | def validate( # noqa: PLR0913 FILE: cli/modules/compose/validate.py function run_docker_validation (line 17) | def run_docker_validation( function _validate_compose_files (line 72) | def _validate_compose_files(module_instance, template, variables, verbos... function _test_variable_combinations (line 140) | def _test_variable_combinations(module_instance, template, verbose: bool... function _find_toggle_variables (line 217) | def _find_toggle_variables(template) -> list[str]: function _get_variables_with_toggles (line 233) | def _get_variables_with_toggles(module_instance, template, toggle_config... FILE: cli/modules/helm/__init__.py class HelmModule (line 11) | class HelmModule(Module): FILE: cli/modules/kubernetes/__init__.py class KubernetesModule (line 11) | class KubernetesModule(Module): FILE: cli/modules/packer/__init__.py class PackerModule (line 11) | class PackerModule(Module): FILE: cli/modules/terraform/__init__.py class TerraformModule (line 11) | class TerraformModule(Module): FILE: tests/test_variable.py class TestVariableInitialization (line 13) | class TestVariableInitialization: method test_create_simple_variable (line 16) | def test_create_simple_variable(self): method test_create_variable_with_default (line 23) | def test_create_variable_with_default(self): method test_create_bool_variable_without_default (line 29) | def test_create_bool_variable_without_default(self): method test_create_variable_with_description (line 34) | def test_create_variable_with_description(self): method test_missing_name_raises_error (line 39) | def test_missing_name_raises_error(self): method test_invalid_data_type_raises_error (line 44) | def test_invalid_data_type_raises_error(self): class TestVariableTypes (line 50) | class TestVariableTypes: method test_string_type (line 53) | def test_string_type(self): method test_int_type (line 58) | def test_int_type(self): method test_bool_type_true (line 63) | def test_bool_type_true(self): method test_bool_type_false (line 68) | def test_bool_type_false(self): method test_float_type (line 73) | def test_float_type(self): class TestVariableProperties (line 79) | class TestVariableProperties: method test_sensitive_flag (line 82) | def test_sensitive_flag(self): method test_autogenerated_flag (line 87) | def test_autogenerated_flag(self): method test_required_flag (line 92) | def test_required_flag(self): method test_options_list (line 97) | def test_options_list(self): method test_extra_help_text (line 102) | def test_extra_help_text(self): class TestVariableNeeds (line 108) | class TestVariableNeeds: method test_needs_single_string (line 111) | def test_needs_single_string(self): method test_needs_semicolon_separated (line 116) | def test_needs_semicolon_separated(self): method test_needs_list (line 121) | def test_needs_list(self): method test_needs_empty (line 126) | def test_needs_empty(self): class TestVariableConversion (line 132) | class TestVariableConversion: method test_convert_string_to_int (line 135) | def test_convert_string_to_int(self): method test_convert_string_to_bool_true (line 142) | def test_convert_string_to_bool_true(self): method test_convert_string_to_bool_false (line 149) | def test_convert_string_to_bool_false(self): method test_convert_string_to_float (line 156) | def test_convert_string_to_float(self): function test_variable_types_parametrized (line 173) | def test_variable_types_parametrized(var_type, default_value, expected): FILE: tests/test_version.py class TestParseVersion (line 8) | class TestParseVersion: method test_parse_simple_version (line 11) | def test_parse_simple_version(self): method test_parse_version_with_v_prefix (line 17) | def test_parse_version_with_v_prefix(self): method test_parse_version_empty_string (line 22) | def test_parse_version_empty_string(self): method test_parse_version_invalid_format (line 27) | def test_parse_version_invalid_format(self): class TestCompareVersions (line 37) | class TestCompareVersions: method test_compare_equal_versions (line 40) | def test_compare_equal_versions(self): method test_compare_major_version_difference (line 45) | def test_compare_major_version_difference(self): method test_compare_minor_version_difference (line 50) | def test_compare_minor_version_difference(self): method test_compare_with_v_prefix (line 55) | def test_compare_with_v_prefix(self): method test_compare_versions_parametrized (line 70) | def test_compare_versions_parametrized(self, v1, v2, expected): class TestIsCompatible (line 75) | class TestIsCompatible: method test_compatible_equal_versions (line 78) | def test_compatible_equal_versions(self): method test_compatible_newer_version (line 82) | def test_compatible_newer_version(self): method test_incompatible_older_version (line 87) | def test_incompatible_older_version(self): method test_incompatible_invalid_versions (line 92) | def test_incompatible_invalid_versions(self): method test_is_compatible_parametrized (line 107) | def test_is_compatible_parametrized(self, current, required, expected):