elasticsearch 9.2.0__py3-none-any.whl → 9.3.0__py3-none-any.whl

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 (125) hide show
  1. elasticsearch/_async/client/__init__.py +108 -85
  2. elasticsearch/_async/client/async_search.py +7 -6
  3. elasticsearch/_async/client/autoscaling.py +15 -4
  4. elasticsearch/_async/client/cat.py +203 -10
  5. elasticsearch/_async/client/ccr.py +10 -10
  6. elasticsearch/_async/client/cluster.py +98 -66
  7. elasticsearch/_async/client/connector.py +42 -41
  8. elasticsearch/_async/client/dangling_indices.py +8 -12
  9. elasticsearch/_async/client/enrich.py +10 -10
  10. elasticsearch/_async/client/eql.py +17 -16
  11. elasticsearch/_async/client/esql.py +173 -24
  12. elasticsearch/_async/client/features.py +6 -6
  13. elasticsearch/_async/client/fleet.py +8 -8
  14. elasticsearch/_async/client/graph.py +3 -3
  15. elasticsearch/_async/client/ilm.py +18 -18
  16. elasticsearch/_async/client/indices.py +564 -149
  17. elasticsearch/_async/client/inference.py +374 -64
  18. elasticsearch/_async/client/ingest.py +9 -9
  19. elasticsearch/_async/client/license.py +5 -7
  20. elasticsearch/_async/client/logstash.py +4 -4
  21. elasticsearch/_async/client/migration.py +6 -6
  22. elasticsearch/_async/client/ml.py +132 -88
  23. elasticsearch/_async/client/monitoring.py +4 -3
  24. elasticsearch/_async/client/nodes.py +182 -20
  25. elasticsearch/_async/client/project.py +13 -4
  26. elasticsearch/_async/client/query_rules.py +16 -16
  27. elasticsearch/_async/client/rollup.py +21 -21
  28. elasticsearch/_async/client/search_application.py +19 -19
  29. elasticsearch/_async/client/searchable_snapshots.py +10 -10
  30. elasticsearch/_async/client/security.py +34 -10
  31. elasticsearch/_async/client/shutdown.py +15 -4
  32. elasticsearch/_async/client/simulate.py +4 -4
  33. elasticsearch/_async/client/slm.py +17 -17
  34. elasticsearch/_async/client/snapshot.py +21 -21
  35. elasticsearch/_async/client/sql.py +17 -16
  36. elasticsearch/_async/client/streams.py +6 -7
  37. elasticsearch/_async/client/synonyms.py +10 -10
  38. elasticsearch/_async/client/tasks.py +8 -8
  39. elasticsearch/_async/client/text_structure.py +16 -12
  40. elasticsearch/_async/client/transform.py +51 -12
  41. elasticsearch/_async/client/utils.py +4 -2
  42. elasticsearch/_async/client/watcher.py +26 -26
  43. elasticsearch/_async/client/xpack.py +6 -5
  44. elasticsearch/_sync/client/__init__.py +110 -85
  45. elasticsearch/_sync/client/async_search.py +7 -6
  46. elasticsearch/_sync/client/autoscaling.py +15 -4
  47. elasticsearch/_sync/client/cat.py +203 -10
  48. elasticsearch/_sync/client/ccr.py +10 -10
  49. elasticsearch/_sync/client/cluster.py +98 -66
  50. elasticsearch/_sync/client/connector.py +42 -41
  51. elasticsearch/_sync/client/dangling_indices.py +8 -12
  52. elasticsearch/_sync/client/enrich.py +10 -10
  53. elasticsearch/_sync/client/eql.py +17 -16
  54. elasticsearch/_sync/client/esql.py +173 -24
  55. elasticsearch/_sync/client/features.py +6 -6
  56. elasticsearch/_sync/client/fleet.py +8 -8
  57. elasticsearch/_sync/client/graph.py +3 -3
  58. elasticsearch/_sync/client/ilm.py +18 -18
  59. elasticsearch/_sync/client/indices.py +564 -149
  60. elasticsearch/_sync/client/inference.py +374 -64
  61. elasticsearch/_sync/client/ingest.py +9 -9
  62. elasticsearch/_sync/client/license.py +5 -7
  63. elasticsearch/_sync/client/logstash.py +4 -4
  64. elasticsearch/_sync/client/migration.py +6 -6
  65. elasticsearch/_sync/client/ml.py +132 -88
  66. elasticsearch/_sync/client/monitoring.py +4 -3
  67. elasticsearch/_sync/client/nodes.py +182 -20
  68. elasticsearch/_sync/client/project.py +13 -4
  69. elasticsearch/_sync/client/project_routing.py +264 -0
  70. elasticsearch/_sync/client/query_rules.py +16 -16
  71. elasticsearch/_sync/client/rollup.py +21 -21
  72. elasticsearch/_sync/client/search_application.py +19 -19
  73. elasticsearch/_sync/client/searchable_snapshots.py +10 -10
  74. elasticsearch/_sync/client/security.py +34 -10
  75. elasticsearch/_sync/client/shutdown.py +15 -4
  76. elasticsearch/_sync/client/simulate.py +4 -4
  77. elasticsearch/_sync/client/slm.py +17 -17
  78. elasticsearch/_sync/client/snapshot.py +21 -21
  79. elasticsearch/_sync/client/sql.py +17 -16
  80. elasticsearch/_sync/client/streams.py +6 -7
  81. elasticsearch/_sync/client/synonyms.py +10 -10
  82. elasticsearch/_sync/client/tasks.py +8 -8
  83. elasticsearch/_sync/client/text_structure.py +16 -12
  84. elasticsearch/_sync/client/transform.py +51 -12
  85. elasticsearch/_sync/client/utils.py +16 -2
  86. elasticsearch/_sync/client/watcher.py +26 -26
  87. elasticsearch/_sync/client/xpack.py +6 -5
  88. elasticsearch/_version.py +2 -2
  89. elasticsearch/dsl/__init__.py +4 -0
  90. elasticsearch/dsl/_async/document.py +4 -5
  91. elasticsearch/dsl/_async/index.py +1 -1
  92. elasticsearch/dsl/_async/search.py +2 -3
  93. elasticsearch/dsl/_sync/document.py +4 -5
  94. elasticsearch/dsl/_sync/index.py +1 -1
  95. elasticsearch/dsl/_sync/search.py +2 -3
  96. elasticsearch/dsl/aggs.py +9 -9
  97. elasticsearch/dsl/async_connections.py +1 -2
  98. elasticsearch/dsl/connections.py +1 -2
  99. elasticsearch/dsl/document_base.py +1 -1
  100. elasticsearch/dsl/field.py +90 -6
  101. elasticsearch/dsl/pydantic.py +1 -1
  102. elasticsearch/dsl/query.py +25 -2
  103. elasticsearch/dsl/response/__init__.py +2 -0
  104. elasticsearch/dsl/serializer.py +1 -2
  105. elasticsearch/dsl/types.py +63 -8
  106. elasticsearch/dsl/utils.py +12 -4
  107. elasticsearch/esql/esql.py +1 -1
  108. elasticsearch/esql/functions.py +926 -252
  109. elasticsearch/helpers/__init__.py +2 -0
  110. elasticsearch/helpers/actions.py +21 -0
  111. elasticsearch/helpers/vectorstore/__init__.py +7 -7
  112. elasticsearch/helpers/vectorstore/_async/_utils.py +1 -1
  113. elasticsearch/helpers/vectorstore/_async/embedding_service.py +2 -2
  114. elasticsearch/helpers/vectorstore/_async/strategies.py +3 -3
  115. elasticsearch/helpers/vectorstore/_async/vectorstore.py +8 -5
  116. elasticsearch/helpers/vectorstore/_sync/_utils.py +1 -1
  117. elasticsearch/helpers/vectorstore/_sync/embedding_service.py +2 -2
  118. elasticsearch/helpers/vectorstore/_sync/strategies.py +3 -3
  119. elasticsearch/helpers/vectorstore/_sync/vectorstore.py +8 -5
  120. {elasticsearch-9.2.0.dist-info → elasticsearch-9.3.0.dist-info}/METADATA +2 -1
  121. elasticsearch-9.3.0.dist-info/RECORD +169 -0
  122. {elasticsearch-9.2.0.dist-info → elasticsearch-9.3.0.dist-info}/WHEEL +1 -1
  123. elasticsearch-9.2.0.dist-info/RECORD +0 -168
  124. {elasticsearch-9.2.0.dist-info → elasticsearch-9.3.0.dist-info}/licenses/LICENSE +0 -0
  125. {elasticsearch-9.2.0.dist-info → elasticsearch-9.3.0.dist-info}/licenses/NOTICE +0 -0
