Coverage for src/qdrant_loader/core/chunking/strategy/markdown/splitters/base.py: 91%
11 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:05 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:05 +0000
1from __future__ import annotations
3from abc import ABC, abstractmethod
4from typing import TYPE_CHECKING
6if TYPE_CHECKING: # Imported only for type checking to avoid runtime deps
7 from qdrant_loader.config import Settings
10class BaseSplitter(ABC):
11 """Base class for section splitting strategies."""
13 def __init__(self, settings: Settings):
14 """Initialize the splitter.
16 Args:
17 settings: Configuration settings
18 """
19 self.settings = settings
20 self.chunk_size = settings.global_config.chunking.chunk_size
21 self.chunk_overlap = settings.global_config.chunking.chunk_overlap
23 @abstractmethod
24 def split_content(self, content: str, max_size: int) -> list[str]:
25 """Split content into chunks.
27 Args:
28 content: Content to split
29 max_size: Maximum chunk size
31 Returns:
32 List of content chunks
33 """
34 raise NotImplementedError