rosetta-cli 3.0.4__tar.gz → 3.0.5__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-3.0.4/rosetta_cli.egg-info → rosetta_cli-3.0.5}/PKG-INFO +1 -1
  2. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/pyproject.toml +1 -1
  3. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/cli.py +2 -1
  4. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/ragflow_client.py +33 -15
  5. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/services/dataset_service.py +16 -3
  6. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5/rosetta_cli.egg-info}/PKG-INFO +1 -1
  7. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/MANIFEST.in +0 -0
  8. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/README.md +0 -0
  9. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/env.template +0 -0
  10. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/__init__.py +0 -0
  11. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/__main__.py +0 -0
  12. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/__init__.py +0 -0
  13. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/base_command.py +0 -0
  14. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/cleanup_command.py +0 -0
  15. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/list_command.py +0 -0
  16. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/parse_command.py +0 -0
  17. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/publish_command.py +0 -0
  18. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/commands/verify_command.py +0 -0
  19. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/rosetta_auth.py +0 -0
  20. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/rosetta_config.py +0 -0
  21. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/rosetta_publisher.py +0 -0
  22. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/rosetta_utils.py +0 -0
  23. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/services/__init__.py +0 -0
  24. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/services/auth_service.py +0 -0
  25. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/services/document_data.py +0 -0
  26. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/services/document_service.py +0 -0
  27. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli/typing_utils.py +0 -0
  28. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli.egg-info/SOURCES.txt +0 -0
  29. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli.egg-info/dependency_links.txt +0 -0
  30. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli.egg-info/entry_points.txt +0 -0
  31. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli.egg-info/requires.txt +0 -0
  32. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/rosetta_cli.egg-info/top_level.txt +0 -0
  33. {rosetta_cli-3.0.4 → rosetta_cli-3.0.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosetta-cli
3
- Version: 3.0.4
3
+ Version: 3.0.5
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 = "3.0.4"
7
+ version = "3.0.5"
8
8
  description = "Rosetta CLI for publishing knowledge base content to RAGFlow"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -378,7 +378,8 @@ Frontmatter Metadata (publish flow):
378
378
  chunk_method=config.chunk_method,
379
379
  parser_config=config.parser_config,
380
380
  page_size=config.page_size,
381
- timeout=config.timeout
381
+ dataset_default=config.dataset_default,
382
+ timeout=config.timeout,
382
383
  )
383
384
 
384
385
  return execute_command(args.command, args, client, config)
@@ -116,7 +116,8 @@ class RAGFlowClient:
116
116
  embedding_model: str | None = None,
117
117
  chunk_method: str = "naive",
118
118
  parser_config: JsonDict | None = None,
119
- page_size: int = 1000
119
+ page_size: int = 1000,
120
+ dataset_default: str = "aia",
120
121
  ):
121
122
  """
122
123
  Initialize RAGFlow client.
@@ -130,6 +131,7 @@ class RAGFlowClient:
130
131
  chunk_method: Chunking method (default: naive)
131
132
  parser_config: Parser configuration dict for chunk_method settings
132
133
  page_size: Default page size for list operations (default: 1000)
134
+ dataset_default: Default dataset name when no release-specific or explicit dataset name is available
133
135
 
134
136
  Raises:
135
137
  ValueError: If api_key or base_url is empty
@@ -147,6 +149,7 @@ class RAGFlowClient:
147
149
  self.chunk_method = chunk_method
148
150
  self.parser_config = parser_config or {}
149
151
  self.page_size = page_size
152
+ self.dataset_default = dataset_default
150
153
 
151
154
  # Initialize RAGFlow SDK client
152
155
  self._client = RAGFlow(api_key=api_key, base_url=base_url, version=version)
@@ -469,26 +472,38 @@ class RAGFlowClient:
469
472
  # Dataset doesn't exist, create it (gated by dry_run)
470
473
  return self.create_dataset(name, description, dry_run=dry_run)
471
474
 
472
- def _resolve_dataset_name(self, template: str, release: str | None) -> str:
475
+ def _resolve_dataset_name(
476
+ self,
477
+ dataset_template: str,
478
+ release: str | None,
479
+ dataset_name: str | None,
480
+ ) -> str:
473
481
  """
474
- Resolve dataset name from template.
482
+ Resolve dataset name using release + dataset_template, explicit dataset_name or default.
475
483
 
476
484
  Args:
