broadcast-python 0.2.0__tar.gz → 0.3.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 (33) hide show
  1. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/CHANGELOG.md +11 -0
  2. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/PKG-INFO +6 -1
  3. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/README.md +5 -0
  4. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/pyproject.toml +1 -1
  5. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/migration.py +2 -1
  6. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/version.py +1 -1
  7. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/.gitignore +0 -0
  8. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/LICENSE +0 -0
  9. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/__init__.py +0 -0
  10. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/client.py +0 -0
  11. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/configuration.py +0 -0
  12. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/connection.py +0 -0
  13. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/errors.py +0 -0
  14. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/py.typed +0 -0
  15. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/__init__.py +0 -0
  16. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/autopilots.py +0 -0
  17. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/base.py +0 -0
  18. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/broadcasts.py +0 -0
  19. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/channel_design.py +0 -0
  20. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/discovery.py +0 -0
  21. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/email_servers.py +0 -0
  22. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/global_suppressions.py +0 -0
  23. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/opt_in_forms.py +0 -0
  24. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/segments.py +0 -0
  25. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/sequences.py +0 -0
  26. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/subscribers.py +0 -0
  27. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/suppressions.py +0 -0
  28. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/templates.py +0 -0
  29. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/transactionals.py +0 -0
  30. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/users.py +0 -0
  31. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/resources/webhook_endpoints.py +0 -0
  32. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/response.py +0 -0
  33. {broadcast_python-0.2.0 → broadcast_python-0.3.0}/src/broadcast_python/webhook.py +0 -0
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ## [0.3.0] - 2026-10-03
8
+
9
+ ### Added
10
+
11
+ - `client.migration.unsubscribed_emails()` for
12
+ `GET /api/migration/v1/unsubscribed_emails`, the channel's own suppression
13
+ list; `each_record("unsubscribed_emails")` pages it. `suppressions` returns
14
+ only the global suppression list, so an export needs both.
15
+
5
16
  ## [0.2.0] - 2026-09-25
6
17
 
7
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: broadcast-python
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Python client for the Broadcast email platform. Subscribers, sequences, broadcasts, segments, templates, autopilot, webhooks, and transactional email.
5
5
  Project-URL: Homepage, https://sendbroadcast.net
6
6
  Project-URL: Repository, https://github.com/send-broadcast/broadcast-python
@@ -363,6 +363,11 @@ client.migration.manifest()
363
363
  for sub in client.migration.each_record("subscribers"):
364
364
  ... # auto-pages; advances by the limit the server actually applied
365
365
 
366
+ # Suppressed addresses live in two lists; export both:
367
+ # suppressions = global suppression list, unsubscribed_emails = the channel's own
368
+ for row in client.migration.each_record("unsubscribed_emails"):
369
+ ... # {"id", "email", "broadcast_channel_id", "created_at", "updated_at"}
370
+
366
371
  data = client.migration.download_file_asset(id) # bytes
367
372
  ```
368
373
 
@@ -339,6 +339,11 @@ client.migration.manifest()
339
339
  for sub in client.migration.each_record("subscribers"):
340
340
  ... # auto-pages; advances by the limit the server actually applied
341
341
 
342
+ # Suppressed addresses live in two lists; export both:
343
+ # suppressions = global suppression list, unsubscribed_emails = the channel's own
344
+ for row in client.migration.each_record("unsubscribed_emails"):
345
+ ... # {"id", "email", "broadcast_channel_id", "created_at", "updated_at"}
346
+
342
347
  data = client.migration.download_file_asset(id) # bytes
343
348
  ```
344
349
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "broadcast-python"
7
- version = "0.2.0"
7
+ version = "0.3.0"
8
8
  description = "Python client for the Broadcast email platform. Subscribers, sequences, broadcasts, segments, templates, autopilot, webhooks, and transactional email."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -35,6 +35,7 @@ COLLECTIONS = (
35
35
  "webhook_endpoints",
36
36
  "tokens",
37
37
  "suppressions",
38
+ "unsubscribed_emails",
38
39
  "tags",
39
40
  "users",
40
41
  "link_redirects",
@@ -106,7 +107,7 @@ def _make_collection_method(name: str):
106
107
  return method
107
108
 
108
109
 
109
- # Generated rather than hand-written: 18 near-identical methods invite the kind
110
+ # Generated rather than hand-written: 19 near-identical methods invite the kind
110
111
  # of copy-paste drift this whole SDK family exists to prevent. Declared in
111
112
  # .api-coverage.yml so the coverage report still counts them.
112
113
  for _collection in COLLECTIONS:
@@ -1,3 +1,3 @@
1
1
  # Kept in sync with pyproject.toml by tests/test_package.py — a User-Agent that
2
2
  # lies about its version misattributes server-side client analytics.
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"