planvortex 0.6.0__tar.gz → 0.8.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 (109) hide show
  1. {planvortex-0.6.0 → planvortex-0.8.0}/CHANGELOG.md +66 -0
  2. {planvortex-0.6.0 → planvortex-0.8.0}/PKG-INFO +5 -5
  3. {planvortex-0.6.0 → planvortex-0.8.0}/README.md +3 -3
  4. {planvortex-0.6.0 → planvortex-0.8.0}/openapi/planvortex.openapi.json +2665 -168
  5. {planvortex-0.6.0 → planvortex-0.8.0}/pyproject.toml +2 -2
  6. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/__init__.py +1 -1
  7. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/errors.py +6 -4
  8. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_generated/models.py +26 -24
  9. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_shapes.py +4 -3
  10. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_version.py +1 -1
  11. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/accounts.py +7 -0
  12. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/accounts.py +7 -0
  13. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/types.py +8 -6
  14. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_core.py +8 -4
  15. {planvortex-0.6.0 → planvortex-0.8.0}/.gitignore +0 -0
  16. {planvortex-0.6.0 → planvortex-0.8.0}/LICENSE +0 -0
  17. {planvortex-0.6.0 → planvortex-0.8.0}/scripts/build_docs.py +0 -0
  18. {planvortex-0.6.0 → planvortex-0.8.0}/scripts/check_packaging.py +0 -0
  19. {planvortex-0.6.0 → planvortex-0.8.0}/scripts/generate_models.py +0 -0
  20. {planvortex-0.6.0 → planvortex-0.8.0}/scripts/generate_sync.py +0 -0
  21. {planvortex-0.6.0 → planvortex-0.8.0}/scripts/route_coverage.py +0 -0
  22. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_client.py +0 -0
  23. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_client_sync.py +0 -0
  24. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/__init__.py +0 -0
  25. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/auth.py +0 -0
  26. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/auth_sync.py +0 -0
  27. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/files.py +0 -0
  28. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/http.py +0 -0
  29. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/http_sync.py +0 -0
  30. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/pagination.py +0 -0
  31. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/query.py +0 -0
  32. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_core/transport.py +0 -0
  33. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/_generated/__init__.py +0 -0
  34. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/py.typed +0 -0
  35. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/__init__.py +0 -0
  36. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/ai_plans.py +0 -0
  37. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/apps.py +0 -0
  38. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/base.py +0 -0
  39. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/catalog.py +0 -0
  40. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/clients.py +0 -0
  41. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/comments.py +0 -0
  42. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/contacts.py +0 -0
  43. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/dashboard.py +0 -0
  44. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/integrations.py +0 -0
  45. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/messages.py +0 -0
  46. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/organizations.py +0 -0
  47. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/products.py +0 -0
  48. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/publications.py +0 -0
  49. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources/uploads.py +0 -0
  50. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/__init__.py +0 -0
  51. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/ai_plans.py +0 -0
  52. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/apps.py +0 -0
  53. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/base.py +0 -0
  54. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/catalog.py +0 -0
  55. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/clients.py +0 -0
  56. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/comments.py +0 -0
  57. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/contacts.py +0 -0
  58. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/dashboard.py +0 -0
  59. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/integrations.py +0 -0
  60. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/messages.py +0 -0
  61. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/organizations.py +0 -0
  62. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/products.py +0 -0
  63. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/publications.py +0 -0
  64. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/resources_sync/uploads.py +0 -0
  65. {planvortex-0.6.0 → planvortex-0.8.0}/src/planvortex/webhooks.py +0 -0
  66. {planvortex-0.6.0 → planvortex-0.8.0}/tests/__init__.py +0 -0
  67. {planvortex-0.6.0 → planvortex-0.8.0}/tests/conftest.py +0 -0
  68. {planvortex-0.6.0 → planvortex-0.8.0}/tests/contrato.py +0 -0
  69. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/__init__.py +0 -0
  70. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/conftest.py +0 -0
  71. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_auth.py +0 -0
  72. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_catalog.py +0 -0
  73. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_connect_flow.py +0 -0
  74. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_errors.py +0 -0
  75. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_publish.py +0 -0
  76. {planvortex-0.6.0 → planvortex-0.8.0}/tests/live/test_read.py +0 -0
  77. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_accounts.py +0 -0
  78. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_ai_plans.py +0 -0
  79. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_apps.py +0 -0
  80. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_catalog.py +0 -0
  81. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_client.py +0 -0
  82. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_clients.py +0 -0
  83. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_comments.py +0 -0
  84. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_contacts.py +0 -0
  85. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_dashboard.py +0 -0
  86. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_example_comments.py +0 -0
  87. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_example_connect.py +0 -0
  88. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_example_publish.py +0 -0
  89. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_example_schedule.py +0 -0
  90. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_example_webhooks.py +0 -0
  91. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_files.py +0 -0
  92. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_generate_models.py +0 -0
  93. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_generate_sync.py +0 -0
  94. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_integrations.py +0 -0
  95. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_messages.py +0 -0
  96. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_models.py +0 -0
  97. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_openapi_freshness.py +0 -0
  98. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_organizations.py +0 -0
  99. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_packaging.py +0 -0
  100. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_pagination.py +0 -0
  101. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_products.py +0 -0
  102. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_publications.py +0 -0
  103. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_query_parity.py +0 -0
  104. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_readme.py +0 -0
  105. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_route_coverage.py +0 -0
  106. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_shapes_parity.py +0 -0
  107. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_types.py +0 -0
  108. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_uploads.py +0 -0
  109. {planvortex-0.6.0 → planvortex-0.8.0}/tests/test_webhooks.py +0 -0
