capcat.core.source_system.bundle_validator
File: Application/capcat/core/source_system/bundle_validator.py
Description
Bundle validation logic. Validates bundle IDs, descriptions, source IDs, and integrity.
Constants
BUNDLE_ID_PATTERN
Value: re.compile('^[a-z0-9_]+$')
BUNDLE_ID_MAX_LENGTH
Value: 30
DESCRIPTION_MAX_LENGTH
Value: 200
Classes
ValidationResult
Result of validation operation.
Methods
post_init
def __post_init__(self)
Parameters:
self
BundleValidator
Validates bundle operations and data.
Methods
init
def __init__(self, bundle_manager = None, source_registry = None)
Args: bundle_manager: BundleManager instance for existence checks source_registry: SourceRegistry instance for source validation
Parameters:
selfbundle_manageroptionalsource_registryoptional
validate_bundle_id
def validate_bundle_id(self, bundle_id: str) -> ValidationResult
Validate bundle ID format.
Args: bundle_id: Bundle identifier to validate
Returns: ValidationResult with errors if invalid
Parameters:
selfbundle_id(str)
Returns: ValidationResult
validate_bundle_unique
def validate_bundle_unique(self, bundle_id: str) -> ValidationResult
Check if bundle ID is unique.
Args: bundle_id: Bundle identifier to check
Returns: ValidationResult with error if duplicate
Parameters:
selfbundle_id(str)
Returns: ValidationResult
validate_description
def validate_description(self, description: str) -> ValidationResult
Validate bundle description.
Args: description: Description text
Returns: ValidationResult with errors if invalid
Parameters:
selfdescription(str)
Returns: ValidationResult
validate_source_ids
def validate_source_ids(self, source_ids: List[str]) -> Tuple[List[str], List[str]]
Validate source IDs against registry.
Args: source_ids: List of source IDs to validate
Returns: Tuple of (valid_ids, invalid_ids)
Parameters:
selfsource_ids(List[str])
Returns: Tuple[List[str], List[str]]
validate_bundle_exists
def validate_bundle_exists(self, bundle_id: str) -> ValidationResult
Check if bundle exists.
Args: bundle_id: Bundle identifier
Returns: ValidationResult with error if not found
Parameters:
selfbundle_id(str)
Returns: ValidationResult
validate_not_protected
def validate_not_protected(self, bundle_id: str) -> ValidationResult
Check if bundle is protected from modification.
Args: bundle_id: Bundle identifier
Returns: ValidationResult with error if protected
Parameters:
selfbundle_id(str)
Returns: ValidationResult