Coverage for src/qdrant_loader/core/chunking/strategy/code/parser/common.py: 95%

43 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-09-08 06:05 +0000

1from __future__ import annotations 

2 

3from dataclasses import dataclass, field 

4from enum import Enum 

5 

6 

7class CodeElementType(Enum): 

8 MODULE = "module" 

9 CLASS = "class" 

10 FUNCTION = "function" 

11 METHOD = "method" 

12 PROPERTY = "property" 

13 VARIABLE = "variable" 

14 IMPORT = "import" 

15 COMMENT = "comment" 

16 DOCSTRING = "docstring" 

17 DECORATOR = "decorator" 

18 CONSTANT = "constant" 

19 INTERFACE = "interface" 

20 ENUM = "enum" 

21 STRUCT = "struct" 

22 NAMESPACE = "namespace" 

23 PACKAGE = "package" 

24 

25 

26@dataclass 

27class CodeElement: 

28 name: str 

29 element_type: CodeElementType 

30 content: str 

31 start_line: int 

32 end_line: int 

33 level: int = 0 

34 parent: CodeElement | None = None 

35 children: list[CodeElement] = field(default_factory=list) 

36 docstring: str = None 

37 decorators: list[str] = field(default_factory=list) 

38 parameters: list[str] = field(default_factory=list) 

39 return_type: str = None 

40 visibility: str = "public" 

41 is_async: bool = False 

42 is_static: bool = False 

43 is_abstract: bool = False 

44 complexity: int = 0 

45 dependencies: list[str] = field(default_factory=list) 

46 

47 def add_child(self, child: CodeElement) -> None: 

48 self.children.append(child) 

49 child.parent = self