Skip to content

Commit ac0dcb3

Browse files
committed
bump version to 2.4.0
1 parent e876e40 commit ac0dcb3

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# Bright Data Python SDK Changelog
22

3-
## Unreleased - Sync parity + colorless job verbs
3+
## Version 2.4.0 - Sync parity, colorless job verbs, dataset error reporting
44

55
- **Sync client parity**: `SyncBrightDataClient` now mirrors the async surface. Added `client.datasets` (fixes the `SyncBrightDataClient` `datasets` `AttributeError`), the 5 missing scrapers (`scrape.tiktok` / `youtube` / `reddit` / `perplexity` / `digikey`), the 2 missing search verticals (`search.tiktok` / `youtube`), Pinterest trigger/status/fetch, and Instagram-search `profiles` / `reels_all`.
66
- **Service-level job verbs (colorless pattern)**: every scraper now exposes generic `status` / `wait` / `fetch` / `to_result(snapshot_id)` (on `BaseWebScraper`), and `DiscoverService` gained `status` / `wait` / `fetch` / `to_result(task_id)` — so a triggered job can be driven by its id alone, like the crawler. Purely additive; the existing `job.fetch()` etc. are unchanged.
77
- **Discover sync manual path (new)**: `SyncBrightDataClient` adds `discover_status` / `discover_wait` / `discover_fetch` / `discover_to_result(task_id)`, and a colorless `DiscoverSnapshot` handle.
88
- **Contract change**: sync `discover_trigger()` now returns a `DiscoverSnapshot` (a typed, drivable handle) instead of the async-only `DiscoverJob` (which could not be used from sync). Migration: poll via `client.discover_status(snap.task_id)` / `client.discover_fetch(snap.task_id)`.
9+
- **Fixed**: failed dataset snapshots now expose the API failure reason — and, when no recognized reason key is present, the raw snapshot status response as a fallback — plus the `snapshot_id`, instead of the unhelpful `DatasetError: Snapshot failed: None`. `SnapshotStatus` now retains the full API response (`.raw`) and matches more reason keys (`error` / `error_message` / `message` / `failure_reason`). The synchronous path inherits the fix.
910

1011
---
1112

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ where = ["src"]
77

88
[project]
99
name = "brightdata-sdk"
10-
version = "2.3.2"
10+
version = "2.4.0"
1111
description = "Modern async-first Python SDK for Bright Data APIs"
1212
authors = [{name = "Bright Data", email = "support@brightdata.com"}]
1313
license = {text = "MIT"}

0 commit comments

Comments
 (0)