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.
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/ci.yml +1 -2
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/claude-code-review.yml +1 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/claude.yml +1 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/codeql.yml +2 -2
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-age-check-actions.yml +2 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-age-check-pip.yml +2 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/issue-priority.yml +1 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/pr-title.yml +1 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/secrets-scan.yml +1 -1
- qurl_python-0.5.0/.release-please-manifest.json +1 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/CHANGELOG.md +32 -0
- qurl_python-0.5.0/PKG-INFO +618 -0
- qurl_python-0.5.0/README.md +581 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/pyproject.toml +7 -3
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/__init__.py +6 -0
- qurl_python-0.5.0/src/layerv_qurl/_pagination.py +54 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/_utils.py +267 -45
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/async_client.py +247 -63
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/client.py +258 -79
- qurl_python-0.5.0/src/layerv_qurl/crid.py +56 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/errors.py +6 -1
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/langchain.py +7 -2
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/types.py +69 -5
- qurl_python-0.5.0/tests/client_support.py +41 -0
- qurl_python-0.5.0/tests/conftest.py +33 -0
- qurl_python-0.5.0/tests/fixtures/README.md +9 -0
- qurl_python-0.5.0/tests/fixtures/crid_v1_vectors.json +264 -0
- qurl_python-0.5.0/tests/test_access_code_listing.py +93 -0
- qurl_python-0.5.0/tests/test_batch_client.py +767 -0
- qurl_python-0.5.0/tests/test_client.py +1298 -0
- qurl_python-0.5.0/tests/test_contract_client.py +1733 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/test_langchain.py +22 -2
- qurl_python-0.5.0/tests/test_pagination.py +171 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/test_portal.py +85 -8
- qurl_python-0.5.0/tests/test_post_retry.py +189 -0
- qurl_python-0.5.0/tests/test_qurl_mutations.py +1257 -0
- qurl_python-0.5.0/tests/test_qurl_reads.py +642 -0
- qurl_python-0.5.0/tests/test_resource_name.py +257 -0
- qurl_python-0.5.0/tests/test_sdk_alignment.py +398 -0
- qurl_python-0.4.0/.release-please-manifest.json +0 -1
- qurl_python-0.4.0/PKG-INFO +0 -412
- qurl_python-0.4.0/README.md +0 -378
- qurl_python-0.4.0/tests/test_client.py +0 -5555
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/dependabot.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/dependency-review.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/release-please.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.github/workflows/validate-issue-templates.yml +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/.gitignore +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/CLAUDE.md +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/CONTRIBUTING.md +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/LICENSE +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/SECURITY.md +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/release-please-config.json +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/src/layerv_qurl/py.typed +0 -0
- {qurl_python-0.4.0 → qurl_python-0.5.0}/tests/__init__.py +0 -0
- {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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
51
|
+
uses: layervai/ops-routines-workflows/.github/workflows/issue-priority.yml@88b48c5ab3e1262018f44bbe5f4a03b94a3e39aa # v0.14.0
|
|
52
52
|
permissions:
|
|
53
53
|
issues: write
|
|
@@ -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@
|
|
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
|
|