@@ -85,6 +85,45 @@ class TransformClient(NamespacedClient):
85
85
  path_parts=__path_parts,
86
86
  )
87
87
 
88
+ @_rewrite_parameters()
89
+ def get_node_stats(
90
+ self,
91
+ *,
92
+ error_trace: t.Optional[bool] = None,
93
+ filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
94
+ human: t.Optional[bool] = None,
95
+ pretty: t.Optional[bool] = None,
96
+ ) -> ObjectApiResponse[t.Any]:
97
+ """
98
+ .. raw:: html
99
+
100
+ <p>Get node stats.</p>
101
+ <p>Get per-node information about transform usage.</p>
102
+
103
+
104
+ `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-get-node-stats>`_
105
+ """
106
+ __path_parts: t.Dict[str, str] = {}
107
+ __path = "/_transform/_node_stats"
108
+ __query: t.Dict[str, t.Any] = {}
109
+ if error_trace is not None:
110
+ __query["error_trace"] = error_trace
111
+ if filter_path is not None:
112
+ __query["filter_path"] = filter_path
113
+ if human is not None:
114
+ __query["human"] = human
115
+ if pretty is not None:
116
+ __query["pretty"] = pretty
117
+ __headers = {"accept": "application/json"}
118
+ return self.perform_request( # type: ignore[return-value]
119
+ "GET",
120
+ __path,
121
+ params=__query,
122
+ headers=__headers,
123
+ endpoint_id="transform.get_node_stats",
124
+ path_parts=__path_parts,
125
+ )
126
+
88
127
  @_rewrite_parameters(
89
128
  parameter_aliases={"from": "from_"},
90
129
  )
