instance-repo 1.2.1__tar.gz → 1.3.0.dev0__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 (48) hide show
  1. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/PKG-INFO +1 -1
  2. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/__init__.py +1 -1
  3. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/versions.py +18 -11
  4. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/PKG-INFO +1 -1
  5. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/pyproject.toml +1 -1
  6. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/README.md +0 -0
  7. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/_routing.py +0 -0
  8. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/_site_defaults.py +0 -0
  9. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/artifacts.py +0 -0
  10. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/bootstrap.py +0 -0
  11. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/cache.py +0 -0
  12. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/cli.py +0 -0
  13. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/__init__.py +0 -0
  14. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/benchmarks.py +0 -0
  15. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/config.py +0 -0
  16. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/datasets.py +0 -0
  17. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/images.py +0 -0
  18. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/instances.py +0 -0
  19. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/reports.py +0 -0
  20. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/scaffold.py +0 -0
  21. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/splits.py +0 -0
  22. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/clients/workflows.py +0 -0
  23. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/concurrency.py +0 -0
  24. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/content.py +0 -0
  25. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/endpoints.py +0 -0
  26. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/errors.py +0 -0
  27. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/image.py +0 -0
  28. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/layout.py +0 -0
  29. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/loader.py +0 -0
  30. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/models.py +0 -0
  31. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/paths.py +0 -0
  32. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/release.py +0 -0
  33. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/repo.py +0 -0
  34. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/retry.py +0 -0
  35. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/store/__init__.py +0 -0
  36. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/store/acr.py +0 -0
  37. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/store/base.py +0 -0
  38. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/store/oss.py +0 -0
  39. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/store/registry.py +0 -0
  40. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/tasktoml.py +0 -0
  41. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/transport.py +0 -0
  42. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo/validate.py +0 -0
  43. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/SOURCES.txt +0 -0
  44. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/dependency_links.txt +0 -0
  45. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/entry_points.txt +0 -0
  46. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/requires.txt +0 -0
  47. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/instance_repo.egg-info/top_level.txt +0 -0
  48. {instance_repo-1.2.1 → instance_repo-1.3.0.dev0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instance-repo
3
- Version: 1.2.1
3
+ Version: 1.3.0.dev0
4
4
  Summary: InstanceRepo SDK — 评测 Instance 统一存储客户端(SDK-only;控制面由 apiserver 承载)
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -18,7 +18,7 @@ from .errors import (
18
18
  TransportError,
19
19
  )
20
20
 
21
- __version__ = "1.2.1"
21
+ __version__ = "1.3.0.dev0"
22
22
 
23
23
  __all__ = [
24
24
  "Repo", "load_instances",
@@ -329,19 +329,21 @@ class VersionsClient:
329
329
  storage_env 但配置了 cluster 时,会经 repo-config 解析出绑定的
330
330
  storage_env 再派生(与 ingest 对称);显式 environment 与派生值冲突时
331
331
  前置拒绝。
332
- metadata_model: 可选。仅非空显式值下发给 apiserver(``split_first`` /
333
- ``version_first``);不从 profile 派生,空值省略并由服务端决定路由。
332
+ metadata_model: 可选。显式非空值归一后下发(``split_first`` /
333
+ ``version_first``);空值回退到 profile 的 ``metadata_model``
334
+ (再空取 SDK 默认 ``split_first``),与 ingest/list/update 一致。
334
335
 
335
336
  run_type 不在建版本时设置(apiserver create 不收该字段):建好后用
336
337
  ``set_run_type`` / ``update`` 打标,或走 ``ingest(run_type=...)``。
337
338
  """
338
339
  if not version:
339
340
  raise SchemaError("version is required")
340
- # create 的 metadata_model 是显式 opt-in。先校验,确保非法值在任何
341
- # repo-config 探测或 POST 前失败;空白值与 None 一样省略。
342
- explicit_model = (metadata_model or "").strip()
343
- if explicit_model:
344
- explicit_model = normalize_metadata_model(explicit_model)
341
+ # metadata_model:显式非空值先校验(确保非法值在任何 repo-config 探测或
342
+ # POST 前失败);空值回退到 profile(与 ingest/list/update 一致)。
343
+ if metadata_model is not None and metadata_model.strip():
344
+ normalize_metadata_model(metadata_model) # early reject invalid
345
+ else:
346
+ metadata_model = None
345
347
  # 与 ingest 对称(问题1 彻底修复):storage_env 未在 profile 里显式配置时,
346
348
  # 经 repo-config 解析出与 cluster 绑定的 storage_env 再派生 environment;
347
349
  # 同时复用**同一次**响应里的 bucket/prefix 计算 storage_path,避免出现
@@ -388,13 +390,18 @@ class VersionsClient:
388
390
  # environment 必须放 query(apiserver createVersionRequest 无该字段,
389
391
  # 只从 datasetEnvironmentFromQuery 读);放 body 会被静默丢弃导致
390
392
  # 版本落到默认 online 而 list/get/update 走 profile 派生的 pre。
391
- # metadata_model 同理:apiserver 从 query 读取;create 只发送调用方明确
392
- # 提供且非空的值,不从 profile 推导。
393
+ # metadata_model 与 ingest/list/update 对齐:显式值优先,空值从 profile
394
+ # 派生(apiserver d7275ab7 起已放开 split_first Version 创建限制)。
395
+ mm = metadata_model
396
+ if mm is None and self._p is not None:
397
+ mm = normalize_metadata_model(
398
+ self._p.metadata_model if self._p else None)
399
+ if mm is None:
400
+ mm = normalize_metadata_model(None)
393
401
  q = f"dataset_name={quote(dataset, safe='')}"
394
402
  if env:
395
403
  q += f"&environment={quote(env, safe='')}"
396
- if explicit_model:
397
- q += f"&metadata_model={quote(explicit_model, safe='')}"
404
+ q += f"&metadata_model={quote(mm, safe='')}"
398
405
  data = self._t.post(f"{self._BASE}?{q}", body)
399
406
  return DatasetVersion(**_pick(data))
400
407
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instance-repo
3
- Version: 1.2.1
3
+ Version: 1.3.0.dev0
4
4
  Summary: InstanceRepo SDK — 评测 Instance 统一存储客户端(SDK-only;控制面由 apiserver 承载)
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "instance-repo"
7
- version = "1.2.1"
7
+ version = "1.3.0.dev0"
8
8
  description = "InstanceRepo SDK — 评测 Instance 统一存储客户端(SDK-only;控制面由 apiserver 承载)"
9
9
  requires-python = ">=3.10"
10
10
  readme = "README.md"