oneshot-python 0.39.0__tar.gz → 0.40.1__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.
- oneshot_python-0.40.1/CHANGELOG.md +13 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/PKG-INFO +1 -1
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/README.md +20 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/client.py +190 -115
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/lookup_manifest.py +74 -5
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/pyproject.toml +1 -1
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/conftest.py +2 -2
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_access_token.py +2 -4
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_email_payload.py +3 -8
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_hunts.py +21 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_person_quote_credits.py +48 -0
- oneshot_python-0.40.1/tests/test_person_quote_id.py +87 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_phones_pending.py +6 -0
- oneshot_python-0.40.1/tests/test_product_find.py +18 -0
- oneshot_python-0.40.1/tests/test_sync_without_loop.py +72 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/.gitignore +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/__init__.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/_errors.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/_types.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/lookup.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/physical_mail.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/oneshot/x402.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/__init__.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_approvals.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_balance.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_browser.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_budgets.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_charge_amount.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_compute.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_compute_manifest.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_compute_outputs.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_declared_routes.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_declared_worker_reads.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_domains.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_domains_signed.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_emergency_error.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_inbound_voice.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_inbox_notifications.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_linkedin.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_lookup.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_max_cost_header.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_paid_call_proof.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_payment_rejection.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_physical_mail.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_poll_backoff.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_request_id.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_signed_job_and_analytics.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_tag_receipt_value.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_top_up_credits.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_update_build.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_wait_false.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/tests/test_x402.py +0 -0
- {oneshot_python-0.39.0 → oneshot_python-0.40.1}/uv.lock +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.40.1
|
|
4
|
+
|
|
5
|
+
- Restore synchronous pause/resume calls when no event loop is current.
|
|
6
|
+
- Send person quote IDs through the request header, excluding them from tool payloads.
|
|
7
|
+
- Describe Changes queries for published dataset attributes.
|
|
8
|
+
|
|
9
|
+
## 0.40.0 — breaking release (#1336)
|
|
10
|
+
|
|
11
|
+
- Renamed `commerce_search()` / `acommerce_search()` → `product_find()` / `aproduct_find()`, without aliases.
|
|
12
|
+
- Product discovery now calls `POST /v1/tools/find/product` (price key `find/product`), replacing `POST /v1/tools/commerce/search` (`commerce/search`). Input, results and Purchase compatibility are unchanged.
|
|
13
|
+
- Release together with the person/company and other tool renames in #1334 and #1382; publish only with the coordinated server release.
|
|
@@ -34,6 +34,11 @@ balance = client.call_free_get("/v1/wallet/balance")
|
|
|
34
34
|
|
|
35
35
|
### Async
|
|
36
36
|
|
|
37
|
+
Blocking `OneShotClient` methods reuse the current open event loop, or run on a
|
|
38
|
+
temporary loop when none is available (including after `asyncio.run()`). Inside
|
|
39
|
+
a running event loop, use the async method instead; blocking calls raise an
|
|
40
|
+
error naming the async method to await.
|
|
41
|
+
|
|
37
42
|
```python
|
|
38
43
|
import asyncio
|
|
39
44
|
from oneshot import OneShotClient
|
|
@@ -343,3 +348,18 @@ async form).
|
|
|
343
348
|
## License
|
|
344
349
|
|
|
345
350
|
MIT
|
|
351
|
+
|
|
352
|
+
## Optional phone lookup
|
|
353
|
+
|
|
354
|
+
Phone lookup is off by default. Source-returned numbers and published business or record numbers still appear. `include_phone=True` adds the per-person add-on listed on the pricing page × the requested search limit (default 100) for a search, or once for profile/dossier, for up to that many people with no guaranteed hit. Fallbacks and callbacks cost nothing extra. A completed lookup with no phone match is charged; a failed job is refunded.
|
|
355
|
+
|
|
356
|
+
`max_cost` and per-transaction budgets apply to the full quote before authorization, even when credits cover it. Wallet and access-token sessions both obtain a quote before execution and retry with `x-quote-id`.
|
|
357
|
+
|
|
358
|
+
```python
|
|
359
|
+
people = client.person_find(job_titles=["CTO"], limit=3, include_phone=True, max_cost=1, wait_for_phones=True)
|
|
360
|
+
profile = client.person_profile(email="jane@example.com", include_phone=True, max_cost=1, wait_for_phones=True)
|
|
361
|
+
dossier = client.person_dossier(email="jane@example.com", include_phone=True, max_cost=1, wait_for_phones=True, timeout_sec=600)
|
|
362
|
+
# Async equivalents: await client.aperson_find(...), aperson_profile(...), aperson_dossier(...).
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
`wait=False` returns the job and receipt IDs immediately. `wait_for_phones=True` keeps polling for pending phone callbacks after completion; it does not buy phones by itself. On timeout, the latest result can still have `phones_pending: True`.
|