petfishframework 0.2.4__tar.gz → 0.2.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 (141) hide show
  1. {petfishframework-0.2.4 → petfishframework-0.2.5}/PKG-INFO +2 -2
  2. {petfishframework-0.2.4 → petfishframework-0.2.5}/README.md +1 -1
  3. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/api.md +2 -2
  4. petfishframework-0.2.5/docs/release-checklist.md +73 -0
  5. {petfishframework-0.2.4 → petfishframework-0.2.5}/pyproject.toml +1 -1
  6. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/__init__.py +1 -1
  7. {petfishframework-0.2.4 → petfishframework-0.2.5}/uv.lock +5 -5
  8. {petfishframework-0.2.4 → petfishframework-0.2.5}/.env.example +0 -0
  9. {petfishframework-0.2.4 → petfishframework-0.2.5}/.github/workflows/ci.yml +0 -0
  10. {petfishframework-0.2.4 → petfishframework-0.2.5}/.github/workflows/publish.yml +0 -0
  11. {petfishframework-0.2.4 → petfishframework-0.2.5}/.gitignore +0 -0
  12. {petfishframework-0.2.4 → petfishframework-0.2.5}/.sisyphus/plans/v0.1.6-plan.md +0 -0
  13. {petfishframework-0.2.4 → petfishframework-0.2.5}/.sisyphus/plans/v0.2.0-plan.md +0 -0
  14. {petfishframework-0.2.4 → petfishframework-0.2.5}/AGENTS.md +0 -0
  15. {petfishframework-0.2.4 → petfishframework-0.2.5}/AGENTS.md.new +0 -0
  16. {petfishframework-0.2.4 → petfishframework-0.2.5}/CHANGELOG.md +0 -0
  17. {petfishframework-0.2.4 → petfishframework-0.2.5}/CONTRIBUTING.md +0 -0
  18. {petfishframework-0.2.4 → petfishframework-0.2.5}/LICENSE +0 -0
  19. {petfishframework-0.2.4 → petfishframework-0.2.5}/SECURITY.md +0 -0
  20. {petfishframework-0.2.4 → petfishframework-0.2.5}/conftest.py +0 -0
  21. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/architecture.md +0 -0
  22. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/benchmark-results.md +0 -0
  23. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/development-plan.md +0 -0
  24. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/development.md +0 -0
  25. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/enterprise-expense-demo.md +0 -0
  26. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_0_1_4_playground_recommendations.md +0 -0
  27. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_playground_report.md +0 -0
  28. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_production_readiness_roadmap.md +0 -0
  29. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_recommendations.md +0 -0
  30. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_v0_1_6_playground_review.md +0 -0
  31. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_v0_1_7_review.md +0 -0
  32. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_v0_1_8_review.md +0 -0
  33. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/archives/petfishframework_v0_2_1_review.md +0 -0
  34. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/feedbacks/petfishframework_v0_2_2_review.md +0 -0
  35. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/competitor-analysis/README.md +0 -0
  36. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/competitor-analysis/competitor-matrix.md +0 -0
  37. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/competitor-analysis/market-brief.md +0 -0
  38. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/competitor-analysis/positioning-map.md +0 -0
  39. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/competitor-analysis/swot-analysis.md +0 -0
  40. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/literature-review/inclusion-exclusion-criteria.md +0 -0
  41. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/literature-review/literature-matrix.md +0 -0
  42. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/literature-review/literature-review.md +0 -0
  43. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/literature-review/search-strategy.md +0 -0
  44. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/research/reference-repos-absorption.md +0 -0
  45. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/skeleton-completeness-checklist.md +0 -0
  46. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/test-results-report.md +0 -0
  47. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/usage-guide.md +0 -0
  48. {petfishframework-0.2.4 → petfishframework-0.2.5}/docs/validation-roadmap.md +0 -0
  49. {petfishframework-0.2.4 → petfishframework-0.2.5}/initialization-report.md +0 -0
  50. {petfishframework-0.2.4 → petfishframework-0.2.5}/mcp/README.md +0 -0
  51. {petfishframework-0.2.4 → petfishframework-0.2.5}/mcp/connection-checklist.md +0 -0
  52. {petfishframework-0.2.4 → petfishframework-0.2.5}/mcp/mcp-config.example.json +0 -0
  53. {petfishframework-0.2.4 → petfishframework-0.2.5}/opencode.json +0 -0
  54. {petfishframework-0.2.4 → petfishframework-0.2.5}/qa/code-review-checklist.md +0 -0
  55. {petfishframework-0.2.4 → petfishframework-0.2.5}/qa/qa-review.md +0 -0
  56. {petfishframework-0.2.4 → petfishframework-0.2.5}/qa/qc-gate-decision.md +0 -0
  57. {petfishframework-0.2.4 → petfishframework-0.2.5}/qa/test-plan.md +0 -0
  58. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/config.py +0 -0
  59. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/__init__.py +0 -0
  60. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/agent.py +0 -0
  61. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/compiled.py +0 -0
  62. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/contracts.py +0 -0
  63. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/conversation.py +0 -0
  64. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/environment.py +0 -0
  65. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/events.py +0 -0
  66. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/session.py +0 -0
  67. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/structured.py +0 -0
  68. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/core/types.py +0 -0
  69. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/mcp/__init__.py +0 -0
  70. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/mcp/client.py +0 -0
  71. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/mcp/server.py +0 -0
  72. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/mcp/stdio_transport.py +0 -0
  73. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/mcp/wrapper.py +0 -0
  74. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/models/__init__.py +0 -0
  75. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/models/anthropic.py +0 -0
  76. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/models/fake.py +0 -0
  77. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/models/openai.py +0 -0
  78. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/observability/__init__.py +0 -0
  79. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/observability/sinks.py +0 -0
  80. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/permissions/__init__.py +0 -0
  81. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/permissions/model.py +0 -0
  82. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reasoning/__init__.py +0 -0
  83. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reasoning/lats.py +0 -0
  84. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reasoning/llm_plus_p.py +0 -0
  85. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reasoning/react.py +0 -0
  86. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/__init__.py +0 -0
  87. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/audit_report.py +0 -0
  88. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/cost.py +0 -0
  89. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/cost_report.py +0 -0
  90. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/pass_at_k.py +0 -0
  91. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/replay.py +0 -0
  92. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/retry.py +0 -0
  93. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/reliability/timeout.py +0 -0
  94. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/retrieval/__init__.py +0 -0
  95. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/retrieval/adaptive.py +0 -0
  96. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/retrieval/crag.py +0 -0
  97. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/retrieval/memory_store.py +0 -0
  98. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/__init__.py +0 -0
  99. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/agent_tool.py +0 -0
  100. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/base.py +0 -0
  101. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/calculator.py +0 -0
  102. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/path_planner.py +0 -0
  103. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/registry.py +0 -0
  104. {petfishframework-0.2.4 → petfishframework-0.2.5}/src/petfishframework/tools/word_sorter.py +0 -0
  105. {petfishframework-0.2.4 → petfishframework-0.2.5}/tasks/backlog.md +0 -0
  106. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/integration/__init__.py +0 -0
  107. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/integration/test_anthropic_integration.py +0 -0
  108. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/integration/test_openai_integration.py +0 -0
  109. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_agent_tool.py +0 -0
  110. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_anthropic_adapter.py +0 -0
  111. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_api_agent_lifecycle.py +0 -0
  112. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_api_edge_cases.py +0 -0
  113. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_api_integration.py +0 -0
  114. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_api_public_surface.py +0 -0
  115. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_api_type_safety.py +0 -0
  116. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_async.py +0 -0
  117. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_audit_report_v2.py +0 -0
  118. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_conversation.py +0 -0
  119. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_degrade.py +0 -0
  120. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_degrade_failclosed.py +0 -0
  121. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_enterprise_demo.py +0 -0
  122. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_m2_m3_m4.py +0 -0
  123. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_mcp.py +0 -0
  124. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_openai_adapter.py +0 -0
  125. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_pass_at_k.py +0 -0
  126. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_permission_semantics.py +0 -0
  127. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_quickstart_smoke.py +0 -0
  128. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_replay.py +0 -0
  129. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_retrieval.py +0 -0
  130. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_retry.py +0 -0
  131. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_skeleton.py +0 -0
  132. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_stdio_transport.py +0 -0
  133. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_streaming.py +0 -0
  134. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_structured.py +0 -0
  135. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_tool_registry.py +0 -0
  136. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v016_semantics.py +0 -0
  137. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v018.py +0 -0
  138. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v019.py +0 -0
  139. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v2_interface_compatibility.py +0 -0
  140. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v2_lats.py +0 -0
  141. {petfishframework-0.2.4 → petfishframework-0.2.5}/tests/test_v2_llm_plus_p.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: petfishframework
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: A lightweight runtime framework for reliable, auditable, budget-aware, and permission-aware AI agents.
5
5
  Project-URL: Homepage, https://github.com/kylecui/petfishFramework