@@ -104,8 +143,8 @@ class TransformClient(NamespacedClient):
104
143
  """
105
144
  .. raw:: html
106
145
 
107
- <p>Get transforms.
108
- Get configuration information for transforms.</p>
146
+ <p>Get transforms.</p>
147
+ <p>Get configuration information for transforms.</p>
109
148
 
110
149
 
111
150
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-get-transform>`_
@@ -262,8 +301,8 @@ class TransformClient(NamespacedClient):
262
301
  """
263
302
  .. raw:: html
264
303
 
265
- <p>Preview a transform.
266
- Generates a preview of the results that you will get when you create a transform with the same configuration.</p>
304
+ <p>Preview a transform.</p>
305
+ <p>Generates a preview of the results that you will get when you create a transform with the same configuration.</p>
267
306
  <p>It returns a maximum of 100 results. The calculations are based on all the current data in the source index. It also
268
307
  generates a list of mappings and settings for the destination index. These values are determined based on the field
269
308
  types of the source index and the transform aggregations.</p>
@@ -386,8 +425,8 @@ class TransformClient(NamespacedClient):
386
425
  """
387
426
  .. raw:: html
388
427
 
389
- <p>Create a transform.
390
- Creates a transform.</p>
428
+ <p>Create a transform.</p>
429
+ <p>Creates a transform.</p>
391
430
  <p>A transform copies data from source indices, transforms it, and persists it into an entity-centric destination index. You can also think of the destination index as a two-dimensional tabular data structure (known as
392
431
  a data frame). The ID for each document in the data frame is generated from a hash of the entity, so there is a
393
432
  unique row per entity.</p>
@@ -616,8 +655,8 @@ class TransformClient(NamespacedClient):
616
655
  """
617
656
  .. raw:: html
618
657
 
619
- <p>Set upgrade_mode for transform indices.
620
- Sets a cluster wide upgrade_mode setting that prepares transform
658
+ <p>Set upgrade_mode for transform indices.</p>
659
+ <p>Sets a cluster wide upgrade_mode setting that prepares transform
621
660
  indices for an upgrade.
622
661
  When upgrading your cluster, in some circumstances you must restart your
623
662
  nodes and reindex your transform indices. In those circumstances,
