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
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:05 +0000
1from __future__ import annotations
3from dataclasses import dataclass, field
4from enum import Enum
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"
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)
47 def add_child(self, child: CodeElement) -> None:
48 self.children.append(child)
49 child.parent = self