capcat.core.source_system.bundle_service

File: Application/capcat/core/source_system/bundle_service.py

Description

Service layer for bundle management. Orchestrates BundleManager, BundleValidator, and BundleUI.

Classes

BundleService

Service for bundle management operations. Coordinates validation, UI, and persistence.

Methods

init
def __init__(self, bundles_path: Path, ui: BundleUI = None, logger = None)

Args: bundles_path: Path to bundles.yml ui: BundleUI instance (creates if None) logger: Logger instance (creates if None)

Parameters:

  • self
  • bundles_path (Path)
  • ui (BundleUI) optional
  • logger optional
execute_create_bundle
def execute_create_bundle(self) -> None

Execute bundle creation workflow.

Parameters:

  • self

Returns: None

execute_delete_bundle
def execute_delete_bundle(self) -> None

Execute bundle deletion workflow.

Parameters:

  • self

Returns: None

execute_edit_bundle
def execute_edit_bundle(self) -> None

Execute bundle editing workflow.

Parameters:

  • self

Returns: None

⚠️ High complexity: 11

execute_add_sources
def execute_add_sources(self) -> None

Execute add sources to bundle workflow.

Parameters:

  • self

Returns: None

execute_remove_sources
def execute_remove_sources(self) -> None

Execute remove sources from bundle workflow.

Parameters:

  • self

Returns: None

execute_move_source
def execute_move_source(self) -> None

Execute move source between bundles workflow.

Parameters:

  • self

Returns: None

execute_list_bundles
def execute_list_bundles(self) -> None

Execute list bundles workflow.

Parameters:

  • self

Returns: None

Functions

get_available_bundles

def get_available_bundles(project_root: Path = None) -> dict

Load bundles from userspace (if mirrored) or builtin bundles.yml.

Args: project_root: Project root path. When provided and user bundles.yml exists there, reads from userspace. Falls back to builtin.

Parameters:

  • project_root (Path) optional

Returns: dict

get_available_sources

def get_available_sources() -> dict

Get available sources from the source registry, excluding hidden sources.

Returns: dict