instance-repo 1.3.2.dev5__tar.gz → 1.3.4__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 (49) hide show
  1. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/PKG-INFO +2 -2
  2. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/__init__.py +5 -1
  3. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/datasets.py +16 -1
  4. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/instances.py +518 -39
  5. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/splits.py +48 -19
  6. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/versions.py +20 -3
  7. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/content.py +38 -2
  8. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/models.py +79 -0
  9. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/repo.py +60 -8
  10. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/oss.py +10 -7
  11. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/oss_discovery.py +73 -14
  12. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/transport.py +20 -7
  13. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/PKG-INFO +2 -2
  14. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/requires.txt +1 -1
  15. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/pyproject.toml +2 -2
  16. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/README.md +0 -0
  17. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/_routing.py +0 -0
  18. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/_site_defaults.py +0 -0
  19. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/artifacts.py +0 -0
  20. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/bootstrap.py +0 -0
  21. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/cache.py +0 -0
  22. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/cli.py +0 -0
  23. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/__init__.py +0 -0
  24. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/benchmarks.py +0 -0
  25. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/config.py +0 -0
  26. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/images.py +0 -0
  27. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/reports.py +0 -0
  28. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/scaffold.py +0 -0
  29. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/clients/workflows.py +0 -0
  30. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/concurrency.py +0 -0
  31. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/endpoints.py +0 -0
  32. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/errors.py +0 -0
  33. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/image.py +0 -0
  34. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/layout.py +0 -0
  35. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/loader.py +0 -0
  36. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/paths.py +0 -0
  37. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/release.py +0 -0
  38. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/retry.py +0 -0
  39. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/__init__.py +0 -0
  40. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/acr.py +0 -0
  41. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/base.py +0 -0
  42. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/store/registry.py +0 -0
  43. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/tasktoml.py +0 -0
  44. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo/validate.py +0 -0
  45. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/SOURCES.txt +0 -0
  46. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/dependency_links.txt +0 -0
  47. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/entry_points.txt +0 -0
  48. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/instance_repo.egg-info/top_level.txt +0 -0
  49. {instance_repo-1.3.2.dev5 → instance_repo-1.3.4}/setup.cfg +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instance-repo
3
- Version: 1.3.2.dev5
3
+ Version: 1.3.4
4
4
  Summary: InstanceRepo SDK — 评测 Instance 统一存储客户端(SDK-only;控制面由 apiserver 承载)
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: irepo-artifact<0.2.0,>=0.1.1
7
+ Requires-Dist: irepo-artifact<0.3.0,>=0.1.1
8
8
  Requires-Dist: tomli>=1.1.0; python_version < "3.11"
9
9
  Provides-Extra: oss
10
10
  Requires-Dist: oss2>=2.19; extra == "oss"
@@ -5,10 +5,12 @@
5
5
  """
6
6
  from .repo import Repo
7
7
  from .loader import load_instances
8
+ from .content import compute_source_hash
8
9
  from .models import (
9
10
  DatasetSeries, DatasetVersion, DatasetInstance, ManifestEntry,
10
11
  OwnerReference, Feedback, Identity, PushResult,
11
12
  RolloutReport, RolloutJob, ScaffoldConfig,
13
+ DatasetObjectDirectory, DatasetObjectFile, DatasetObjectListResult,
12
14
  canonical_json, parse_feedbacks, append_feedback,
13
15
  )
14
16
  from .errors import (
@@ -18,14 +20,16 @@ from .errors import (
18
20
  TransportError,
19
21
  )
20
22
 
21
- __version__ = "1.3.2.dev5"
23
+ __version__ = "1.3.4"
22
24
 
23
25
  __all__ = [
24
26
  "Repo", "load_instances",
25
27
  "DatasetSeries", "DatasetVersion", "DatasetInstance", "ManifestEntry",
26
28
  "OwnerReference", "Feedback", "Identity", "PushResult",
27
29
  "RolloutReport", "RolloutJob", "ScaffoldConfig",
30
+ "DatasetObjectDirectory", "DatasetObjectFile", "DatasetObjectListResult",
28
31
  "canonical_json", "parse_feedbacks", "append_feedback",
32
+ "compute_source_hash",
29
33
  "InstanceRepoError", "LayoutError", "SchemaError", "OwnerRefMissing",
30
34
  "ImageMissing", "Immutable", "DigestMismatch", "Forbidden", "NotVisible",
31
35
  "TargetNotAllowed", "NetworkDenied", "CredExpired",
@@ -160,7 +160,8 @@ class DatasetsClient:
160
160
  return DatasetDetail.from_dict(data) if isinstance(data, dict) else DatasetDetail()
161
161
  except TransportError as e:
162
162
  if (e.biz_code == 92001 and fallback_to_oss
163
- and self._content is not None):
163
+ and self._content is not None
164
+ and self._discovery_env_match(environment)):
164
165
  return self._discover_detail(name, storage_env=environment,
165
166
  metadata_model=metadata_model)
166
167
  raise
@@ -396,6 +397,20 @@ class DatasetsClient:
396
397
 
397
398
  # ── OSS fallback discovery (private) ─────────────────────────────────
398
399
 
400
+ def _discovery_env_match(self, environment: str | None) -> bool:
401
+ """OSS 回退环境兼容性检查:请求的 environment 须与 profile storage_env 派生环境一致。"""
402
+ req = (environment or "").strip()
403
+ if not req:
404
+ return True
405
+ if self._p is None:
406
+ return True
407
+ from .config import dataset_environment_for
408
+ derived = dataset_environment_for(
409
+ getattr(self._p, "storage_env", ""))
410
+ if not derived:
411
+ return True
412
+ return req == derived
413
+
399
414
  def _discover_detail(self, name: str, *,
400
415
  storage_env: str | None = None,
401
416
  metadata_model: str | None = None) -> DatasetDetail: