whatsapp-cloud-api-py 0.2.0__tar.gz → 0.2.2__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 (51) hide show
  1. whatsapp_cloud_api_py-0.2.2/.github/workflows/ci.yml +28 -0
  2. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/PKG-INFO +13 -4
  3. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/README.md +12 -3
  4. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/pyproject.toml +1 -1
  5. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/.github/workflows/publish.yml +0 -0
  6. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/.gitignore +0 -0
  7. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/LICENSE +0 -0
  8. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/__init__.py +0 -0
  9. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/client.py +0 -0
  10. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/errors/__init__.py +0 -0
  11. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/errors/categorize.py +0 -0
  12. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/errors/graph_api_error.py +0 -0
  13. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/errors/retry.py +0 -0
  14. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/events/__init__.py +0 -0
  15. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/events/dispatcher.py +0 -0
  16. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/events/events.py +0 -0
  17. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/__init__.py +0 -0
  18. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/flows.py +0 -0
  19. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/media.py +0 -0
  20. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/messages/__init__.py +0 -0
  21. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/messages/models.py +0 -0
  22. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/messages/resource.py +0 -0
  23. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/phone_numbers.py +0 -0
  24. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/templates/__init__.py +0 -0
  25. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/templates/models.py +0 -0
  26. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/resources/templates/resource.py +0 -0
  27. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/types.py +0 -0
  28. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/utils/__init__.py +0 -0
  29. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/utils/case.py +0 -0
  30. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/webhooks/__init__.py +0 -0
  31. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/webhooks/normalize.py +0 -0
  32. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/src/whatsapp_cloud_api/webhooks/verify.py +0 -0
  33. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/__init__.py +0 -0
  34. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/conftest.py +0 -0
  35. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_client.py +0 -0
  36. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_errors_categorize.py +0 -0
  37. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_errors_graph_api_error.py +0 -0
  38. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_errors_retry.py +0 -0
  39. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_events.py +0 -0
  40. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_events_dispatcher.py +0 -0
  41. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_messages_models.py +0 -0
  42. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_messages_resource.py +0 -0
  43. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_resources_flows.py +0 -0
  44. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_resources_media.py +0 -0
  45. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_resources_phone_numbers.py +0 -0
  46. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_resources_templates.py +0 -0
  47. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_types.py +0 -0
  48. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_utils_case.py +0 -0
  49. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_webhooks_normalize.py +0 -0
  50. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/tests/test_webhooks_verify.py +0 -0
  51. {whatsapp_cloud_api_py-0.2.0 → whatsapp_cloud_api_py-0.2.2}/uv.lock +0 -0
@@ -0,0 +1,28 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ lint:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - uses: astral-sh/setup-uv@v4
13
+ - run: uv sync --extra dev
14
+ - run: uv run ruff check src/
15
+ - run: uv run ruff format --check src/
16
+
17
+ test:
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ matrix:
21
+ python-version: ["3.11", "3.12", "3.13"]
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ - uses: astral-sh/setup-uv@v4
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+ - run: uv sync --extra dev
28
+ - run: uv run pytest --tb=short -q
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: whatsapp-cloud-api-py
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Async Python SDK for WhatsApp Business Cloud API with Pydantic V2
5
5
  Project-URL: Homepage, https://github.com/HeiCg/whatsapp-cloud-api-py
6
6
  Project-URL: Repository, https://github.com/HeiCg/whatsapp-cloud-api-py
@@ -62,13 +62,22 @@ See the [Kapso docs](https://docs.kapso.ai/docs/introduction) for detailed setup
62
62
  uv add whatsapp-cloud-api-py
63
63
  ```
64
64
 
65
- With extras:
65
+ ### Extras
66
+
67
+ The base package only requires `httpx` and `pydantic`. Optional extras add functionality as needed:
68
+
69
+ | Extra | Installs | What it enables |
70
+ |---|---|---|
71
+ | `events` | [pyventus](https://pypi.org/project/pyventus/) | Event-driven webhooks — typed event classes (`TextReceived`, `ImageReceived`, etc.) and `dispatch_webhook()` to emit events via pyventus instead of manually parsing payloads |
72
+ | `webhooks` | [starlette](https://pypi.org/project/starlette/) | Starlette integration for webhook endpoints — use `FastAPIEventEmitter` to run event handlers as background tasks |
73
+ | `server` | [cryptography](https://pypi.org/project/cryptography/) | Cryptographic utilities for server-side features like webhook signature verification with HMAC-SHA256 |
66
74
 
67
75
  ```bash
68
- # Event-driven webhooks (pyventus)
76
+ # Pick what you need
69
77
  uv add "whatsapp-cloud-api-py[events]"
78
+ uv add "whatsapp-cloud-api-py[events,webhooks]"
70
79
 
71
- # All extras
80
+ # Everything
72
81
  uv add "whatsapp-cloud-api-py[events,webhooks,server]"
73
82
  ```
74
83
 
@@ -36,13 +36,22 @@ See the [Kapso docs](https://docs.kapso.ai/docs/introduction) for detailed setup
36
36
  uv add whatsapp-cloud-api-py
37
37
  ```
38
38
 
39
- With extras:
39
+ ### Extras
40
+
41
+ The base package only requires `httpx` and `pydantic`. Optional extras add functionality as needed:
42
+
43
+ | Extra | Installs | What it enables |
44
+ |---|---|---|
45
+ | `events` | [pyventus](https://pypi.org/project/pyventus/) | Event-driven webhooks — typed event classes (`TextReceived`, `ImageReceived`, etc.) and `dispatch_webhook()` to emit events via pyventus instead of manually parsing payloads |
46
+ | `webhooks` | [starlette](https://pypi.org/project/starlette/) | Starlette integration for webhook endpoints — use `FastAPIEventEmitter` to run event handlers as background tasks |
47
+ | `server` | [cryptography](https://pypi.org/project/cryptography/) | Cryptographic utilities for server-side features like webhook signature verification with HMAC-SHA256 |
40
48
 
41
49
  ```bash
42
- # Event-driven webhooks (pyventus)
50
+ # Pick what you need
43
51
  uv add "whatsapp-cloud-api-py[events]"
52
+ uv add "whatsapp-cloud-api-py[events,webhooks]"
44
53
 
45
- # All extras
54
+ # Everything
46
55
  uv add "whatsapp-cloud-api-py[events,webhooks,server]"
47
56
  ```
48
57
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "whatsapp-cloud-api-py"
3
- version = "0.2.0"
3
+ version = "0.2.2"
4
4
  description = "Async Python SDK for WhatsApp Business Cloud API with Pydantic V2"
5
5
  requires-python = ">=3.11"
6
6
  license = "MIT"