moderation_api 1.0.0__tar.gz → 1.0.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 (138) hide show
  1. moderation_api-1.0.2/.release-please-manifest.json +3 -0
  2. {moderation_api-1.0.0 → moderation_api-1.0.2}/CHANGELOG.md +21 -0
  3. {moderation_api-1.0.0 → moderation_api-1.0.2}/PKG-INFO +5 -8
  4. {moderation_api-1.0.0 → moderation_api-1.0.2}/README.md +4 -7
  5. {moderation_api-1.0.0 → moderation_api-1.0.2}/pyproject.toml +1 -1
  6. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_types.py +3 -2
  7. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_version.py +1 -1
  8. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/actions/execute_execute_response.py +2 -0
  9. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_create_params.py +5 -0
  10. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_create_response.py +9 -0
  11. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_list_response.py +9 -0
  12. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_retrieve_response.py +9 -0
  13. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_update_params.py +5 -0
  14. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_update_response.py +9 -0
  15. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/content_submit_params.py +18 -0
  16. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/content_submit_response.py +31 -0
  17. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist_get_embedding_status_response.py +2 -0
  18. moderation_api-1.0.0/.release-please-manifest.json +0 -3
  19. {moderation_api-1.0.0 → moderation_api-1.0.2}/.gitignore +0 -0
  20. {moderation_api-1.0.0 → moderation_api-1.0.2}/CONTRIBUTING.md +0 -0
  21. {moderation_api-1.0.0 → moderation_api-1.0.2}/LICENSE +0 -0
  22. {moderation_api-1.0.0 → moderation_api-1.0.2}/SECURITY.md +0 -0
  23. {moderation_api-1.0.0 → moderation_api-1.0.2}/api.md +0 -0
  24. {moderation_api-1.0.0 → moderation_api-1.0.2}/bin/check-release-environment +0 -0
  25. {moderation_api-1.0.0 → moderation_api-1.0.2}/bin/publish-pypi +0 -0
  26. {moderation_api-1.0.0 → moderation_api-1.0.2}/examples/.keep +0 -0
  27. {moderation_api-1.0.0 → moderation_api-1.0.2}/noxfile.py +0 -0
  28. {moderation_api-1.0.0 → moderation_api-1.0.2}/release-please-config.json +0 -0
  29. {moderation_api-1.0.0 → moderation_api-1.0.2}/requirements-dev.lock +0 -0
  30. {moderation_api-1.0.0 → moderation_api-1.0.2}/requirements.lock +0 -0
  31. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/__init__.py +0 -0
  32. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_base_client.py +0 -0
  33. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_client.py +0 -0
  34. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_compat.py +0 -0
  35. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_constants.py +0 -0
  36. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_exceptions.py +0 -0
  37. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_files.py +0 -0
  38. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_models.py +0 -0
  39. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_qs.py +0 -0
  40. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_resource.py +0 -0
  41. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_response.py +0 -0
  42. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_streaming.py +0 -0
  43. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/__init__.py +0 -0
  44. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_compat.py +0 -0
  45. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_datetime_parse.py +0 -0
  46. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_logs.py +0 -0
  47. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_proxy.py +0 -0
  48. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_reflection.py +0 -0
  49. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_resources_proxy.py +0 -0
  50. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_streams.py +0 -0
  51. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_sync.py +0 -0
  52. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_transform.py +0 -0
  53. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_typing.py +0 -0
  54. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/_utils/_utils.py +0 -0
  55. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/lib/.keep +0 -0
  56. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/py.typed +0 -0
  57. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/__init__.py +0 -0
  58. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/account.py +0 -0
  59. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/actions/__init__.py +0 -0
  60. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/actions/actions.py +0 -0
  61. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/actions/execute.py +0 -0
  62. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/auth.py +0 -0
  63. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/authors.py +0 -0
  64. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/content.py +0 -0
  65. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/queue/__init__.py +0 -0
  66. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/queue/items.py +0 -0
  67. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/queue/queue.py +0 -0
  68. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/wordlist/__init__.py +0 -0
  69. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/wordlist/wordlist.py +0 -0
  70. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/resources/wordlist/words.py +0 -0
  71. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/__init__.py +0 -0
  72. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/account_list_response.py +0 -0
  73. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_create_params.py +0 -0
  74. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_create_response.py +0 -0
  75. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_delete_response.py +0 -0
  76. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_list_params.py +0 -0
  77. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_list_response.py +0 -0
  78. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_retrieve_response.py +0 -0
  79. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_update_params.py +0 -0
  80. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/action_update_response.py +0 -0
  81. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/actions/__init__.py +0 -0
  82. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/actions/execute_execute_by_id_params.py +0 -0
  83. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/actions/execute_execute_by_id_response.py +0 -0
  84. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/actions/execute_execute_params.py +0 -0
  85. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/auth_create_response.py +0 -0
  86. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/auth_retrieve_response.py +0 -0
  87. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_delete_response.py +0 -0
  88. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/author_list_params.py +0 -0
  89. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/__init__.py +0 -0
  90. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_list_params.py +0 -0
  91. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_list_response.py +0 -0
  92. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_resolve_params.py +0 -0
  93. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_resolve_response.py +0 -0
  94. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_unresolve_params.py +0 -0
  95. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue/item_unresolve_response.py +0 -0
  96. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue_get_stats_params.py +0 -0
  97. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue_get_stats_response.py +0 -0
  98. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/queue_retrieve_response.py +0 -0
  99. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist/__init__.py +0 -0
  100. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist/word_add_params.py +0 -0
  101. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist/word_add_response.py +0 -0
  102. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist/word_remove_params.py +0 -0
  103. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist/word_remove_response.py +0 -0
  104. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist_list_response.py +0 -0
  105. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist_retrieve_response.py +0 -0
  106. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist_update_params.py +0 -0
  107. {moderation_api-1.0.0 → moderation_api-1.0.2}/src/moderation_api/types/wordlist_update_response.py +0 -0
  108. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/__init__.py +0 -0
  109. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/__init__.py +0 -0
  110. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/actions/__init__.py +0 -0
  111. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/actions/test_execute.py +0 -0
  112. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/queue/__init__.py +0 -0
  113. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/queue/test_items.py +0 -0
  114. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_account.py +0 -0
  115. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_actions.py +0 -0
  116. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_auth.py +0 -0
  117. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_authors.py +0 -0
  118. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_content.py +0 -0
  119. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_queue.py +0 -0
  120. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/test_wordlist.py +0 -0
  121. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/wordlist/__init__.py +0 -0
  122. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/api_resources/wordlist/test_words.py +0 -0
  123. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/conftest.py +0 -0
  124. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/sample_file.txt +0 -0
  125. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_client.py +0 -0
  126. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_deepcopy.py +0 -0
  127. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_extract_files.py +0 -0
  128. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_files.py +0 -0
  129. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_models.py +0 -0
  130. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_qs.py +0 -0
  131. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_required_args.py +0 -0
  132. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_response.py +0 -0
  133. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_streaming.py +0 -0
  134. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_transform.py +0 -0
  135. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_utils/test_datetime_parse.py +0 -0
  136. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_utils/test_proxy.py +0 -0
  137. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/test_utils/test_typing.py +0 -0
  138. {moderation_api-1.0.0 → moderation_api-1.0.2}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.0.2"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.2 (2025-12-09)
