Skip to content

Commit ca4a3d2

Browse files
committed
Add logging for code context retrieval and cache building in CodeBase
1 parent 49608eb commit ca4a3d2

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

codetide/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,14 @@ def get(self, unique_id :Union[str, List[str]], degree :int=1, as_string :bool=T
440440
if isinstance(unique_id, str):
441441
unique_id = [unique_id]
442442

443+
# Log the incoming request
444+
logger.info(
445+
f"Getting code context - IDs: {unique_id}, "
446+
f"degree: {degree}, "
447+
f"as_string: {as_string}, "
448+
f"as_list_str: {as_list_str}"
449+
)
450+
443451
requestedFiles = self._precheck_id_is_file(unique_id)
444452
return self.codebase.get(
445453
unique_id=unique_id,

codetide/core/models.py

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .common import CONTEXT_INTRUCTION, TARGET_INSTRUCTION, wrap_content
2+
from .logs import logger
23

34
from pydantic import BaseModel, Field, computed_field, field_validator
45
from typing import Any, Dict, List, Optional, Literal, Union
@@ -663,8 +664,9 @@ def _render_class_contents(self, class_def: 'ClassDefinition', prefix: str,
663664

664665
def get(self, unique_id :Union[str, List[str]], degree :int=1, as_string :bool=False, as_list_str :bool=False, preloaded_files :Optional[Dict[str, str]]=None)->Union[CodeContextStructure, str, List[str]]:
665666
if not self._cached_elements:
667+
logger.debug("Building cached elements for the first time")
666668
self._build_cached_elements()
667-
669+
668670
if isinstance(unique_id, str):
669671
unique_id = [unique_id]
670672

@@ -675,6 +677,8 @@ def get(self, unique_id :Union[str, List[str]], degree :int=1, as_string :bool=F
675677

676678
while True:
677679
new_references_ids = []
680+
logger.debug(f"Current degree level: {degree}, processing {len(references_ids)} references")
681+
678682
for reference in references_ids:
679683
element = self._cached_elements.get(reference)
680684
if (
@@ -684,34 +688,49 @@ def get(self, unique_id :Union[str, List[str]], degree :int=1, as_string :bool=F
684688
):
685689
retrieved_elements.append(element)
686690
retrieved_ids.append(element.unique_id)
691+
logger.debug(f"Added element: {element.unique_id} ({element.__class__.__name__})")
687692

688693
if hasattr(element, "references") and degree > 0:
689-
new_references_ids.extend([
690-
_reference.unique_id for _reference in element.references if _reference.unique_id and _reference.unique_id not in references_ids
691-
])
694+
new_refs = [
695+
_reference.unique_id for _reference in element.references
696+
if _reference.unique_id and _reference.unique_id not in references_ids
697+
]
698+
new_references_ids.extend(new_refs)
699+
if new_refs:
700+
logger.debug(f"Found {len(new_refs)} new references from {element.unique_id}")
692701

693702
if degree == 0:
703+
logger.debug("Reached maximum degree depth")
694704
break
695705

696706
references_ids = new_references_ids.copy()
697707
first_swipe = False
698708
degree -= 1
699709

700-
codeContext = CodeContextStructure.from_list_of_elements(retrieved_elements, requested_element_index=[i for i in range(len(unique_id)-len(preloaded_files or []))], preloaded_files=preloaded_files)
710+
logger.info(f"Retrieved {len(retrieved_elements)} total elements")
711+
712+
codeContext = CodeContextStructure.from_list_of_elements(
713+
retrieved_elements,
714+
requested_element_index=[i for i in range(len(unique_id)-len(preloaded_files or []))],
715+
preloaded_files=preloaded_files
716+
)
701717
codeContext._cached_elements = self._cached_elements
702718

703719
if as_string:
704720
context = codeContext.as_list_str()
705721
if context[0]:
706722
context.insert(0, [CONTEXT_INTRUCTION])
707723
context.insert(-1, [TARGET_INSTRUCTION])
708-
724+
logger.debug(f"Returning as string with {len(context)} sections")
709725
return "\n\n".join(sum(context, []))
710-
726+
711727
elif as_list_str:
712-
return sum(codeContext.as_list_str(), [])
713-
728+
flat_list = sum(codeContext.as_list_str(), [])
729+
logger.debug(f"Returning as list with {len(flat_list)} items")
730+
return flat_list
731+
714732
else:
733+
logger.debug("Returning raw CodeContextStructure")
715734
return codeContext
716735

717736
def serialize_cache_elements(self, indent :int=4)->str:

0 commit comments

Comments
 (0)