qurl-python 0.4.0__tar.gz → 0.5.0__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 (60) hide show
  1. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/ci.yml +1 -2
  2. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/claude-code-review.yml +1 -1
  3. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/claude.yml +1 -1
  4. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/codeql.yml +2 -2
  5. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-age-check-actions.yml +2 -1
  6. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-age-check-pip.yml +2 -1
  7. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/issue-priority.yml +1 -1
  8. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/pr-title.yml +1 -0
  9. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/secrets-scan.yml +1 -1
  10. qurl_python-0.5.0/.release-please-manifest.json +1 -0
  11. {qurl_python-0.4.0 → qurl_python-0.5.0}/CHANGELOG.md +32 -0
  12. qurl_python-0.5.0/PKG-INFO +618 -0
  13. qurl_python-0.5.0/README.md +581 -0
  14. {qurl_python-0.4.0 → qurl_python-0.5.0}/pyproject.toml +7 -3
  15. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/__init__.py +6 -0
  16. qurl_python-0.5.0/src/layerv_qurl/_pagination.py +54 -0
  17. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/_utils.py +267 -45
  18. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/async_client.py +247 -63
  19. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/client.py +258 -79
  20. qurl_python-0.5.0/src/layerv_qurl/crid.py +56 -0
  21. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/errors.py +6 -1
  22. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/langchain.py +7 -2
  23. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/types.py +69 -5
  24. qurl_python-0.5.0/tests/client_support.py +41 -0
  25. qurl_python-0.5.0/tests/conftest.py +33 -0
  26. qurl_python-0.5.0/tests/fixtures/README.md +9 -0
  27. qurl_python-0.5.0/tests/fixtures/crid_v1_vectors.json +264 -0
  28. qurl_python-0.5.0/tests/test_access_code_listing.py +93 -0
  29. qurl_python-0.5.0/tests/test_batch_client.py +767 -0
  30. qurl_python-0.5.0/tests/test_client.py +1298 -0
  31. qurl_python-0.5.0/tests/test_contract_client.py +1733 -0
  32. {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/test_langchain.py +22 -2
  33. qurl_python-0.5.0/tests/test_pagination.py +171 -0
  34. {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/test_portal.py +85 -8
  35. qurl_python-0.5.0/tests/test_post_retry.py +189 -0
  36. qurl_python-0.5.0/tests/test_qurl_mutations.py +1257 -0
  37. qurl_python-0.5.0/tests/test_qurl_reads.py +642 -0
  38. qurl_python-0.5.0/tests/test_resource_name.py +257 -0
  39. qurl_python-0.5.0/tests/test_sdk_alignment.py +398 -0
  40. qurl_python-0.4.0/.release-please-manifest.json +0 -1
  41. qurl_python-0.4.0/PKG-INFO +0 -412
  42. qurl_python-0.4.0/README.md +0 -378
  43. qurl_python-0.4.0/tests/test_client.py +0 -5555
  44. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  45. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  46. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  47. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  48. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/dependabot.yml +0 -0
  49. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-review.yml +0 -0
  50. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/release-please.yml +0 -0
  51. {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/validate-issue-templates.yml +0 -0
  52. {qurl_python-0.4.0 → qurl_python-0.5.0}/.gitignore +0 -0
  53. {qurl_python-0.4.0 → qurl_python-0.5.0}/CLAUDE.md +0 -0
  54. {qurl_python-0.4.0 → qurl_python-0.5.0}/CONTRIBUTING.md +0 -0
  55. {qurl_python-0.4.0 → qurl_python-0.5.0}/LICENSE +0 -0
  56. {qurl_python-0.4.0 → qurl_python-0.5.0}/SECURITY.md +0 -0
  57. {qurl_python-0.4.0 → qurl_python-0.5.0}/release-please-config.json +0 -0
  58. {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/py.typed +0 -0
  59. {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/__init__.py +0 -0
  60. {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/test_conformance.py +0 -0
@@ -14,7 +14,7 @@ jobs:
14
14
  # visibility into which Python versions broke.
15
15
  fail-fast: false
16
16
  matrix:
17
- python-version: ["3.10", "3.12", "3.13"]
17
+ python-version: ["3.10", "3.12", "3.13", "3.14"]
18
18
  steps:
19
19
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
20
20
  - name: Set up Python ${{ matrix.python-version }}
@@ -93,6 +93,5 @@ jobs:
93
93
  with:
94
94
  header: "qURL Python SDK Build"
95
95
  gates: '{"Tests": "${{ needs.test.result }}", "Conformance schema 1": "${{ needs.test-schema1.result }}", "Type check": "${{ needs.type-check.result }}"}'
96
- extra_fields: '{"Python": "3.10, 3.12, 3.13"}'
97
96
  secrets:
98
97
  SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
@@ -161,7 +161,7 @@ jobs:
161
161
  # step, so the verify step never runs and the PR gets a bare
162
162
  # `cancelled` check with no comment and nothing saying why.
163
163
  timeout-minutes: 10
164
- uses: anthropics/claude-code-action@12dd8d74c712f5f3669365b2369b558c495b1104 # v1.0.238
164
+ uses: anthropics/claude-code-action@6c690188da61cf16ee7debb28383ba67f02abb4c # v1.0.242
165
165
  with:
166
166
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
167
167
  github_token: ${{ github.token }}
@@ -328,7 +328,7 @@ jobs:
328
328
  if: success()
329
329
  # v1.0.180 keeps interactive commands on the same fail-closed runner as
330
330
  # automatic review and avoids the v1.0.140/141 issue-comment crash.
331
- uses: anthropics/claude-code-action@12dd8d74c712f5f3669365b2369b558c495b1104 # v1.0.238
331
+ uses: anthropics/claude-code-action@6c690188da61cf16ee7debb28383ba67f02abb4c # v1.0.242
332
332
  with:
333
333
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
334
334
  # Omit github_token so the action uses its OIDC/GitHub App token path.
@@ -33,13 +33,13 @@ jobs:
33
33
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
34
34
 
35
35
  - name: Initialize CodeQL
36
- uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
36
+ uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
37
37
  with:
38
38
  languages: ${{ matrix.language }}
39
39
  build-mode: ${{ matrix.build-mode }}
40
40
  queries: security-and-quality
41
41
 
42
42
  - name: Perform CodeQL Analysis
43
- uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4
43
+ uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
44
44
  with:
45
45
  category: "/language:${{ matrix.language }}"
@@ -10,6 +10,7 @@ name: Dependency Age Check (Actions)
10
10
  # no workflow/composite-action changes are in the diff.
11
11
  on:
12
12
  pull_request:
13
+ types: [opened, synchronize, reopened, labeled, unlabeled]
13
14
  workflow_dispatch:
14
15
 
15
16
  # Cancel superseded runs on the same PR branch — the reusable workflow
@@ -35,7 +36,7 @@ jobs:
35
36
  # only if/name/needs/permissions/secrets/strategy/uses/with/concurrency
36
37
  # are valid on a job that calls a reusable workflow. The reusable
37
38
  # workflow itself sets `timeout-minutes: 5` internally.
38
- uses: layervai/ops-routines-workflows/.github/workflows/age-check-actions.yml@d07fa2fe3a103907ff2b1a1a71509a6dcd8e9d32 # v0.13.0
39
+ uses: layervai/ops-routines-workflows/.github/workflows/age-check-actions.yml@414821a809395384de83d853a4bfd5b46e6bfc55 # v0.15.0
39
40
  with:
40
41
  min_age_days: 7
41
42
  # Post a sticky PR comment when an age-check fails, listing each
@@ -10,6 +10,7 @@ name: Dependency Age Check (pip)
10
10
  # no requirements/poetry.lock/pyproject.toml changes are in the diff.
11
11
  on:
12
12
  pull_request:
13
+ types: [opened, synchronize, reopened, labeled, unlabeled]
13
14
  workflow_dispatch:
14
15
 
15
16
  # Cancel superseded runs on the same PR branch — pypi.org calls are
@@ -34,7 +35,7 @@ jobs:
34
35
  # only if/name/needs/permissions/secrets/strategy/uses/with/concurrency
35
36
  # are valid on a job that calls a reusable workflow. The reusable
36
37
  # workflow itself sets `timeout-minutes: 5` internally.
37
- uses: layervai/ops-routines-workflows/.github/workflows/age-check-pip.yml@d07fa2fe3a103907ff2b1a1a71509a6dcd8e9d32 # v0.13.0
38
+ uses: layervai/ops-routines-workflows/.github/workflows/age-check-pip.yml@414821a809395384de83d853a4bfd5b46e6bfc55 # v0.15.0
38
39
  with:
39
40
  min_age_days: 7
40
41
  # Post a sticky PR comment when an age-check fails, listing each
@@ -48,6 +48,6 @@ jobs:
48
48
  # reusable's own `sender.type != 'Bot'` check short-circuits them
49
49
  # before setFailed — net effect is a near-instant no-op run.
50
50
  if: ${{ github.actor != 'github-actions[bot]' }}
51
- uses: layervai/ops-routines-workflows/.github/workflows/issue-priority.yml@d07fa2fe3a103907ff2b1a1a71509a6dcd8e9d32 # v0.13.0
51
+ uses: layervai/ops-routines-workflows/.github/workflows/issue-priority.yml@88b48c5ab3e1262018f44bbe5f4a03b94a3e39aa # v0.14.0
52
52
  permissions:
53
53
  issues: write
@@ -28,6 +28,7 @@ jobs:
28
28
  chore
29
29
  revert
30
30
  scopes: |
31
+ main
31
32
  client
32
33
  api
33
34
  ci
@@ -16,6 +16,6 @@ jobs:
16
16
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
17
17
  with:
18
18
  fetch-depth: 0
19
- - uses: trufflesecurity/trufflehog@bcfcf73aaf4759d4dadc2783177c245a02792318 # v3.97.0
19
+ - uses: trufflesecurity/trufflehog@363923b901c911a9164f50b6c423f47c15372b1c # v3.97.4
20
20
  with:
21
21
  extra_args: --only-verified
@@ -0,0 +1 @@
1
+ {".":"0.5.0"}
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.0](https://github.com/layervai/qurl-python/compare/v0.4.0...v0.5.0) (2026-11-07)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * send the required public resource name ([#185](https://github.com/layervai/qurl-python/issues/185))
9
+ * list_access_codes no longer accepts limit or cursor, and list_access_codes_all no longer accepts page_size. The API does not support these parameters. Remove them from calls.
10
+ * **client:** adopt the kind-first credential API ([#133](https://github.com/layervai/qurl-python/issues/133))
11
+
12
+ ### Features
13
+
14
+ * align resource identity and sharing with Go SDK ([#169](https://github.com/layervai/qurl-python/issues/169)) ([91018dd](https://github.com/layervai/qurl-python/commit/91018dd645613e4a5d506eab620597f29a4bff6e))
15
+ * **client:** adopt the kind-first credential API ([#133](https://github.com/layervai/qurl-python/issues/133)) ([b5c579b](https://github.com/layervai/qurl-python/commit/b5c579b67fbad0d2c9989a404cf3c9c4dd0d3101))
16
+ * paginate the contract list APIs in both clients ([#174](https://github.com/layervai/qurl-python/issues/174)) ([0a8f7e4](https://github.com/layervai/qurl-python/commit/0a8f7e43f13a3a90776d48e9715a75959cee083f))
17
+ * send the required public resource name ([#185](https://github.com/layervai/qurl-python/issues/185)) ([0ea8726](https://github.com/layervai/qurl-python/commit/0ea8726d9f5c8f2eb9c6604fe8a66e79aa8f9206))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * avoid replaying uncertain POST and PATCH operations ([#177](https://github.com/layervai/qurl-python/issues/177)) ([717f8ec](https://github.com/layervai/qurl-python/commit/717f8ecd61ae8a8b7bd1b9dd1780436debd8405d)), closes [#71](https://github.com/layervai/qurl-python/issues/71) [#20](https://github.com/layervai/qurl-python/issues/20)
23
+ * **ci:** allow generated release PR titles ([#189](https://github.com/layervai/qurl-python/issues/189)) ([ebfe45d](https://github.com/layervai/qurl-python/commit/ebfe45d469cdafeaa7f753b2cf7ffefa38a278e2))
24
+ * match the unpaginated access-code list contract ([#178](https://github.com/layervai/qurl-python/issues/178)) ([8254f75](https://github.com/layervai/qurl-python/commit/8254f75ff5d7efd7978e9e258dfc1f1d8e5bdf54))
25
+ * redact invalid resolve tokens before transport ([#171](https://github.com/layervai/qurl-python/issues/171)) ([b7f3546](https://github.com/layervai/qurl-python/commit/b7f3546978b5a40fc603211731158bac739346ed))
26
+ * require the LangChain Python 3.14 import fix ([#175](https://github.com/layervai/qurl-python/issues/175)) ([9a7f274](https://github.com/layervai/qurl-python/commit/9a7f2745b43261b64fee943907ad8ae1753ddd47))
27
+ * validate connector lookups by immutable slug ([#168](https://github.com/layervai/qurl-python/issues/168)) ([2b68486](https://github.com/layervai/qurl-python/commit/2b68486b32a8b24ff2486640f0cd8541ff962350))
28
+ * validate single-token management IDs before transport ([#172](https://github.com/layervai/qurl-python/issues/172)) ([2b40d5d](https://github.com/layervai/qurl-python/commit/2b40d5dd3826cb8c42a556e11b103660872a07aa))
29
+
30
+
31
+ ### Documentation
32
+
33
+ * explain qURL sharing workflows in Python ([#167](https://github.com/layervai/qurl-python/issues/167)) ([4770030](https://github.com/layervai/qurl-python/commit/47700308e531bb9e7507a45c6d68038d663a4a85))
34
+
3
35
  ## [0.4.0](https://github.com/layervai/qurl-python/compare/v0.3.0...v0.4.0) (2026-10-08)
4
36
 
5
37