matelab-python-sdk 0.1.0a5__tar.gz → 0.1.0a7__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 (70) hide show
  1. matelab_python_sdk-0.1.0a7/.env.example +14 -0
  2. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/AGENTS.md +7 -4
  3. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/CHANGELOG.md +17 -0
  4. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/PKG-INFO +125 -171
  5. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/README.md +123 -170
  6. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/contracts/matelab-integration-v1.lock.json +3 -3
  7. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/contracts/matelab-integration-v1.openapi.yaml +35 -34
  8. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/docs/operation-coverage.yaml +7 -76
  9. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/pyproject.toml +8 -3
  10. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/scripts/check_release.py +1 -1
  11. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/scripts/generate_models.py +85 -6
  12. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/__init__.py +4 -34
  13. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/_generated/models.py +754 -114
  14. matelab_python_sdk-0.1.0a7/src/matelab/_transport.py +285 -0
  15. matelab_python_sdk-0.1.0a7/src/matelab/_wire_validation.py +89 -0
  16. matelab_python_sdk-0.1.0a7/src/matelab/client.py +128 -0
  17. matelab_python_sdk-0.1.0a7/src/matelab/domains/cloud_drive.py +371 -0
  18. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/groups.py +7 -9
  19. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/literature.py +203 -406
  20. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/notebooks.py +69 -105
  21. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/records.py +432 -906
  22. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/templates.py +126 -193
  23. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/uploads.py +21 -30
  24. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/users.py +9 -21
  25. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/errors.py +15 -11
  26. matelab_python_sdk-0.1.0a7/src/matelab/session.py +32 -0
  27. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/streaming.py +11 -14
  28. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/conftest.py +4 -2
  29. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/provider/test_provider_smoke.py +12 -26
  30. matelab_python_sdk-0.1.0a7/tests/test_client.py +424 -0
  31. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_cloud_drive.py +104 -148
  32. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_comments_and_downloads.py +17 -27
  33. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_consumer_smoke.py +36 -46
  34. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_extended_records.py +40 -69
  35. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_generation.py +58 -32
  36. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_groups.py +16 -27
  37. matelab_python_sdk-0.1.0a7/tests/test_notebook_lifecycle.py +311 -0
  38. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_notebooks.py +13 -22
  39. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_operation_coverage.py +10 -46
  40. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_record_lifecycle.py +64 -235
  41. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_record_mutations.py +224 -553
  42. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_records.py +38 -59
  43. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_release.py +7 -7
  44. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_streaming.py +88 -84
  45. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_template_lifecycle.py +95 -256
  46. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_templates.py +37 -58
  47. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_transport.py +177 -190
  48. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_uploads_and_literature.py +124 -187
  49. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/test_users.py +30 -47
  50. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/typing/consumer.py +8 -16
  51. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/uv.lock +176 -1
  52. matelab_python_sdk-0.1.0a5/.env.example +0 -6
  53. matelab_python_sdk-0.1.0a5/docs/attachment-write-contract-gaps.md +0 -103
  54. matelab_python_sdk-0.1.0a5/docs/roadmap.md +0 -936
  55. matelab_python_sdk-0.1.0a5/src/matelab/_transport.py +0 -500
  56. matelab_python_sdk-0.1.0a5/src/matelab/_wire_validation.py +0 -214
  57. matelab_python_sdk-0.1.0a5/src/matelab/client.py +0 -172
  58. matelab_python_sdk-0.1.0a5/src/matelab/domains/cloud_drive.py +0 -573
  59. matelab_python_sdk-0.1.0a5/src/matelab/session.py +0 -27
  60. matelab_python_sdk-0.1.0a5/tests/test_client.py +0 -570
  61. matelab_python_sdk-0.1.0a5/tests/test_notebook_lifecycle.py +0 -454
  62. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/.github/workflows/release.yml +0 -0
  63. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/.gitignore +0 -0
  64. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/LICENSE +0 -0
  65. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/NOTICE +0 -0
  66. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/scripts/check_installed_package.py +0 -0
  67. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/_generated/__init__.py +0 -0
  68. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/domains/__init__.py +0 -0
  69. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/src/matelab/py.typed +0 -0
  70. {matelab_python_sdk-0.1.0a5 → matelab_python_sdk-0.1.0a7}/tests/typing/pyproject.toml +0 -0
