rosetta-cli 2.0.13b2__tar.gz → 2.0.14__tar.gz

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.
Files changed (33) hide show
  1. {rosetta_cli-2.0.13b2/rosetta_cli.egg-info → rosetta_cli-2.0.14}/PKG-INFO +1 -1
  2. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/pyproject.toml +1 -1
  3. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/ragflow_client.py +29 -2
  4. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14/rosetta_cli.egg-info}/PKG-INFO +1 -1
  5. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/MANIFEST.in +0 -0
  6. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/README.md +0 -0
  7. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/env.template +0 -0
  8. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/__init__.py +0 -0
  9. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/__main__.py +0 -0
  10. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/cli.py +0 -0
  11. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/__init__.py +0 -0
  12. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/base_command.py +0 -0
  13. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/cleanup_command.py +0 -0
  14. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/list_command.py +0 -0
  15. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/parse_command.py +0 -0
  16. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/publish_command.py +0 -0
  17. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/commands/verify_command.py +0 -0
  18. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/ims_auth.py +0 -0
  19. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/ims_config.py +0 -0
  20. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/ims_publisher.py +0 -0
  21. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/ims_utils.py +0 -0
  22. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/services/__init__.py +0 -0
  23. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/services/auth_service.py +0 -0
  24. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/services/dataset_service.py +0 -0
  25. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/services/document_data.py +0 -0
  26. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/services/document_service.py +0 -0
  27. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli/typing_utils.py +0 -0
  28. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli.egg-info/SOURCES.txt +0 -0
  29. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli.egg-info/dependency_links.txt +0 -0
  30. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli.egg-info/entry_points.txt +0 -0
  31. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli.egg-info/requires.txt +0 -0
  32. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/rosetta_cli.egg-info/top_level.txt +0 -0
  33. {rosetta_cli-2.0.13b2 → rosetta_cli-2.0.14}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosetta-cli
3
- Version: 2.0.13b2
3
+ Version: 2.0.14
4
4
  Summary: Rosetta CLI for publishing knowledge base content to RAGFlow
5
5
  Author-email: Rosetta Team <rosetta-support@griddynamics.com>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rosetta-cli"
7
- version = "2.0.13b02"
7
+ version = "2.0.14"
8
8
  description = "Rosetta CLI for publishing knowledge base content to RAGFlow"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -156,6 +156,23 @@ class RAGFlowClient:
156
156
  # side, so we cannot rely on filtered list_documents to find an existing
157
157
  # doc by ims_doc_id; we list once and index in memory instead.
158
158
  self._doc_index_by_dataset: dict[str, dict[str, DocumentLike]] = {}
159
+ # Per-client dataset lookup cache. Publishing resolves the same release
160
+ # dataset for every file; keep those list_datasets calls in-process.
161
+ self._dataset_by_id: dict[str, DataSet] = {}
162
+ self._dataset_by_name: dict[str, DataSet] = {}
163
+
164
+ def _clear_dataset_cache(self) -> None:
165
+ self._dataset_by_id.clear()
166
+ self._dataset_by_name.clear()
167
+
168
+ def _remember_dataset(self, dataset: DataSet) -> DataSet:
169
+ dataset_id = getattr(dataset, "id", None)
170
+ dataset_name = getattr(dataset, "name", None)
171
+ if dataset_id:
172
+ self._dataset_by_id[str(dataset_id)] = dataset
173
+ if dataset_name:
174
+ self._dataset_by_name[str(dataset_name)] = dataset
175
+ return dataset
159
176
 
160
177
  def _get_doc_index(self, dataset: DatasetLike) -> dict[str, DocumentLike]:
161
178
  """Return a {ims_doc_id: doc} index for the dataset, building it once.
@@ -309,7 +326,8 @@ class RAGFlowClient:
309
326
  with _timed(f"create_dataset(name={name})"):
310
327
  dataset = self._client.create_dataset(**kwargs)
311
328
 
312
- return dataset
329
+ self._clear_dataset_cache()
330
+ return self._remember_dataset(cast(DataSet, dataset))
313
331
 
314
332
  except Exception as e:
315
333
  raise RAGFlowClientError(f"Failed to create dataset '{name}': {str(e)}")
@@ -376,10 +394,18 @@ class RAGFlowClient:
376
394
  """
377
395
  try:
378
396
  if id:
397
+ cached = self._dataset_by_id.get(str(id))
398
+ if cached is not None:
399
+ return cached
400
+
379
401
  # Filter by ID
380
402
  with _timed(f"list_datasets(id={id})"):
381
403
  datasets = self._client.list_datasets(id=id, page_size=1)
382
404
  elif name:
405
+ cached = self._dataset_by_name.get(str(name))
406
+ if cached is not None:
407
+ return cached
408
+
383
409
  # Filter by name (RAGFlow does substring, we verify exact match)
384
410
  with _timed(f"list_datasets(name={name})"):
385
411
  datasets = self._client.list_datasets(name=name, page_size=10)
@@ -389,7 +415,7 @@ class RAGFlowClient:
389
415
  return None
390
416
 
391
417
  if datasets and len(datasets) > 0:
392
- return datasets[0]
418
+ return self._remember_dataset(cast(DataSet, datasets[0]))
393
419
  return None
394
420
 
395
421
  except Exception as e:
@@ -416,6 +442,7 @@ class RAGFlowClient:
416
442
  return
417
443
  with _timed(f"delete_datasets(n={len(ids)})"):
418
444
  self._client.delete_datasets(ids=ids)
445
+ self._clear_dataset_cache()
419
446
 
420
447
  except Exception as e:
421
448
  raise RAGFlowClientError(f"Failed to delete datasets: {str(e)}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosetta-cli
3
- Version: 2.0.13b2
3
+ Version: 2.0.14
4
4
  Summary: Rosetta CLI for publishing knowledge base content to RAGFlow
5
5
  Author-email: Rosetta Team <rosetta-support@griddynamics.com>
6
6
  License-Expression: Apache-2.0
File without changes
File without changes
File without changes