Skip to content

Commit b691137

Browse files
authored
chore: avoid reprocessing triggered unncessarily (#73)
1 parent 86fca84 commit b691137

3 files changed

Lines changed: 9 additions & 6 deletions

File tree

src/cocoindex_code/indexer.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from cocoindex.resources.id import IdGenerator
1212

1313
from .settings import PROJECT_SETTINGS
14-
from .shared import CODEBASE_DIR, EMBEDDER, SQLITE_DB, CodeChunk
14+
from .shared import CODEBASE_DIR, EMBEDDER, EXT_LANG_OVERRIDE_MAP, SQLITE_DB, CodeChunk
1515

1616
# Chunking configuration
1717
CHUNK_SIZE = 2000
@@ -28,7 +28,6 @@ async def process_file(
2828
table: sqlite.TableTarget[CodeChunk],
2929
) -> None:
3030
"""Process a single file: chunk, embed, and store."""
31-
ps = coco.use_context(PROJECT_SETTINGS)
3231
embedder = coco.use_context(EMBEDDER)
3332

3433
try:
@@ -40,10 +39,9 @@ async def process_file(
4039
return
4140

4241
suffix = file.file_path.path.suffix
43-
# Check language overrides from project settings
44-
override_map = {f".{lo.ext}": lo.lang for lo in ps.language_overrides}
42+
ext_lang_override_map = coco.use_context(EXT_LANG_OVERRIDE_MAP)
4543
language = (
46-
override_map.get(suffix)
44+
ext_lang_override_map.get(suffix)
4745
or detect_code_language(filename=file.file_path.path.name)
4846
or "text"
4947
)

src/cocoindex_code/project.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from .indexer import indexer_main
1313
from .protocol import IndexingProgress
1414
from .settings import PROJECT_SETTINGS, ProjectSettings
15-
from .shared import CODEBASE_DIR, EMBEDDER, SQLITE_DB, Embedder
15+
from .shared import CODEBASE_DIR, EMBEDDER, EXT_LANG_OVERRIDE_MAP, SQLITE_DB, Embedder
1616

1717

1818
class Project:
@@ -86,6 +86,10 @@ async def create(
8686
context.provide(SQLITE_DB, sqlite.connect(str(target_sqlite_db_path), load_vec=True))
8787
context.provide(EMBEDDER, embedder)
8888
context.provide(PROJECT_SETTINGS, project_settings)
89+
context.provide(
90+
EXT_LANG_OVERRIDE_MAP,
91+
{f".{lo.ext}": lo.lang for lo in project_settings.language_overrides},
92+
)
8993

9094
env = coco.Environment(settings, context_provider=context)
9195
app = coco.App(

src/cocoindex_code/shared.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
EMBEDDER = coco.ContextKey[Embedder]("embedder")
3232
SQLITE_DB = coco.ContextKey[sqlite.ManagedConnection]("index_db", tracked=False)
3333
CODEBASE_DIR = coco.ContextKey[pathlib.Path]("codebase", tracked=False)
34+
EXT_LANG_OVERRIDE_MAP = coco.ContextKey[dict[str, str]]("ext_lang_override_map")
3435

3536
# Module-level variable — set by daemon at startup (needed for CodeChunk annotation).
3637
embedder: Embedder | None = None

0 commit comments

Comments
 (0)