basic-memory 0.23.3.dev2__py3-none-any.whl → 0.23.3.dev4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -159,11 +159,14 @@ class BatchIndexer:
159
159
  *,
160
160
  max_concurrent: int,
161
161
  parse_max_concurrent: int | None = None,
162
+ metadata_update_max_concurrent: int | None = None,
162
163
  existing_permalink_by_path: dict[str, str | None] | None = None,
163
164
  ) -> IndexingBatchResult:
164
165
  """Index one batch of loaded files with bounded concurrency."""
165
166
  if max_concurrent <= 0:
166
167
  raise ValueError("max_concurrent must be greater than zero")
168
+ if metadata_update_max_concurrent is not None and metadata_update_max_concurrent <= 0:
169
+ raise ValueError("metadata_update_max_concurrent must be greater than zero")
167
170
 
168
171
  ordered_paths = sorted(files)
169
172
  if not ordered_paths:
@@ -220,7 +223,11 @@ class BatchIndexer:
220
223
 
221
224
  refreshed, refresh_errors = await self._run_bounded(
222
225
  [path for path in ordered_paths if path in prepared_entities],
223
- limit=self.app_config.index_metadata_update_max_concurrent,
226
+ limit=(
227
+ self.app_config.index_metadata_update_max_concurrent
228
+ if metadata_update_max_concurrent is None
229
+ else metadata_update_max_concurrent
230
+ ),
224
231
  worker=lambda path: self._refresh_search_index(
225
232
  prepared_entities[path],
226
233
  entities_by_id[prepared_entities[path].entity_id],
@@ -56,6 +56,7 @@ class IndexInputBatchExecutor(Protocol):
56
56
  *,
57
57
  max_concurrent: int,
58
58
  parse_max_concurrent: int | None = None,
59
+ metadata_update_max_concurrent: int | None = None,
59
60
  ) -> IndexingBatchResult:
60
61
  """Index one batch of storage-neutral input files."""
61
62
 
@@ -105,6 +106,7 @@ class IndexBatchRuntime[EntityT: IndexedNoteContentEntity, FileInfoT: LoadedInde
105
106
  input_files,
106
107
  max_concurrent=max_concurrent,
107
108
  parse_max_concurrent=parse_max_concurrent,
109
+ metadata_update_max_concurrent=metadata_update_max_concurrent,
108
110
  )
109
111
  reconciliation = await reconcile_indexed_note_content_batch(
110
112
  result.indexed,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: basic-memory
3
- Version: 0.23.3.dev2
3
+ Version: 0.23.3.dev4
4
4
  Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
5
  Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
6
  Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
@@ -162,7 +162,7 @@ basic_memory/indexing/accepted_note_enqueue_runner.py,sha256=v0BQTdKFOnhwrvls4QB
162
162
  basic_memory/indexing/accepted_note_mutation_runner.py,sha256=BTaMDcE2GpF4S5uhF2tHzxFbBOy1fOgUVjmB2_Wyj0M,47564
163
163
  basic_memory/indexing/accepted_note_search.py,sha256=fNcuxOKJ_zVM6FVlZQ8-OGjG3E3NXGJwkTuvO8aF0PU,4748
164
164
  basic_memory/indexing/accepted_note_write_runner.py,sha256=ZvQlX47C8oD-VTCBWSEDCzTE3x938IPetZQp48_H_PM,25759
165
- basic_memory/indexing/batch_indexer.py,sha256=Yy9CcZcHzUsLG24aAsaUVrCjkDFemAQeagDmr8IFV_s,37976
165
+ basic_memory/indexing/batch_indexer.py,sha256=KL0jRk9zJKmyKsWtE23oRZox5Y-XISLbSOeeXZOvhfI,38361
166
166
  basic_memory/indexing/batching.py,sha256=-gOgdw-hu7crfvM6TaAvykmViyQLjZHEVtRDnUD3SsU,2297
167
167
  basic_memory/indexing/change_detector.py,sha256=h198EwavsKkAA8FS2mR3fqAwZrfWWCBk5Zyxj7R5LqU,7392
168
168
  basic_memory/indexing/change_planning.py,sha256=kgnn3RWdkthkempzT-a5_hqcvOJHqZAhRO48dXZchJk,6896
@@ -174,7 +174,7 @@ basic_memory/indexing/file_index_checking.py,sha256=pDnx_ELXEUeMx3HKiTukf6TgcCNg
174
174
  basic_memory/indexing/file_index_planning.py,sha256=kbLmX0Ri5FjG_oa1xEFf5XIMx4u1v-tGFom56kVUSvg,6604
175
175
  basic_memory/indexing/file_indexer.py,sha256=BXh5cMBvB_loj3aW4Ag4hIqy7VX_pWOZWuq2k420H20,9077
176
176
  basic_memory/indexing/forward_reference_resolution.py,sha256=be7z8CJEbwMVb2kOgS2egmg7TCZBiM7GjFPZQb2B3dY,11790
177
- basic_memory/indexing/index_batch_runtime.py,sha256=qsBdxgVeEP4F9BO5saBBPBixsrA_Og5B4WgpM_vF4gQ,7650
177
+ basic_memory/indexing/index_batch_runtime.py,sha256=wp4BUZGmFvRqkr3Azm-8p5FT6fx374g5oY3aJvxppxU,7784
178
178
  basic_memory/indexing/index_file_runner.py,sha256=mu--rGqBKnWfn4N9X2HOdFJThlmJ_xdAs3wakTEh6kc,10838
179
179
  basic_memory/indexing/index_file_runtime.py,sha256=5-XiDINhIM1SJiG2BmZtji9ElfQmLsaRCBZlBE3mUTs,5143
180
180
  basic_memory/indexing/input_file_adaptation.py,sha256=qoBrqt4GD_W5F0nt3af1aLeSLRnM-2AUiJlhLKH8g5M,1649
@@ -390,8 +390,8 @@ basic_memory/services/search_service.py,sha256=8A1vXo5IIpKXL2gxEsCEP_tcKyRcnz4R5
390
390
  basic_memory/services/service.py,sha256=V-d_8gOV07zGIQDpL-Ksqs3ZN9l3qf3HZOK1f_YNTag,336
391
391
  basic_memory/templates/prompts/continue_conversation.hbs,sha256=trrDHSXA5S0JCbInMoUJL04xvCGRB_ku1RHNQHtl6ZI,3076
392
392
  basic_memory/templates/prompts/search.hbs,sha256=H1cCIsHKp4VC1GrH2KeUB8pGe5vXFPqb2VPotypmeCA,3098
393
- basic_memory-0.23.3.dev2.dist-info/METADATA,sha256=_c99-bcBWDk2nBo5pqbUCMbUVlYnl3TV2vtXjWFolGk,26812
394
- basic_memory-0.23.3.dev2.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
395
- basic_memory-0.23.3.dev2.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
396
- basic_memory-0.23.3.dev2.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
397
- basic_memory-0.23.3.dev2.dist-info/RECORD,,
393
+ basic_memory-0.23.3.dev4.dist-info/METADATA,sha256=D0gUO1esK4pI9zMKGgWYp6P5SBgpRpYrbvV0LJCGSHA,26812
394
+ basic_memory-0.23.3.dev4.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
395
+ basic_memory-0.23.3.dev4.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
396
+ basic_memory-0.23.3.dev4.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
397
+ basic_memory-0.23.3.dev4.dist-info/RECORD,,