@@ -749,8 +788,8 @@ class TransformClient(NamespacedClient):
749
788
  """
750
789
  .. raw:: html
751
790
 
752
- <p>Stop transforms.
753
- Stops one or more transforms.</p>
791
+ <p>Stop transforms.</p>
792
+ <p>Stops one or more transforms.</p>
754
793
 
755
794
 
756
795
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-stop-transform>`_
@@ -846,8 +885,8 @@ class TransformClient(NamespacedClient):
846
885
  """
847
886
  .. raw:: html
848
887
 
849
- <p>Update a transform.
850
- Updates certain properties of a transform.</p>
888
+ <p>Update a transform.</p>
889
+ <p>Updates certain properties of a transform.</p>
851
890
  <p>All updated properties except <code>description</code> do not take effect until after the transform starts the next checkpoint,
852
891
  thus there is data consistency in each checkpoint. To use this API, you must have <code>read</code> and <code>view_index_metadata</code>
853
892
  privileges for the source indices. You must also have <code>index</code> and <code>read</code> privileges for the destination index. When
@@ -79,6 +79,12 @@ class Stability(Enum):
79
79
  EXPERIMENTAL = auto()
80
80
 
81
81
 
82
+ class Visibility(Enum):
83
+ PUBLIC = auto()
84
+ FEATURE_FLAG = auto()
85
+ PRIVATE = auto()
86
+
87
+
82
88
  _TYPE_HOSTS = Union[
83
89
  str, Sequence[Union[str, Mapping[str, Union[str, int]], NodeConfig]]
84
90
  ]