6
6
  Project-URL: Documentation, https://github.com/kylecui/petfishFramework/tree/master/docs
@@ -216,7 +216,7 @@ Run: `python examples/05_enterprise_expense.py`
216
216
 
217
217
  ## Roadmap
218
218
 
219
- - **v0.1.x** (current): Core runtime, permission semantics, quickstart verified
219
+ - **v0.2.x** (current): Core runtime, permission semantics, enterprise PoC, Trusted Publishing
220
220
  - **v0.2.x**: Enterprise agent examples, structured audit reports
221
221
  - **v0.3.x**: Policy engine (YAML), credential broker
222
222
  - **v0.4.x**: Production hardening, deployment guides
@@ -187,7 +187,7 @@ Run: `python examples/05_enterprise_expense.py`
187
187
 
188
188
  ## Roadmap
189
189
 
190
- - **v0.1.x** (current): Core runtime, permission semantics, quickstart verified
190
+ - **v0.2.x** (current): Core runtime, permission semantics, enterprise PoC, Trusted Publishing
191
191
  - **v0.2.x**: Enterprise agent examples, structured audit reports
192
192
  - **v0.3.x**: Policy engine (YAML), credential broker
193
193
  - **v0.4.x**: Production hardening, deployment guides
@@ -1,6 +1,6 @@
1
1
  # petfishFramework API Reference
