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

1from __future__ import annotations 

2 

3from abc import ABC, abstractmethod 

4from typing import TYPE_CHECKING 

5 

6if TYPE_CHECKING: # Imported only for type checking to avoid runtime deps 

7 from qdrant_loader.config import Settings 

8 

9 

10class BaseSplitter(ABC): 

11 """Base class for section splitting strategies.""" 

12 

13 def __init__(self, settings: Settings): 

14 """Initialize the splitter. 

15 

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 

22 

23 @abstractmethod 

24 def split_content(self, content: str, max_size: int) -> list[str]: 

25 """Split content into chunks. 

26 

27 Args: 

28 content: Content to split 

29 max_size: Maximum chunk size 

30 

31 Returns: 

32 List of content chunks 

33 """ 

34 raise NotImplementedError