4
+
5
+ Full Changelog: [v1.0.1...v1.0.2](https://github.com/moderation-api/sdk-python/compare/v1.0.1...v1.0.2)
6
+
7
+ ### Chores
8
+
9
+ * add missing docstrings ([02bdf8f](https://github.com/moderation-api/sdk-python/commit/02bdf8ffdef877fdb38df5c8215f241c0af2936e))
10
+
11
+ ## 1.0.1 (2025-12-09)
12
+
13
+ Full Changelog: [v1.0.0...v1.0.1](https://github.com/moderation-api/sdk-python/compare/v1.0.0...v1.0.1)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **types:** allow pyright to infer TypedDict types within SequenceNotStr ([36ea40a](https://github.com/moderation-api/sdk-python/commit/36ea40ac2b242cd53c8cd915befe809b65a13215))
18
+
19
+
20
+ ### Chores
21
+
22
+ * update SDK settings ([1876999](https://github.com/moderation-api/sdk-python/commit/18769999773649b22146674569e8ba3ddf88f876))
23
+
3
24
  ## 1.0.0 (2025-12-06)
4
25
 
5
26
  Full Changelog: [v0.0.1...v1.0.0](https://github.com/moderation-api/sdk-python/compare/v0.0.1...v1.0.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: moderation_api
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: The official Python library for the moderation-api API
5
5
  Project-URL: Homepage, https://github.com/moderation-api/sdk-python
6
6
  Project-URL: Repository, https://github.com/moderation-api/sdk-python
@@ -51,13 +51,10 @@ The REST API documentation can be found on [docs.moderationapi.com](https://docs
51
51
  ## Installation
52
52
 
53
53
  ```sh
54
- # install from the production repo
55
- pip install git+ssh://git@github.com/moderation-api/sdk-python.git
54
+ # install from PyPI
55
+ pip install moderation_api
56
56
  ```
57
57
 
58
- > [!NOTE]
59
- > Once this package is [published to PyPI](https://www.stainless.com/docs/guides/publish), this will become: `pip install moderation_api`
60
-
61
58
  ## Usage
62
59
 
63
60
  The full API of this library can be found in [api.md](https://github.com/moderation-api/sdk-python/tree/main/api.md).
@@ -120,8 +117,8 @@ By default, the async client uses `httpx` for HTTP requests. However, for improv
120
117
  You can enable this by installing `aiohttp`:
121
118
 
122
119
  ```sh
123
- # install from the production repo
124
- pip install 'moderation_api[aiohttp] @ git+ssh://git@github.com/moderation-api/sdk-python.git'
120
+ # install from PyPI
121
+ pip install moderation_api[aiohttp]
125
122
  ```
126
123
 
127
124
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
@@ -16,13 +16,10 @@ The REST API documentation can be found on [docs.moderationapi.com](https://docs
16
16
  ## Installation
17
17
 
18
18
  ```sh
19
- # install from the production repo
20
- pip install git+ssh://git@github.com/moderation-api/sdk-python.git
19
+ # install from PyPI
20
+ pip install moderation_api
21
21
  ```
22
22
 
23
- > [!NOTE]
24
- > Once this package is [published to PyPI](https://www.stainless.com/docs/guides/publish), this will become: `pip install moderation_api`
25
-
26
23
  ## Usage
27
24
 
28
25
  The full API of this library can be found in [api.md](api.md).
@@ -85,8 +82,8 @@ By default, the async client uses `httpx` for HTTP requests. However, for improv
85
82
  You can enable this by installing `aiohttp`:
86
83
 
87
84
  ```sh
88
- # install from the production repo
89
- pip install 'moderation_api[aiohttp] @ git+ssh://git@github.com/moderation-api/sdk-python.git'
85
+ # install from PyPI
86
+ pip install moderation_api[aiohttp]
90
87
  ```
91
88
 
92
89
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "moderation_api"
3
- version = "1.0.0"
3
+ version = "1.0.2"
4
4
  description = "The official Python library for the moderation-api API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -243,6 +243,9 @@ _T_co = TypeVar("_T_co", covariant=True)
243
243
  if TYPE_CHECKING:
244
244
  # This works because str.__contains__ does not accept object (either in typeshed or at runtime)
245
245
  # https://github.com/hauntsaninja/useful_types/blob/5e9710f3875107d068e7679fd7fec9cfab0eff3b/useful_types/__init__.py#L285
246
+ #
247
+ # Note: index() and count() methods are intentionally omitted to allow pyright to properly
248
+ # infer TypedDict types when dict literals are used in lists assigned to SequenceNotStr.
246
249
  class SequenceNotStr(Protocol[_T_co]):
247
250
  @overload
248
251
  def __getitem__(self, index: SupportsIndex, /) -> _T_co: ...
@@ -251,8 +254,6 @@ if TYPE_CHECKING:
251
254
  def __contains__(self, value: object, /) -> bool: ...
252
255
  def __len__(self) -> int: ...
253
256
  def __iter__(self) -> Iterator[_T_co]: ...
254
- def index(self, value: Any, start: int = 0, stop: int = ..., /) -> int: ...
255
- def count(self, value: Any, /) -> int: ...
256
257
  def __reversed__(self) -> Iterator[_T_co]: ...
257
258
  else:
258
259
  # just point this to a normal `Sequence` at runtime to avoid having to special case
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "moderation_api"
4
- __version__ = "1.0.0" # x-release-please-version
4
+ __version__ = "1.0.2" # x-release-please-version
@@ -6,5 +6,7 @@ __all__ = ["ExecuteExecuteResponse"]
6
6
 
7
7
 
8
8
  class ExecuteExecuteResponse(BaseModel):
9
+ """Execution result"""
10
+
9
11
  success: bool
10
12
  """Whether the action was executed successfully"""
@@ -41,6 +41,11 @@ class AuthorCreateParams(TypedDict, total=False):
41
41
 
42
42
 
43
43
  class MetadataTyped(TypedDict, total=False):
44
+ """Additional metadata provided by your system.
45
+
46
+ We recommend including any relevant information that may assist in the moderation process.
47
+ """
48
+
44
49
  email_verified: Optional[bool]
45
50
  """Whether the author's email is verified"""
46
51
 
@@ -11,6 +11,8 @@ __all__ = ["AuthorCreateResponse", "Block", "Metadata", "Metrics", "RiskEvaluati
11
11
 
12
12
 
13
13
  class Block(BaseModel):
14
+ """Block or suspension details, if applicable. Null if the author is enabled."""
15
+
14
16
  reason: Optional[str] = None
15
17
  """The moderators reason why the author was blocked or suspended."""
16
18
 
@@ -19,6 +21,11 @@ class Block(BaseModel):
19
21
 
20
22
 
21
23
  class Metadata(BaseModel):
24
+ """Additional metadata provided by your system.
25
+
26
+ We recommend including any relevant information that may assist in the moderation process.
27
+ """
28
+
22
29
  email_verified: Optional[bool] = None
23
30
  """Whether the author's email is verified"""
24
31
 
@@ -59,6 +66,8 @@ class Metrics(BaseModel):
59
66
 
60
67
 
61
68
  class RiskEvaluation(BaseModel):
69
+ """Risk assessment details, if available."""
70
+
62
71
  risk_level: Optional[float] = None
63
72
  """Calculated risk level based on more than 10 behavioral signals."""
64
73
 
@@ -20,6 +20,8 @@ __all__ = [
20
20
 
21
21
 
22
22
  class AuthorBlock(BaseModel):
23
+ """Block or suspension details, if applicable. Null if the author is enabled."""
24
+
23
25
  reason: Optional[str] = None
24
26
  """The moderators reason why the author was blocked or suspended."""
25
27
 
@@ -28,6 +30,11 @@ class AuthorBlock(BaseModel):
28
30
 
29
31
 
30
32
  class AuthorMetadata(BaseModel):
33
+ """Additional metadata provided by your system.
34
+
35
+ We recommend including any relevant information that may assist in the moderation process.
36
+ """
37
+
31
38
  email_verified: Optional[bool] = None
32
39
  """Whether the author's email is verified"""
33
40
 
@@ -68,6 +75,8 @@ class AuthorMetrics(BaseModel):
68
75
 
69
76
 
70
77
  class AuthorRiskEvaluation(BaseModel):
78
+ """Risk assessment details, if available."""
79
+
71
80
  risk_level: Optional[float] = None
72
81
  """Calculated risk level based on more than 10 behavioral signals."""
73
82
 
@@ -11,6 +11,8 @@ __all__ = ["AuthorRetrieveResponse", "Block", "Metadata", "Metrics", "RiskEvalua
11
11
 
12
12
 
13
13
  class Block(BaseModel):
14
+ """Block or suspension details, if applicable. Null if the author is enabled."""
15
+
14
16
  reason: Optional[str] = None
15
17
  """The moderators reason why the author was blocked or suspended."""
16
18
 
@@ -19,6 +21,11 @@ class Block(BaseModel):
19
21
 
20
22
 
21
23
  class Metadata(BaseModel):
24
+ """Additional metadata provided by your system.
25
+
26
+ We recommend including any relevant information that may assist in the moderation process.
27
+ """
28
+
22
29
  email_verified: Optional[bool] = None
23
30
  """Whether the author's email is verified"""
24
31
 
@@ -59,6 +66,8 @@ class Metrics(BaseModel):
59
66
 
60
67
 
61
68
  class RiskEvaluation(BaseModel):
69
+ """Risk assessment details, if available."""
70
+
62
71
  risk_level: Optional[float] = None
63
72
  """Calculated risk level based on more than 10 behavioral signals."""
64
73
 
@@ -38,6 +38,11 @@ class AuthorUpdateParams(TypedDict, total=False):
38
38
 
39
39
 
40
40
  class MetadataTyped(TypedDict, total=False):
41
+ """Additional metadata provided by your system.
42
+
43
+ We recommend including any relevant information that may assist in the moderation process.
44
+ """
45
+
41
46
  email_verified: Optional[bool]
42
47
  """Whether the author's email is verified"""
43
48
 
@@ -11,6 +11,8 @@ __all__ = ["AuthorUpdateResponse", "Block", "Metadata", "Metrics", "RiskEvaluati
11
11
 
12
12
 
13
13
  class Block(BaseModel):
14
+ """Block or suspension details, if applicable. Null if the author is enabled."""
15
+
14
16
  reason: Optional[str] = None
15
17
  """The moderators reason why the author was blocked or suspended."""
16
18
 
@@ -19,6 +21,11 @@ class Block(BaseModel):
19
21
 
20
22
 
21
23
  class Metadata(BaseModel):
24
+ """Additional metadata provided by your system.
25
+
26
+ We recommend including any relevant information that may assist in the moderation process.
27
+ """
28
+
22
29
  email_verified: Optional[bool] = None
23
30
  """Whether the author's email is verified"""
24
31
 
@@ -59,6 +66,8 @@ class Metrics(BaseModel):
59
66
 
60
67
 
61
68
  class RiskEvaluation(BaseModel):
69
+ """Risk assessment details, if available."""
70
+
62
71
  risk_level: Optional[float] = None
63
72
  """Calculated risk level based on more than 10 behavioral signals."""
64
73
 
@@ -85,6 +85,8 @@ class ContentSubmitParams(TypedDict, total=False):
85
85
 
86
86
 
87
87
  class ContentText(TypedDict, total=False):
88
+ """Text"""
89
+
88
90
  text: Required[str]
89
91
  """The content text"""
90
92
 
@@ -92,6 +94,8 @@ class ContentText(TypedDict, total=False):
92
94
 
93
95
 
94
96
  class ContentImage(TypedDict, total=False):
97
+ """Image"""
98
+
95
99
  type: Required[Literal["image"]]
96
100
 
97
101
  url: Required[str]
@@ -99,6 +103,8 @@ class ContentImage(TypedDict, total=False):
99
103
 
100
104
 
101
105
  class ContentVideo(TypedDict, total=False):
106
+ """Video"""
107
+
102
108
  type: Required[Literal["video"]]
103
109
 
104
110
  url: Required[str]
@@ -106,6 +112,8 @@ class ContentVideo(TypedDict, total=False):
106
112
 
107
113
 
108
114
  class ContentAudio(TypedDict, total=False):
115
+ """Audio"""
116
+
109
117
  type: Required[Literal["audio"]]
110
118
 
111
119
  url: Required[str]
@@ -113,6 +121,8 @@ class ContentAudio(TypedDict, total=False):
113
121
 
114
122
 
115
123
  class ContentObjectDataText(TypedDict, total=False):
124
+ """Text"""
125
+
116
126
  text: Required[str]
117
127
  """The content text"""
118
128
 
@@ -120,6 +130,8 @@ class ContentObjectDataText(TypedDict, total=False):
120
130
 
121
131
 
122
132
  class ContentObjectDataImage(TypedDict, total=False):
133
+ """Image"""
134
+
123
135
  type: Required[Literal["image"]]
124
136
 
125
137
  url: Required[str]
@@ -127,6 +139,8 @@ class ContentObjectDataImage(TypedDict, total=False):
127
139
 
128
140
 
129
141
  class ContentObjectDataVideo(TypedDict, total=False):
142
+ """Video"""
143
+
130
144
  type: Required[Literal["video"]]
131
145
 
132
146
  url: Required[str]
@@ -134,6 +148,8 @@ class ContentObjectDataVideo(TypedDict, total=False):
134
148
 
135
149
 
136
150
  class ContentObjectDataAudio(TypedDict, total=False):
151
+ """Audio"""
152
+
137
153
  type: Required[Literal["audio"]]
138
154
 
139
155
  url: Required[str]
@@ -146,6 +162,8 @@ ContentObjectData: TypeAlias = Union[
146
162
 
147
163
 
148
164
  class ContentObject(TypedDict, total=False):
165
+ """Object"""
166
+
149
167
  data: Required[Dict[str, ContentObjectData]]
150
168
  """Values in the object. Can be mixed content types."""
151
169
 
@@ -32,6 +32,8 @@ __all__ = [
32
32
 
33
33
 
34
34
  class AuthorBlock(BaseModel):
35
+ """Block or suspension details, if applicable. Null if the author is enabled."""
36
+
35
37
  reason: Optional[str] = None
36
38
  """The moderators reason why the author was blocked or suspended."""
37
39
 
@@ -48,6 +50,11 @@ class AuthorTrustLevel(BaseModel):
48
50
 
49
51
 
50
52
  class Author(BaseModel):
53
+ """The author of the content if your account has authors enabled.
54
+
55
+ Requires you to send authorId when submitting content.
56
+ """
57
+
51
58
  id: str
52
59
  """Author ID in Moderation API"""
53
60
 
@@ -64,6 +71,8 @@ class Author(BaseModel):
64
71
 
65
72
 
66
73
  class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObjectContentItemText(BaseModel):
74
+ """Text"""
75
+
67
76
  text: str
68
77
  """The content text"""
69
78
 
@@ -71,6 +80,8 @@ class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObj
71
80
 
72
81
 
73
82
  class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObjectContentItemImage(BaseModel):
83
+ """Image"""
84
+
74
85
  type: Literal["image"]
75
86
 
76
87
  url: str
@@ -78,6 +89,8 @@ class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObj
78
89
 
79
90
 
80
91
  class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObjectContentItemVideo(BaseModel):
92
+ """Video"""
93
+
81
94
  type: Literal["video"]
82
95
 
83
96
  url: str
@@ -85,6 +98,8 @@ class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObj
85
98
 
86
99
 
87
100
  class ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObjectContentItemAudio(BaseModel):
101
+ """Audio"""
102
+
88
103
  type: Literal["audio"]
89
104
 
90
105
  url: str
@@ -100,6 +115,8 @@ ContentModifiedModifiedNestedObjectContentContentModifiedModifiedNestedObjectCon
100
115
 
101
116
 
102
117
  class Content(BaseModel):
118
+ """Potentially modified content."""
119
+
103
120
  id: str
104
121
  """The unique identifier for the content.
105
122
 
@@ -119,6 +136,8 @@ class Content(BaseModel):
119
136
 
120
137
 
121
138
  class Evaluation(BaseModel):
139
+ """The evaluation of the content after running the channel policies."""
140
+
122
141
  flag_probability: float
123
142
  """The probability that the content should be flagged."""
124
143
 
@@ -136,6 +155,8 @@ class Evaluation(BaseModel):
136
155
 
137
156
 
138
157
  class InsightSentimentInsight(BaseModel):
158
+ """Sentiment insight"""
159
+
139
160
  id: Literal["sentiment"]
140
161
 
141
162
  probability: float
@@ -146,6 +167,8 @@ class InsightSentimentInsight(BaseModel):
146
167
 
147
168
 
148
169
  class InsightLanguageInsight(BaseModel):
170
+ """Language insight"""
171
+
149
172
  id: Literal["language"]
150
173
 
151
174
  probability: float
@@ -159,6 +182,8 @@ Insight: TypeAlias = Union[InsightSentimentInsight, InsightLanguageInsight]
159
182
 
160
183
 
161
184
  class Meta(BaseModel):
185
+ """Metadata about the moderation request"""
186
+
162
187
  channel_key: str
163
188
  """The unique key of the channel where the content was handled.
164
189
 
@@ -183,6 +208,8 @@ class PolicyClassifierOutputLabel(BaseModel):
183
208
 
184
209
 
185
210
  class PolicyClassifierOutput(BaseModel):
211
+ """Classifier policy."""
212
+
186
213
  id: str
187
214
  """The unique identifier for the classifier output."""
188
215
 
@@ -207,6 +234,8 @@ class PolicyEntityMatcherOutputMatch(BaseModel):
207
234
 
208
235
 
209
236
  class PolicyEntityMatcherOutput(BaseModel):
237
+ """Entity matcher policy."""
238
+
210
239
  id: str
211
240
 
212
241
  flagged: bool
@@ -224,6 +253,8 @@ Policy: TypeAlias = Union[PolicyClassifierOutput, PolicyEntityMatcherOutput]
224
253
 
225
254
 
226
255
  class Recommendation(BaseModel):
256
+ """The recommendation for the content based on the evaluation."""
257
+
227
258
  action: Literal["review", "allow", "reject"]
228
259
  """The action to take based on the recommendation"""
229
260
 
@@ -8,6 +8,8 @@ __all__ = ["WordlistGetEmbeddingStatusResponse"]
8
8
 
9
9
 
10
10
  class WordlistGetEmbeddingStatusResponse(BaseModel):
11
+ """Embedding status details"""
12
+
11
13
  progress: float
12
14
  """Percentage of words that have been embedded (0-100)"""
13
15
 
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.0.0"
3
- }
File without changes
File without changes