fix: resolve CI/CD issues - Poetry setup, type annotations, MyPy errors
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import List, Optional, Dict, Any
|
from typing import Optional, Any
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -13,9 +13,9 @@ class ChunkMetadata:
|
|||||||
end_line: int
|
end_line: int
|
||||||
line_count: int
|
line_count: int
|
||||||
docstring: Optional[str] = None
|
docstring: Optional[str] = None
|
||||||
imports: List[str] = field(default_factory=list)
|
imports: list[str] = field(default_factory=list)
|
||||||
decorators: List[str] = field(default_factory=list)
|
decorators: list[str] = field(default_factory=list)
|
||||||
parameters: List[str] = field(default_factory=list)
|
parameters: list[str] = field(default_factory=list)
|
||||||
return_type: Optional[str] = None
|
return_type: Optional[str] = None
|
||||||
complexity_score: int = 1
|
complexity_score: int = 1
|
||||||
original_content: str = ""
|
original_content: str = ""
|
||||||
@@ -28,7 +28,7 @@ class ParsedChunk:
|
|||||||
content: str
|
content: str
|
||||||
metadata: ChunkMetadata
|
metadata: ChunkMetadata
|
||||||
priority: int = 0
|
priority: int = 0
|
||||||
dependencies: List[str] = field(default_factory=list)
|
dependencies: list[str] = field(default_factory=list)
|
||||||
summary: str = ""
|
summary: str = ""
|
||||||
is_boilerplate: bool = False
|
is_boilerplate: bool = False
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ class CodeChunker:
|
|||||||
(r'def\s+__ge__\s*\([^)]*\)\s*:', '__ge__'),
|
(r'def\s+__ge__\s*\([^)]*\)\s*:', '__ge__'),
|
||||||
]
|
]
|
||||||
|
|
||||||
def chunk_all(self, chunks: List[ParsedChunk]) -> List[ParsedChunk]:
|
def chunk_all(self, chunks: list[ParsedChunk]) -> list[ParsedChunk]:
|
||||||
"""Process all chunks: remove boilerplate, add priorities."""
|
"""Process all chunks: remove boilerplate, add priorities."""
|
||||||
result = []
|
result = []
|
||||||
for chunk in chunks:
|
for chunk in chunks:
|
||||||
@@ -67,7 +67,7 @@ class CodeChunker:
|
|||||||
return chunk
|
return chunk
|
||||||
|
|
||||||
content = chunk.content
|
content = chunk.content
|
||||||
for pattern, pattern_type in self.boilerplate_patterns:
|
for pattern, _pattern_type in self.boilerplate_patterns:
|
||||||
if re.search(pattern, content, re.MULTILINE):
|
if re.search(pattern, content, re.MULTILINE):
|
||||||
chunk.is_boilerplate = True
|
chunk.is_boilerplate = True
|
||||||
break
|
break
|
||||||
@@ -116,17 +116,17 @@ class CodeChunker:
|
|||||||
chunk.priority = priority
|
chunk.priority = priority
|
||||||
return chunk
|
return chunk
|
||||||
|
|
||||||
def _sort_by_priority(self, chunks: List[ParsedChunk]) -> List[ParsedChunk]:
|
def _sort_by_priority(self, chunks: list[ParsedChunk]) -> list[ParsedChunk]:
|
||||||
"""Sort chunks by priority (highest first)."""
|
"""Sort chunks by priority (highest first)."""
|
||||||
return sorted(chunks, key=lambda c: c.priority, reverse=True)
|
return sorted(chunks, key=lambda c: c.priority, reverse=True)
|
||||||
|
|
||||||
def split_large_chunk(self, chunk: ParsedChunk) -> List[ParsedChunk]:
|
def split_large_chunk(self, chunk: ParsedChunk) -> list[ParsedChunk]:
|
||||||
"""Split a large chunk into smaller pieces."""
|
"""Split a large chunk into smaller pieces."""
|
||||||
if chunk.metadata.line_count <= self.config.max_chunk_size:
|
if chunk.metadata.line_count <= self.config.max_chunk_size:
|
||||||
return [chunk]
|
return [chunk]
|
||||||
|
|
||||||
lines = chunk.content.split('\n')
|
lines = chunk.content.split('\n')
|
||||||
parts = []
|
parts: list[ParsedChunk] = []
|
||||||
current_part = []
|
current_part = []
|
||||||
current_lines = 0
|
current_lines = 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user