2
2
 
3
- This document is the authoritative reference for the public API of `petfishFramework` v0.2.2. Every signature, field, and example below is derived from the source code and from the tests that exercise it.
3
+ This document is the authoritative reference for the public API of `petfishFramework` v0.2.5. Every signature, field, and example below is derived from the source code and from the tests that exercise it.
4
4
 
5
5
  ## 1. Overview
6
6
 
@@ -327,7 +327,7 @@ class Session:
327
327
 
328
328
  `run` builds the `RuntimeEnvironment` and `RunContext`, emits `session.start`, executes the strategy, attaches accumulated `Usage` and `session_id`, and emits `session.end`.
329
329
 
330
- `replay` accepts an optional `ReplayMode` argument. In v0.2.2 all modes return the stored event log; full deterministic replay via `RecordingEnvironment` and `ReplayEnvironment` is available in `petfishframework.reliability.replay`.
330
+ `replay` accepts an optional `ReplayMode` argument. In v0.2.5 all modes return the stored event log; full deterministic replay via `RecordingEnvironment` and `ReplayEnvironment` is available in `petfishframework.reliability.replay`.
331
331
 
332
332
  ```python
333
333
  agent = Agent(model=FakeModel(responses=(ModelResponse(content="ok"),)))
@@ -0,0 +1,73 @@
1
+ # Release Checklist
2
+
3
+ > Run before every release tag. Prevents document drift and version inconsistencies.
4
+
5
+ ## Pre-release checks
6
+
7
+ ```bash
8
+ # 1. No stale version references
9
+ grep -R "v0\.1\b" README.md docs/ pyproject.toml src/
10
+ # Expected: only CHANGELOG historical entries
11
+
12
+ # 2. No "coming in" placeholders
13
+ grep -R "coming in" README.md docs/ examples/
14
+ # Expected: no output
15
+
16
+ # 3. Badge URL matches test count
17
+ grep "badge/tests" README.md
18
+ # Expected: current test count in both text and URL
19
+
20
+ # 4. api.md version matches release version
21
+ grep "authoritative reference" docs/api.md
22
+ # Expected: current version number
23
+
24
+ # 5. All tests pass
25
+ uv run pytest tests/ -q
26
+ # Expected: all passed
27
+
28
+ # 6. Ruff clean
29
+ uv run ruff check src/ tests/ examples/
30
+ # Expected: All checks passed
31
+ ```
32
+
33
+ ## Release process (Trusted Publishing — NO API TOKEN)
34
+
35
+ ```bash
36
+ # 1. Bump version in pyproject.toml + src/petfishframework/__init__.py
37
+ # 2. Update CHANGELOG.md
38
+ # 3. Commit
39
+ git add -A && git commit -m "release: vX.Y.Z"
40
+
41
+ # 4. Push master
42
+ git push origin master
43
+
44
+ # 5. Tag (MUST start with 'v')
45
+ git tag vX.Y.Z
46
+ git push origin vX.Y.Z
47
+
48
+ # → GitHub Actions CI runs tests
49
+ # → GitHub Actions publish.yml builds + publishes via OIDC
50
+ # → PyPI receives the package with NO API TOKEN
51
+ # → Verify at https://pypi.org/project/petfishframework/
52
+ ```
53
+
54
+ ## Post-release checks
55
+
56
+ ```bash
57
+ # 1. PyPI shows new version
58
+ curl -s https://pypi.org/pypi/petfishframework/json | python -c "import sys,json; print(json.load(sys.stdin)['info']['version'])"
59
+
60
+ # 2. pip install works
61
+ pip install petfishframework==X.Y.Z
62
+
63
+ # 3. GitHub Actions both green
64
+ gh run list --repo kylecui/petfishFramework --limit 2
65
+ # Expected: CI success + Publish success
66
+ ```
67
+
68
+ ## NEVER
69
+
70
+ - ❌ Do NOT use twine (Trusted Publishing replaces it)
71
+ - ❌ Do NOT use API tokens (revoked; OIDC only)
72
+ - ❌ Do NOT tag without `v` prefix (workflow only triggers on `v*`)
73
+ - ❌ Do NOT skip the pre-release grep checks
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "petfishframework"
7
- version = "0.2.4"
7
+ version = "0.2.5"
8
8
  description = "A lightweight runtime framework for reliable, auditable, budget-aware, and permission-aware AI agents."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -14,7 +14,7 @@ from .reasoning import LATS, LLMPlusP, ReAct
14
14
  from .reliability.replay import ReplayMode
15
15
  from .tools.base import BaseTool
16
16
 
17
- __version__ = "0.2.4"
17
+ __version__ = "0.2.5"
18
18
 
19
19
  __all__ = [
20
20
  "Agent",
@@ -427,7 +427,7 @@ name = "exceptiongroup"
427
427
  version = "1.3.1"
428
428
  source = { registry = "https://pypi.org/simple" }
429
429
  dependencies = [
430
- { name = "typing-extensions" },
430
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
431
431
  ]
432
432
  sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
433
433
  wheels = [
@@ -506,7 +506,7 @@ name = "importlib-metadata"
506
506
  version = "9.0.0"
507
507
  source = { registry = "https://pypi.org/simple" }
508
508
  dependencies = [
509
- { name = "zipp" },
509
+ { name = "zipp", marker = "python_full_version < '3.14'" },
510
510
  ]
511
511
  sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" }
512
512
  wheels = [
@@ -995,7 +995,7 @@ wheels = [
995
995
 
996
996
  [[package]]
997
997
  name = "petfishframework"
998
- version = "0.2.4"
998
+ version = "0.2.5"
999
999
  source = { editable = "." }
1000
1000
 
1001
1001
  [package.optional-dependencies]
@@ -1674,8 +1674,8 @@ name = "secretstorage"
1674
1674
  version = "3.5.0"
1675
1675
  source = { registry = "https://pypi.org/simple" }
1676
1676
  dependencies = [
1677
- { name = "cryptography" },
1678
- { name = "jeepney" },
1677
+ { name = "cryptography", marker = "python_full_version >= '3.15' or sys_platform != 'win32'" },
1678
+ { name = "jeepney", marker = "python_full_version >= '3.15' or sys_platform != 'win32'" },
1679
1679
  ]
1680
1680
  sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
1681
1681
  wheels = [