@@ -4,6 +4,72 @@ All notable changes to this package are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
5
5
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.8.0] - 2026-09-13
8
+
9
+ Slack, the thirteenth network, reaches the package — and here it arrives the way it should: **three
10
+ tests went red the moment the models were regenerated**, because `PublishableNetwork` is a closed
11
+ `Literal` written by hand. The Node package did not break at all, and that is worse: its
12
+ `SocialNetwork` is an open enumeration, so a missing network there costs autocompletion and
13
+ documentation with nothing to signal it.
14
+
15
+ Nothing was removed and no signature moved: upgrading from `0.7.0` needs no changes, and
16
+ `MIGRATION.md` gains no entry.
17
+
18
+ ### Fixed
19
+
20
+ - **Slack's errors (980-986) were not `PublicationError`.** The publication family stopped at 979,
21
+ so every one of them fell outside the table and arrived as a plain `PlanVortexError` — including
22
+ **980, the commonest error on the whole network**: the PlanVortex app is not in the channel.
23
+ Code that catches `PublicationError` to tell a fixable publication failure from anything else was
24
+ told nothing. The range now reaches 986, both ends are pinned by a test, and the README's range
25
+ table — which a test compares against the package — says so too.
26
+
27
+ ### Added
28
+
29
+ - **`slack` in `PublishableNetwork`**, so it is in `PUBLISHABLE_NETWORKS` at runtime and
30
+ `is_publishable_network("slack")` answers `True`. It is deliberately **not** in `CommentNetwork`
31
+ nor in `ContactChannel`: Slack has neither a comment inbox nor direct messages, and putting it in
32
+ either would promise a screen that does not exist. `SocialNetwork` picked it up on its own — it
33
+ comes from the generated models.
34
+ - **A warning on `accounts.enable()`, because nothing else announces it.** On Slack that call is
35
+ also what puts the app inside the channel. On a **public** channel it joins by itself; on a
36
+ **private** one it cannot — Slack has no API for that — and somebody has to type
37
+ `/invite @PlanVortex` in the channel. The call succeeds either way and the account stays
38
+ connected: what fails is the first publication, with error 980. Say it before your user picks the
39
+ channel.
40
+
41
+ ### Changed
42
+
43
+ - The prose that counts networks, in the five places it had gone stale: the two union sizes
44
+ (`PublishableNetwork` is now **twelve of the thirteen**), the bridge in `is_publishable_network`,
45
+ `SOCIAL_NETWORKS` ("six to thirteen in two years"), `ContactChannel` — where `slack` joins
46
+ `telegram` as a network that is **not** a channel, for the same reason: a bot cannot start a
47
+ conversation with anybody — and the two examples, `connect.py` and `publish.py`.
48
+ ## [0.7.0] - 2026-09-04
49
+
50
+ **Users are unlimited on every plan**, so the quota that said otherwise is gone from the types —
51
+ the same correction 0.6.0 made for publications, one axis later.
52
+
53
+ It is the second half of a change the server made on 03-09-2026: users stopped being something a
54
+ plan grants and became something you simply count. `PlanData["users"]` was a **required** key, so
55
+ mypy accepted `limits["users"]` and the call raised `KeyError` at runtime, which is the same
56
+ failure mode 0.6.0 describes for publications.
57
+
58
+ ### Changed
59
+
60
+ - **BREAKING (types only): `PlanData["users"]` no longer exists.** The count moved to
61
+ `PlanUseData` as an optional key — how many users have access right now, with no limit to
62
+ compare it against, because there is none. Nothing changes on the wire.
63
+ - **The `/apps` operations no longer claim the Custom plan.** Their docstrings still said the API
64
+ needed it. That stopped being true on 02-09-2026, and the docstrings come straight from the
65
+ OpenAPI document, so they were repeating a copy of the spec that had not been rebuilt since.
66
+
67
+ ### Removed
68
+
69
+ - **`PlanData["artificial_inteligence"]`, `PlanData["stats"]` and `PlanData["whatsapp"]`.**
70
+ Three optional keys describing a plan model that no longer exists: statistics and WhatsApp are on
71
+ every plan, and what gates AI is `ai_credits` — a plan with credits has AI, and Free has zero.
72
+
7
73
  ## [0.6.0] - 2026-09-03
8
74
 
9
75
  **Publications are unlimited on every plan**, so the quota that said otherwise is gone from the
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: planvortex
3
- Version: 0.6.0
3
+ Version: 0.8.0
4
4
  Summary: Official Python client for the PlanVortex API
5
- Project-URL: Homepage, https://planvortex.com/developers
5
+ Project-URL: Homepage, https://planvortex.com/en/developers
6
6
  Project-URL: Documentation, https://taliasoftworks.github.io/PlanVortexPython/
7
7
  Project-URL: API, https://planvortex.com/documentation
8
8
  Project-URL: Repository, https://github.com/taliasoftworks/PlanVortexPython
@@ -53,7 +53,7 @@ pip install planvortex
53
53
  - Python 3.10 and newer.
54
54
 
55
55
  **Reference:** <https://taliasoftworks.github.io/PlanVortexPython/> · **Guides:**
56
- [planvortex.com/developers](https://planvortex.com/developers)
56
+ [planvortex.com/en/developers](https://planvortex.com/en/developers)
57
57
 
58
58
  ## Authentication
59
59
 
@@ -246,7 +246,7 @@ memorising numbers:
246
246
  | 601-612 | `user` | `UserError` |
247
247
  | 700-715 | `account` | `AccountError` |
248
248
  | 800-810 | `file` | `FileError` |
249
- | 900-979 | `publication` | `PublicationError` |
249
+ | 900-986 | `publication` | `PublicationError` |
250
250
  | 1000-1003 | `general` | `PlanVortexError` |
251
251
  | 1100-1111 | `organization` | `OrganizationError` |
252
252
  | 1200-1207 | `role` | `PlanVortexError` |
@@ -371,7 +371,7 @@ and reaches a person.
371
371
 
372
372
  - [Reference](https://taliasoftworks.github.io/PlanVortexPython/)
373
373
  - [API documentation](https://planvortex.com/documentation)
374
- - [Developers](https://planvortex.com/developers)
374
+ - [Developers](https://planvortex.com/en/developers)
375
375
  - [Node client](https://github.com/taliasoftworks/PlanVortexNode)
376
376
  - [Contributing](https://github.com/taliasoftworks/PlanVortexPython/blob/main/CONTRIBUTING.md) · [Security](https://github.com/taliasoftworks/PlanVortexPython/blob/main/SECURITY.md) · [Changelog](https://github.com/taliasoftworks/PlanVortexPython/blob/main/CHANGELOG.md)
377
377
 
@@ -23,7 +23,7 @@ pip install planvortex
23
23
  - Python 3.10 and newer.
24
24
 
25
25
  **Reference:** <https://taliasoftworks.github.io/PlanVortexPython/> · **Guides:**
26
- [planvortex.com/developers](https://planvortex.com/developers)
26
+ [planvortex.com/en/developers](https://planvortex.com/en/developers)
27
27
 
28
28
  ## Authentication
29
29
 
@@ -216,7 +216,7 @@ memorising numbers:
216
216
  | 601-612 | `user` | `UserError` |
217
217
  | 700-715 | `account` | `AccountError` |
218
218
  | 800-810 | `file` | `FileError` |
219
- | 900-979 | `publication` | `PublicationError` |
219
+ | 900-986 | `publication` | `PublicationError` |
220
220
  | 1000-1003 | `general` | `PlanVortexError` |
221
221
  | 1100-1111 | `organization` | `OrganizationError` |
222
222
  | 1200-1207 | `role` | `PlanVortexError` |
@@ -341,7 +341,7 @@ and reaches a person.
341
341
 
342
342
  - [Reference](https://taliasoftworks.github.io/PlanVortexPython/)
343
343
  - [API documentation](https://planvortex.com/documentation)
344
- - [Developers](https://planvortex.com/developers)
344
+ - [Developers](https://planvortex.com/en/developers)
345
345
  - [Node client](https://github.com/taliasoftworks/PlanVortexNode)
346
346
  - [Contributing](https://github.com/taliasoftworks/PlanVortexPython/blob/main/CONTRIBUTING.md) · [Security](https://github.com/taliasoftworks/PlanVortexPython/blob/main/SECURITY.md) · [Changelog](https://github.com/taliasoftworks/PlanVortexPython/blob/main/CHANGELOG.md)
347
347