broadcast-python 0.6.0__tar.gz → 0.7.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.
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/CHANGELOG.md +9 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/PKG-INFO +3 -1
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/README.md +2 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/pyproject.toml +1 -1
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/opt_in_forms.py +12 -1
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/version.py +1 -1
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/.gitignore +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/LICENSE +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/__init__.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/client.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/configuration.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/connection.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/errors.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/multipart.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/py.typed +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/__init__.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/autopilots.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/base.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/broadcasts.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/channel_design.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/channel_settings.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/discovery.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/email_servers.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/file_assets.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/global_suppressions.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/migration.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/segments.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/sequences.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/subscribers.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/suppressions.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/templates.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/topics.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/transactionals.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/users.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/webhook_endpoints.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/response.py +0 -0
- {broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/webhook.py +0 -0
|
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.7.0] - 2026-10-17
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `TRIGGER_FREQUENCIES` includes `once_per_days` (Broadcast 2.49): the popup shows
|
|
12
|
+
again after `trigger_settings.frequency_cookie_days` days, a whole number, 1 or
|
|
13
|
+
more; blank means 30. The client still sends any word as it is, so nothing
|
|
14
|
+
changes for a server before 2.49, which refuses the word with 422.
|
|
15
|
+
|
|
7
16
|
## [0.6.0] - 2026-10-16
|
|
8
17
|
|
|
9
18
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: broadcast-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.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
|
|
@@ -242,6 +242,8 @@ client.templates.create(label="Welcome", subject="Hi", body="...")
|
|
|
242
242
|
client.opt_in_forms.analytics(id, start_date=date(2026, 1, 1))
|
|
243
243
|
# How often the same visitor sees a popup: one of TRIGGER_FREQUENCIES, or ValidationError (422).
|
|
244
244
|
client.opt_in_forms.update(id, trigger_settings={"frequency": "once_per_day"})
|
|
245
|
+
# Every N days (Broadcast 2.49 and later): frequency_cookie_days is a whole number, 1 or more; blank means 30.
|
|
246
|
+
client.opt_in_forms.update(id, trigger_settings={"frequency": "once_per_days", "frequency_cookie_days": 7})
|
|
245
247
|
client.opt_in_forms.create_variant(id, name="B", weight=50)
|
|
246
248
|
client.opt_in_forms.duplicate(id, label="Copy")
|
|
247
249
|
```
|
|
@@ -218,6 +218,8 @@ client.templates.create(label="Welcome", subject="Hi", body="...")
|
|
|
218
218
|
client.opt_in_forms.analytics(id, start_date=date(2026, 1, 1))
|
|
219
219
|
# How often the same visitor sees a popup: one of TRIGGER_FREQUENCIES, or ValidationError (422).
|
|
220
220
|
client.opt_in_forms.update(id, trigger_settings={"frequency": "once_per_day"})
|
|
221
|
+
# Every N days (Broadcast 2.49 and later): frequency_cookie_days is a whole number, 1 or more; blank means 30.
|
|
222
|
+
client.opt_in_forms.update(id, trigger_settings={"frequency": "once_per_days", "frequency_cookie_days": 7})
|
|
221
223
|
client.opt_in_forms.create_variant(id, name="B", weight=50)
|
|
222
224
|
client.opt_in_forms.duplicate(id, label="Copy")
|
|
223
225
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "broadcast-python"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.7.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"
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/opt_in_forms.py
RENAMED
|
@@ -9,7 +9,18 @@ Id = Union[str, int]
|
|
|
9
9
|
#: visitor sees a popup. ``always`` and ``every_visit`` mean the same. The server
|
|
10
10
|
#: refuses any other word with 422 (:class:`ValidationError`); the client does
|
|
11
11
|
#: not check, so an older server is never refused a word it would take.
|
|
12
|
-
|
|
12
|
+
#: ``once_per_days`` (Broadcast 2.49 and later) shows the popup again after
|
|
13
|
+
#: ``trigger_settings["frequency_cookie_days"]`` days: a whole number, 1 or
|
|
14
|
+
#: more; blank means 30.
|
|
15
|
+
TRIGGER_FREQUENCIES = (
|
|
16
|
+
"always",
|
|
17
|
+
"every_visit",
|
|
18
|
+
"once_per_session",
|
|
19
|
+
"once_per_day",
|
|
20
|
+
"once_per_week",
|
|
21
|
+
"once",
|
|
22
|
+
"once_per_days",
|
|
23
|
+
)
|
|
13
24
|
|
|
14
25
|
|
|
15
26
|
class OptInForms(BaseResource):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/__init__.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/autopilots.py
RENAMED
|
File without changes
|
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/broadcasts.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/channel_design.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/channel_settings.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/discovery.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/email_servers.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/file_assets.py
RENAMED
|
File without changes
|
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/migration.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/segments.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/sequences.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/subscribers.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/suppressions.py
RENAMED
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/templates.py
RENAMED
|
File without changes
|
|
File without changes
|
{broadcast_python-0.6.0 → broadcast_python-0.7.0}/src/broadcast_python/resources/transactionals.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|