477
- template: Name template (e.g., "aia-{release}")
485
+ dataset_template: Name template (e.g., "aia-{release}")
478
486
  release: Release identifier (e.g., "r1")
487
+ dataset_name: Explicit dataset name, if provided (e.g., "aia-r1")
479
488
 
480
489
  Returns:
481
490
  Resolved dataset name
482
491
 
483
492
  Examples:
484
- >>> _resolve_dataset_name("aia-{release}", "r1")
493
+ >>> _resolve_dataset_name("aia-{release}", "r1", "aia-r2")
485
494
  "aia-r1"
486
- >>> _resolve_dataset_name("aia", None)
487
- "aia"
495
+ >>> _resolve_dataset_name("aia-{release}", None, "aia-r2")
496
+ "aia-r2"
488
497
  """
489
- if release and "{release}" in template:
490
- return template.format(release=release)
491
- return template
498
+ if release and "{release}" in dataset_template:
499
+ resolved_name = dataset_template.format(release=release)
500
+ else:
501
+ resolved_name = dataset_name or self.dataset_default
502
+
503
+ if "{release}" in resolved_name:
504
+ raise ValueError(f"Unresolved release placeholder in dataset name: {resolved_name}")
505
+
506
+ return resolved_name
492
507
 
493
508
  def _build_title_with_tags(self, tags: list[str], filename: str) -> str:
494
509
  """
@@ -521,7 +536,7 @@ class RAGFlowClient:
521
536
  OPTIMIZED: Now accepts pre-read content to avoid redundant file I/O.
522
537
 
523
538
  This method:
524
- 1. Resolves dataset name from template + release
539
+ 1. Resolves the target dataset name
525
540
  2. Ensures dataset exists
526
541
  3. Builds title with tag prefixes
527
542
  4. Checks if document exists (by ims_doc_id)
@@ -529,6 +544,12 @@ class RAGFlowClient:
529
544
  6. Deletes existing document if changed
530
545
  7. Uploads new document with metadata
531
546
 
547
+ Dataset name resolution precedence:
548
+ 1. If metadata.release is present, and dataset_template contains "{release}",
549
+ resolve dataset_template with the release.
550
+ 2. Otherwise, use dataset_name when provided.
551
+ 3. Otherwise, fall back to dataset_default.
552
+
532
553
  Args:
533
554
  file_path: Path to file (for filename, backward compatibility)
534
555
  metadata: Document metadata with pre-calculated hash
@@ -567,10 +588,7 @@ class RAGFlowClient:
567
588
  actual_hash = metadata.content_hash
568
589
 
569
590
  # Resolve dataset name
570
- resolved_name = self._resolve_dataset_name(
571
- dataset_template if "{release}" in dataset_template else (dataset_name or dataset_template),
572
- metadata.release
573
- )
591
+ resolved_name = self._resolve_dataset_name(dataset_template, metadata.release, dataset_name)
574
592
 
575
593
  # Ensure dataset exists (dry_run gates the underlying create_dataset call)
576
594
  dataset = self._ensure_dataset(
@@ -27,14 +27,27 @@ class DatasetService:
27
27
 
28
28
  def resolve_dataset_name(self, args_dataset: Optional[str]) -> tuple[Optional[str], bool]:
29
29
  """
30
- Resolve dataset name with auto-detection.
31
-
30
+ Resolve which dataset to act on.
31
+
32
+ How the name is picked:
33
+ 1. --dataset given -> use it (False)
34
+ 2. else list server datasets, keep those starting with the template
35
+ prefix ("aia-" from "aia-{release}")
36
+ 3. exactly one match -> use it (True)
37
+ 4. several matches -> give up, ask user (None, False)
38
+ 5. no matches -> use dataset_default (True)
39
+
32
40
  Args:
33
41
  args_dataset: Dataset name from arguments (can be None)
34
-
42
+
35
43
  Returns:
36
44
  Tuple of (dataset_name: str or None, auto_detected: bool)
37
45
  Returns (None, False) if resolution fails
46
+
47
+ auto_detected answers "did the caller supply this name?", not "did
48
+ we find it on the server". False only for step 1. True for steps 3
49
+ and 5 alike: the caller supplied nothing and this method chose.
50
+ True on step 5 is correct.
38
51
  """
39
52
  # Explicit dataset provided
40
53
  if args_dataset:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rosetta-cli
3
- Version: 3.0.4
3
+ Version: 3.0.5
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
File without changes