@@ -419,15 +425,23 @@ def _rewrite_parameters(
419
425
  return wrapper
420
426
 
421
427
 
422
- def _stability_warning(
428
+ def _availability_warning(
423
429
  stability: Stability,
430
+ visibility: Visibility = Visibility.PUBLIC,
424
431
  version: Optional[str] = None,
425
432
  message: Optional[str] = None,
426
433
  ) -> Callable[[F], F]:
427
434
  def wrapper(api: F) -> F:
428
435
  @wraps(api)
429
436
  def wrapped(*args: Any, **kwargs: Any) -> Any:
430
- if stability == Stability.BETA:
437
+ if visibility == Visibility.PRIVATE:
438
+ warnings.warn(
439
+ "This API is private. "
440
+ "Private APIs are not subject to the support SLA of official GA features.",
441
+ category=GeneralAvailabilityWarning,
442
+ stacklevel=warn_stacklevel(),
443
+ )
444
+ elif stability == Stability.BETA:
431
445
  warnings.warn(
432
446
  "This API is in beta and is subject to change. "
433
447
  "The design and code is less mature than official GA features and is being provided as-is with no warranties. "
@@ -39,8 +39,8 @@ class WatcherClient(NamespacedClient):
39
39
  """
40
40
  .. raw:: html
41
41
 
42
- <p>Acknowledge a watch.
43
- Acknowledging a watch enables you to manually throttle the execution of the watch's actions.</p>
42
+ <p>Acknowledge a watch.</p>
43
+ <p>Acknowledging a watch enables you to manually throttle the execution of the watch's actions.</p>
44
44
  <p>The acknowledgement state of an action is stored in the <code>status.actions.&lt;id&gt;.ack.state</code> structure.</p>
45
45
  <p>IMPORTANT: If the specified watch is currently being executed, this API will return an error
46
46
  The reason for this behavior is to prevent overwriting the watch status from a watch execution.</p>
@@ -101,8 +101,8 @@ class WatcherClient(NamespacedClient):
101
101
  """
102
102
  .. raw:: html
103
103
 
104
- <p>Activate a watch.
105
- A watch can be either active or inactive.</p>
104
+ <p>Activate a watch.</p>
105
+ <p>A watch can be either active or inactive.</p>
106
106
 
107
107
 
108
108
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-watcher-activate-watch>`_
@@ -145,8 +145,8 @@ class WatcherClient(NamespacedClient):
145
145
  """
146
146
  .. raw:: html
147
147
 
148
- <p>Deactivate a watch.
149
- A watch can be either active or inactive.</p>
148
+ <p>Deactivate a watch.</p>
149
+ <p>A watch can be either active or inactive.</p>
150
150
 
151
151
 
152
152
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-watcher-deactivate-watch>`_
@@ -189,8 +189,8 @@ class WatcherClient(NamespacedClient):
189
189
  """
190
190
  .. raw:: html
191
191
 
192
- <p>Delete a watch.
193
- When the watch is removed, the document representing the watch in the <code>.watches</code> index is gone and it will never be run again.</p>
192
+ <p>Delete a watch.</p>
193
+ <p>When the watch is removed, the document representing the watch in the <code>.watches</code> index is gone and it will never be run again.</p>
194
194
  <p>Deleting a watch does not delete any watch execution records related to this watch from the watch history.</p>
195
195
  <p>IMPORTANT: Deleting a watch must be done by using only this API.
196
196
  Do not delete the watch directly from the <code>.watches</code> index using the Elasticsearch delete document API
@@ -266,8 +266,8 @@ class WatcherClient(NamespacedClient):
266
266
  """
267
267
  .. raw:: html
268
268
 
269
- <p>Run a watch.
270
- This API can be used to force execution of the watch outside of its triggering logic or to simulate the watch execution for debugging purposes.</p>
269
+ <p>Run a watch.</p>
270
+ <p>This API can be used to force execution of the watch outside of its triggering logic or to simulate the watch execution for debugging purposes.</p>
271
271
  <p>For testing and debugging purposes, you also have fine-grained control on how the watch runs.
272
272
  You can run the watch without running all of its actions or alternatively by simulating them.
273
273
  You can also force execution by ignoring the watch condition and control whether a watch record would be written to the watch history after it runs.</p>
@@ -362,8 +362,8 @@ class WatcherClient(NamespacedClient):
362
362
  """
363
363
  .. raw:: html
364
364
 
365
- <p>Get Watcher index settings.
366
- Get settings for the Watcher internal index (<code>.watches</code>).
365
+ <p>Get Watcher index settings.</p>
366
+ <p>Get settings for the Watcher internal index (<code>.watches</code>).
367
367
  Only a subset of settings are shown, for example <code>index.auto_expand_replicas</code> and <code>index.number_of_replicas</code>.</p>
368
368
 
369
369
 
@@ -476,8 +476,8 @@ class WatcherClient(NamespacedClient):
476
476
  """
477
477
  .. raw:: html
478
478
 
479
- <p>Create or update a watch.
480
- When a watch is registered, a new document that represents the watch is added to the <code>.watches</code> index and its trigger is immediately registered with the relevant trigger engine.
479
+ <p>Create or update a watch.</p>
480
+ <p>When a watch is registered, a new document that represents the watch is added to the <code>.watches</code> index and its trigger is immediately registered with the relevant trigger engine.
481
481
  Typically for the <code>schedule</code> trigger, the scheduler is the trigger engine.</p>
482
482
  <p>IMPORTANT: You must use Kibana or this API to create a watch.
483
483
  Do not add a watch directly to the <code>.watches</code> index by using the Elasticsearch index API.
@@ -494,9 +494,9 @@ class WatcherClient(NamespacedClient):
494
494
  :param active: The initial state of the watch. The default value is `true`, which
495
495
  means the watch is active by default.
496
496
  :param condition: The condition that defines if the actions should be run.
497
- :param if_primary_term: only update the watch if the last operation that has
497
+ :param if_primary_term: Only update the watch if the last operation that has
498
498
  changed the watch has the specified primary term
499
- :param if_seq_no: only update the watch if the last operation that has changed
499
+ :param if_seq_no: Only update the watch if the last operation that has changed
500
500
  the watch has the specified sequence number
501
501
  :param input: The input that defines the input that loads the data for the watch.
502
502
  :param metadata: Metadata JSON that will be copied into the history entries.
@@ -591,8 +591,8 @@ class WatcherClient(NamespacedClient):
591
591
  """
592
592
  .. raw:: html
593
593
 
594
- <p>Query watches.
595
- Get all registered watches in a paginated manner and optionally filter watches by a query.</p>
594
+ <p>Query watches.</p>
595
+ <p>Get all registered watches in a paginated manner and optionally filter watches by a query.</p>
596
596
  <p>Note that only the <code>_id</code> and <code>metadata.*</code> fields are queryable or sortable.</p>
597
597
 
598
598
 
@@ -667,8 +667,8 @@ class WatcherClient(NamespacedClient):
667
667
  """
668
668
  .. raw:: html
669
669
 
670
- <p>Start the watch service.
671
- Start the Watcher service if it is not already running.</p>
670
+ <p>Start the watch service.</p>
671
+ <p>Start the Watcher service if it is not already running.</p>
672
672
 
673
673
 
674
674
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-watcher-start>`_
@@ -732,8 +732,8 @@ class WatcherClient(NamespacedClient):
732
732
  """
733
733
  .. raw:: html
734
734
 
735
- <p>Get Watcher statistics.
736
- This API always returns basic metrics.
735
+ <p>Get Watcher statistics.</p>
736
+ <p>This API always returns basic metrics.
737
737
  You retrieve more metrics by using the metric parameter.</p>
738
738
 
739
739
 
@@ -784,8 +784,8 @@ class WatcherClient(NamespacedClient):
784
784
  """
785
785
  .. raw:: html
786
786
 
787
- <p>Stop the watch service.
788
- Stop the Watcher service if it is running.</p>
787
+ <p>Stop the watch service.</p>
788
+ <p>Stop the Watcher service if it is running.</p>
789
789
 
790
790
 
791
791
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-watcher-stop>`_
@@ -840,8 +840,8 @@ class WatcherClient(NamespacedClient):
840
840
  """
841
841
  .. raw:: html
842
842
 
843
- <p>Update Watcher index settings.
844
- Update settings for the Watcher internal index (<code>.watches</code>).
843
+ <p>Update Watcher index settings.</p>
844
+ <p>Update settings for the Watcher internal index (<code>.watches</code>).
845
845
  Only a subset of settings can be modified.
846
846
  This includes <code>index.auto_expand_replicas</code>, <code>index.number_of_replicas</code>, <code>index.routing.allocation.exclude.*</code>,
847
847
  <code>index.routing.allocation.include.*</code> and <code>index.routing.allocation.require.*</code>.
@@ -45,8 +45,8 @@ class XPackClient(NamespacedClient):
45
45
  """
46
46
  .. raw:: html
47
47
 
48
- <p>Get information.
49
- The information provided by the API includes:</p>
48
+ <p>Get information.</p>
49
+ <p>The information provided by the API includes:</p>
50
50
  <ul>
51
51
  <li>Build information including the build number and timestamp.</li>
52
52
  <li>License information about the currently installed license.</li>
@@ -56,7 +56,8 @@ class XPackClient(NamespacedClient):
56
56
 
57
57
  `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-info>`_
58
58
 
59
- :param accept_enterprise: If this param is used it must be set to true
59
+ :param accept_enterprise: If used, this otherwise ignored parameter must be set
60
+ to true
60
61
  :param categories: A comma-separated list of the information categories to include
61
62
  in the response. For example, `build,license,features`.
62
63
  """
@@ -98,8 +99,8 @@ class XPackClient(NamespacedClient):
98
99
  """
99
100
  .. raw:: html
100
101
 
101
- <p>Get usage information.
102
- Get information about the features that are currently enabled and available under the current license.
102
+ <p>Get usage information.</p>
103
+ <p>Get information about the features that are currently enabled and available under the current license.
103
104
  The API also provides some usage statistics.</p>
104
105
 
105
106
 
elasticsearch/_version.py CHANGED
@@ -15,5 +15,5 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
 
18
- __versionstr__ = "9.2.0"
19
- __es_specification_commit__ = "2f74c26e0a1d66c42232ce2830652c01e8717f00"
18
+ __versionstr__ = "9.3.0"
19
+ __es_specification_commit__ = "f051200486a5a1d415cc04f07f6bd150395d7661"
@@ -53,6 +53,7 @@ from .field import (
53
53
  DenseVector,
54
54
  Double,
55
55
  DoubleRange,
56
+ ExponentialHistogram,
56
57
  Field,
57
58
  Flattened,
58
59
  Float,
@@ -73,6 +74,7 @@ from .field import (
73
74
  MatchOnlyText,
74
75
  Murmur3,
75
76
  Nested,
77
+ NumpyDenseVector,
76
78
  Object,
77
79
  Passthrough,
78
80
  Percolator,
@@ -156,6 +158,7 @@ __all__ = [
156
158
  "E",
157
159
  "ElasticsearchDslException",
158
160
  "EmptySearch",
161
+ "ExponentialHistogram",
159
162
  "Facet",
160
163
  "FacetedResponse",
161
164
  "FacetedSearch",
@@ -189,6 +192,7 @@ __all__ = [
189
192
  "Murmur3",
190
193
  "Nested",
191
194
  "NestedFacet",
195
+ "NumpyDenseVector",
192
196
  "Object",
193
197
  "Passthrough",
194
198
  "Percolator",
@@ -31,9 +31,8 @@ from typing import (
31
31
 
32
32
  from typing_extensions import Self, dataclass_transform
33
33
 
34
- from elasticsearch.exceptions import NotFoundError, RequestError
35
- from elasticsearch.helpers import async_bulk
36
-
34
+ from ...exceptions import NotFoundError, RequestError
35
+ from ...helpers import async_bulk
37
36
  from .._async.index import AsyncIndex
38
37
  from ..async_connections import get_connection
39
38
  from ..document_base import DocumentBase, DocumentMeta, mapped_field
@@ -42,8 +41,8 @@ from ..utils import DOC_META_FIELDS, META_FIELDS, AsyncUsingType, merge
42
41
  from .search import AsyncSearch
43
42
 
44
43
  if TYPE_CHECKING:
45
- from elasticsearch import AsyncElasticsearch
46
- from elasticsearch.esql.esql import ESQLBase
44
+ from ... import AsyncElasticsearch
45
+ from ...esql.esql import ESQLBase
47
46
 
48
47
 
49
48
  class AsyncIndexMeta(DocumentMeta):
@@ -30,7 +30,7 @@ from .update_by_query import AsyncUpdateByQuery
30
30
  if TYPE_CHECKING:
31
31
  from elastic_transport import ObjectApiResponse
32
32
 
33
- from elasticsearch import AsyncElasticsearch
33
+ from ... import AsyncElasticsearch
34
34
 
35
35
 
36
36
  class AsyncIndexTemplate:
@@ -29,9 +29,8 @@ from typing import (
29
29
 
30
30
  from typing_extensions import Self
31
31
 
32
- from elasticsearch.exceptions import ApiError
33
- from elasticsearch.helpers import async_scan
34
-
32
+ from ...exceptions import ApiError
33
+ from ...helpers import async_scan
35
34
  from ..async_connections import get_connection
36
35
  from ..response import Response
37
36
  from ..search_base import MultiSearchBase, SearchBase
@@ -31,9 +31,8 @@ from typing import (
31
31
 
32
32
  from typing_extensions import Self, dataclass_transform
33
33
 
34
- from elasticsearch.exceptions import NotFoundError, RequestError
35
- from elasticsearch.helpers import bulk
36
-
34
+ from ...exceptions import NotFoundError, RequestError
35
+ from ...helpers import bulk
37
36
  from .._sync.index import Index
38
37
  from ..connections import get_connection
39
38
  from ..document_base import DocumentBase, DocumentMeta, mapped_field
@@ -42,8 +41,8 @@ from ..utils import DOC_META_FIELDS, META_FIELDS, UsingType, merge
42
41
  from .search import Search
43
42
 
44
43
  if TYPE_CHECKING:
45
- from elasticsearch import Elasticsearch
46
- from elasticsearch.esql.esql import ESQLBase
44
+ from ... import Elasticsearch
45
+ from ...esql.esql import ESQLBase
47
46
 
48
47
 
49
48
  class IndexMeta(DocumentMeta):
@@ -30,7 +30,7 @@ from .update_by_query import UpdateByQuery
30
30
  if TYPE_CHECKING:
31
31
  from elastic_transport import ObjectApiResponse
32
32
 
33
- from elasticsearch import Elasticsearch
33
+ from ... import Elasticsearch
34
34
 
35
35
 
36
36
  class IndexTemplate:
@@ -28,9 +28,8 @@ from typing import (
28
28
 
29
29
  from typing_extensions import Self
30
30
 
31
- from elasticsearch.exceptions import ApiError
32
- from elasticsearch.helpers import scan
33
-
31
+ from ...exceptions import ApiError
32
+ from ...helpers import scan
34
33
  from ..connections import get_connection
35
34
  from ..response import Response
36
35
  from ..search_base import MultiSearchBase, SearchBase
elasticsearch/dsl/aggs.py CHANGED
@@ -1495,7 +1495,7 @@ class GeohashGrid(Bucket[_R]):
1495
1495
  "DefaultType",
1496
1496
  ] = DEFAULT,
1497
1497
  field: Union[str, "InstrumentedField", "DefaultType"] = DEFAULT,
1498
- precision: Union[float, str, "DefaultType"] = DEFAULT,
1498
+ precision: Union[int, str, "DefaultType"] = DEFAULT,
1499
1499
  shard_size: Union[int, "DefaultType"] = DEFAULT,
1500
1500
  size: Union[int, "DefaultType"] = DEFAULT,
1501
1501
  **kwargs: Any,
@@ -1516,9 +1516,9 @@ class GeoLine(Agg[_R]):
1516
1516
  ordered by the chosen sort field.
1517
1517
 
1518
1518
  :arg point: (required) The name of the geo_point field.
1519
- :arg sort: (required) The name of the numeric field to use as the sort
1520
- key for ordering the points. When the `geo_line` aggregation is
1521
- nested inside a `time_series` aggregation, this field defaults to
1519
+ :arg sort: The name of the numeric field to use as the sort key for
1520
+ ordering the points. When the `geo_line` aggregation is nested
1521
+ inside a `time_series` aggregation, this field defaults to
1522
1522
  `@timestamp`, and any other value will result in error.
1523
1523
  :arg include_sort: When `true`, returns an additional array of the
1524
1524
  sort values in the feature properties.
@@ -1579,7 +1579,7 @@ class GeotileGrid(Bucket[_R]):
1579
1579
  self,
1580
1580
  *,
1581
1581
  field: Union[str, "InstrumentedField", "DefaultType"] = DEFAULT,
1582
- precision: Union[float, "DefaultType"] = DEFAULT,
1582
+ precision: Union[int, "DefaultType"] = DEFAULT,
1583
1583
  shard_size: Union[int, "DefaultType"] = DEFAULT,
1584
1584
  size: Union[int, "DefaultType"] = DEFAULT,
1585
1585
  bounds: Union[
@@ -1855,9 +1855,9 @@ class Inference(Pipeline[_R]):
1855
1855
  class Line(Agg[_R]):
1856
1856
  """
1857
1857
  :arg point: (required) The name of the geo_point field.
1858
- :arg sort: (required) The name of the numeric field to use as the sort
1859
- key for ordering the points. When the `geo_line` aggregation is
1860
- nested inside a `time_series` aggregation, this field defaults to
1858
+ :arg sort: The name of the numeric field to use as the sort key for
1859
+ ordering the points. When the `geo_line` aggregation is nested
1860
+ inside a `time_series` aggregation, this field defaults to
1861
1861
  `@timestamp`, and any other value will result in error.
1862
1862
  :arg include_sort: When `true`, returns an additional array of the
1863
1863
  sort values in the feature properties.
@@ -2680,7 +2680,7 @@ class Percentiles(Agg[_R]):
2680
2680
  self,
2681
2681
  *,
2682
2682
  keyed: Union[bool, "DefaultType"] = DEFAULT,
2683
- percents: Union[Sequence[float], "DefaultType"] = DEFAULT,
2683
+ percents: Union[float, Sequence[float], "DefaultType"] = DEFAULT,
2684
2684
  hdr: Union["types.HdrMethod", Dict[str, Any], "DefaultType"] = DEFAULT,
2685
2685
  tdigest: Union["types.TDigest", Dict[str, Any], "DefaultType"] = DEFAULT,
2686
2686
  format: Union[str, "DefaultType"] = DEFAULT,
@@ -17,8 +17,7 @@
17
17
 
18
18
  from typing import Type
19
19
 
20
- from elasticsearch import AsyncElasticsearch
21
-
20
+ from .. import AsyncElasticsearch
22
21
  from .connections import Connections
23
22
 
24
23
 
@@ -17,8 +17,7 @@
17
17
 
18
18
  from typing import Any, Dict, Generic, Type, TypeVar, Union
19
19
 
20
- from elasticsearch import Elasticsearch, __versionstr__
21
-
20
+ from .. import Elasticsearch, __versionstr__
22
21
  from .serializer import serializer
23
22
 
24
23
  _T = TypeVar("_T")
@@ -39,7 +39,7 @@ from typing_extensions import _AnnotatedAlias
39
39
  try:
40
40
  import annotationlib
41
41
  except ImportError:
42
- annotationlib = None
42
+ annotationlib = None # type: ignore[assignment]
43
43
 
44
44
  try:
45
45
  from types import UnionType