@@ -0,0 +1,14 @@
1
+ # SDK Provider smoke must target the confirmed isolated test service.
2
+ # Authentication and external-token refresh persist Provider token state.
3
+ # Keep these names aligned with matelab-spec Provider Verification.
4
+ MATELAB_PROVIDER_BASE_URL=
5
+ MATELAB_PROVIDER_USERNAME=
6
+ MATELAB_PROVIDER_PASSWORD=
7
+
8
+ # The SDK smoke does not read the settings below. Populate them only when the
9
+ # same .env.test will also run the complete matelab-spec Provider Verification.
10
+ MATELAB_PROVIDER_SHARE_USER_ID=
11
+ MATELAB_PROVIDER_SECONDARY_USERNAME=
12
+ MATELAB_PROVIDER_SECONDARY_PASSWORD=
13
+ MATELAB_PROVIDER_RECORD_STAGING_MUTATIONS=
14
+ MATELAB_PROVIDER_CHAT_SSO_KEY=
@@ -1,8 +1,8 @@
1
1
  # AGENTS.md
2
2
 
3
3
  本文档只保留维护 `matelab-python-sdk` 必须长期遵守的项目约束。当前能力和使用方式见
4
- `README.md`,实现路线与进度见 `docs/roadmap.md`,operation 状态以
5
- `docs/operation-coverage.yaml` 为机器权威。不要在本文记录阶段性完成状态、一次性验收数字或迁移历史。
4
+ `README.md`,版本历史见 `CHANGELOG.md`,operation 状态以 `docs/operation-coverage.yaml` 为机器权威。
5
+ 不要在本文记录阶段性完成状态、一次性验收数字或迁移历史。
6
6
 
7
7
  ## 权威与范围
8
8
 
@@ -50,8 +50,11 @@
50
50
  - `base_url` 表示 Provider API 根。query、JSON、form-urlencoded、multipart 和 streaming 必须按各 operation
51
51
  定义分别实现。
52
52
  - bearer 只用于要求认证的 operation;成功码按 operation 配置,不能全局接受 `{0, 10}`。
53
- - 每个 `AsyncMatelab` 实例最多持有一个进程内 Session,包含 access/refresh token、毫秒 expiration 和可选
54
- identity;不同用户的 token pair 必须拒绝绑定,失败时不得替换现有 Session。
53
+ - 每个 `AsyncMatelab` 实例最多持有一个进程内 Session,包含 access/refresh token、毫秒 expiration 和已验证
54
+ identity。SDK 不提供裸 access/refresh token 绑定接口;构造传入完整 Session 的真实性和身份归属验证属于
55
+ 集成方。
56
+ - `Token`、`Identity` 和 `Session` 是冻结、拒绝额外字段的 Pydantic public model,组成稳定的规范化 Session
57
+ JSON 契约。token 在 repr 中隐藏,但显式序列化必须保留真实凭证;序列化结果不得进入日志或发送给不可信方。
55
58
  - `client.session` 暴露实例内最新 Session。持久化、加密、撤销、`userid/session_id` 关联和跨进程锁属于
56
59
  集成方;不同逻辑 Session 不得共享同一个 `AsyncMatelab`,但多个实例可以共享注入的 `httpx.AsyncClient`。
57
60
  - access 到期前按 skew 刷新;并发刷新使用单个异步锁;已认证且可安全重试的请求遇到 `code=5` 最多强制
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0a7 - 2026-08-04
4
+
5
+ - Replaces the hand-maintained wire-validation rule tables with deterministic generated JSON Schema 2020-12 rules.
6
+ - Simplifies transport, streaming, error mapping, and domain adapters while retaining the pinned `matelab-spec v0.3.0`
7
+ behavior and automatic Session refresh guarantees.
8
+ - Breaking: tightens several public domain inputs and results, and exposes stable `MatelabProviderErrorKind` values
9
+ instead of raw Provider error codes.
10
+ - Removes completed roadmap and work-package bookkeeping; refreshes release checks, documentation, and tests.
11
+
12
+ ## 0.1.0a6 - 2026-08-01
13
+
14
+ - Adopts the immutable `matelab-spec v0.3.0` Contract release and its form-encoding updates.
15
+ - Tightens the public authentication/session contract around complete, serializable Pydantic `Session` models while
16
+ retaining automatic access-token refresh and Provider SSO exchange.
17
+ - Simplifies transport and domain interfaces, removes external-token binding and identity-attachment seams, and
18
+ restores strict runtime validation for byte-range inputs.
19
+
3
20
  ## 0.1.0a5 - 2026-07-29
4
21
 
5
22
  - Adopts immutable `matelab-spec v0.1.2` at commit `6dd674ac001ae61197495ace5eba489d585cb825` and OpenAPI