howler-client 2.4.0.dev302__tar.gz → 3.0.0.dev305__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 (30) hide show
  1. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/PKG-INFO +1 -1
  2. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/hit.py +12 -3
  3. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/pyproject.toml +1 -1
  4. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/LICENSE +0 -0
  5. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/README.md +0 -0
  6. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/__init__.py +0 -0
  7. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/client.py +0 -0
  8. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/common/__init__.py +0 -0
  9. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/common/dict_utils.py +0 -0
  10. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/common/utils.py +0 -0
  11. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/connection.py +0 -0
  12. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/logger.py +0 -0
  13. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/__init__.py +0 -0
  14. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/comment.py +0 -0
  15. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/help.py +0 -0
  16. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/__init__.py +0 -0
  17. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/chunk.py +0 -0
  18. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/facet.py +0 -0
  19. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/fields.py +0 -0
  20. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/grouped.py +0 -0
  21. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/histogram.py +0 -0
  22. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/stats.py +0 -0
  23. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/search/stream.py +0 -0
  24. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/user.py +0 -0
  25. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/v2/__init__.py +0 -0
  26. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/v2/case.py +0 -0
  27. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/v2/ingest.py +0 -0
  28. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/module/v2/search.py +0 -0
  29. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/utils/__init__.py +0 -0
  30. {howler_client-2.4.0.dev302 → howler_client-3.0.0.dev305}/howler_client/utils/json_encoders.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: howler-client
3
- Version: 2.4.0.dev302
3
+ Version: 3.0.0.dev305
4
4
  Summary: The Howler client library facilitates issuing requests to Howler
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -2,7 +2,7 @@ import json
2
2
  import sys
3
3
  import warnings
4
4
  from hashlib import sha256
5
- from typing import TYPE_CHECKING, Any, Literal
5
+ from typing import TYPE_CHECKING, Any, Literal, TypedDict
6
6
 
7
7
  from howler_client.common.dict_utils import flatten
8
8
  from howler_client.common.utils import ClientError, api_path
@@ -44,6 +44,14 @@ UPDATE_OPERATIONS = [
44
44
  ]
45
45
 
46
46
 
47
+ class CreateHitsResponse(TypedDict):
48
+ """Response returned after successfully creating one or more hits."""
49
+
50
+ valid: list[dict[str, Any]]
51
+ invalid: list[dict[str, Any]]
52
+ warnings: list[str]
53
+
54
+
47
55
  class Hit(object):
48
56
  "Operations pertaining to ingesting and interacting with Howler hits."
49
57
 
@@ -147,7 +155,7 @@ class Hit(object):
147
155
  self: Self,
148
156
  data: dict[str, Any] | list[dict[str, Any]],
149
157
  ignore_extra_values: bool = False,
150
- ):
158
+ ) -> CreateHitsResponse | None:
151
159
  """Create one or many hits using the howler schema.
152
160
 
153
161
  Args:
@@ -156,7 +164,8 @@ class Hit(object):
156
164
  Defaults to False.
157
165
 
158
166
  Returns:
159
- dict[str, list[dict[str, Any]]]: A list of valid and invalid hits
167
+ CreateHitsResponse | None: Created and invalid hits with warnings, or ``None`` when no
168
+ new hits are submitted (e.g., input is empty or all submitted hits already exist).
160
169
  """
161
170
  if not isinstance(data, list):
162
171
  data = [data]
@@ -91,7 +91,7 @@ suppress-none-returning = true
91
91
  [tool.poetry]
92
92
  package-mode = true
93
93
  name = "howler-client"
94
- version = "2.4.0.dev302"
94
+ version = "3.0.0.dev305"
95
95
  description = "The Howler client library facilitates issuing requests to Howler"
96
96
  authors = [
97
97
  "Canadian Centre for Cyber Security <howler@cyber.gc.ca>",