mlrun 1.7.1rc4__py3-none-any.whl → 1.8.0rc8__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.

Potentially problematic release.


This version of mlrun might be problematic. Click here for more details.

Files changed (257) hide show
  1. mlrun/__init__.py +23 -21
  2. mlrun/__main__.py +3 -3
  3. mlrun/alerts/alert.py +148 -14
  4. mlrun/artifacts/__init__.py +1 -2
  5. mlrun/artifacts/base.py +46 -12
  6. mlrun/artifacts/dataset.py +16 -16
  7. mlrun/artifacts/document.py +334 -0
  8. mlrun/artifacts/manager.py +15 -13
  9. mlrun/artifacts/model.py +66 -53
  10. mlrun/common/constants.py +7 -0
  11. mlrun/common/formatters/__init__.py +1 -0
  12. mlrun/common/formatters/feature_set.py +1 -0
  13. mlrun/common/formatters/function.py +1 -0
  14. mlrun/{model_monitoring/db/stores/base/__init__.py → common/formatters/model_endpoint.py} +16 -1
  15. mlrun/common/formatters/pipeline.py +1 -2
  16. mlrun/common/formatters/project.py +9 -0
  17. mlrun/common/model_monitoring/__init__.py +0 -5
  18. mlrun/common/model_monitoring/helpers.py +1 -29
  19. mlrun/common/runtimes/constants.py +1 -2
  20. mlrun/common/schemas/__init__.py +6 -2
  21. mlrun/common/schemas/alert.py +111 -19
  22. mlrun/common/schemas/api_gateway.py +3 -3
  23. mlrun/common/schemas/artifact.py +11 -7
  24. mlrun/common/schemas/auth.py +6 -4
  25. mlrun/common/schemas/background_task.py +7 -7
  26. mlrun/common/schemas/client_spec.py +2 -3
  27. mlrun/common/schemas/clusterization_spec.py +2 -2
  28. mlrun/common/schemas/common.py +53 -3
  29. mlrun/common/schemas/constants.py +15 -0
  30. mlrun/common/schemas/datastore_profile.py +1 -1
  31. mlrun/common/schemas/feature_store.py +9 -9
  32. mlrun/common/schemas/frontend_spec.py +4 -4
  33. mlrun/common/schemas/function.py +10 -10
  34. mlrun/common/schemas/hub.py +1 -1
  35. mlrun/common/schemas/k8s.py +3 -3
  36. mlrun/common/schemas/memory_reports.py +3 -3
  37. mlrun/common/schemas/model_monitoring/__init__.py +2 -1
  38. mlrun/common/schemas/model_monitoring/constants.py +66 -14
  39. mlrun/common/schemas/model_monitoring/grafana.py +1 -1
  40. mlrun/common/schemas/model_monitoring/model_endpoints.py +91 -147
  41. mlrun/common/schemas/notification.py +24 -3
  42. mlrun/common/schemas/object.py +1 -1
  43. mlrun/common/schemas/pagination.py +4 -4
  44. mlrun/common/schemas/partition.py +137 -0
  45. mlrun/common/schemas/pipeline.py +2 -2
  46. mlrun/common/schemas/project.py +25 -17
  47. mlrun/common/schemas/runs.py +2 -2
  48. mlrun/common/schemas/runtime_resource.py +5 -5
  49. mlrun/common/schemas/schedule.py +1 -1
  50. mlrun/common/schemas/secret.py +1 -1
  51. mlrun/common/schemas/tag.py +3 -3
  52. mlrun/common/schemas/workflow.py +5 -5
  53. mlrun/config.py +67 -10
  54. mlrun/data_types/__init__.py +0 -2
  55. mlrun/data_types/infer.py +3 -1
  56. mlrun/data_types/spark.py +2 -1
  57. mlrun/datastore/__init__.py +0 -2
  58. mlrun/datastore/alibaba_oss.py +4 -1
  59. mlrun/datastore/azure_blob.py +4 -1
  60. mlrun/datastore/base.py +12 -4
  61. mlrun/datastore/datastore.py +9 -3
  62. mlrun/datastore/datastore_profile.py +79 -20
  63. mlrun/datastore/dbfs_store.py +4 -1
  64. mlrun/datastore/filestore.py +4 -1
  65. mlrun/datastore/google_cloud_storage.py +4 -1
  66. mlrun/datastore/hdfs.py +4 -1
  67. mlrun/datastore/inmem.py +4 -1
  68. mlrun/datastore/redis.py +4 -1
  69. mlrun/datastore/s3.py +4 -1
  70. mlrun/datastore/sources.py +52 -51
  71. mlrun/datastore/store_resources.py +0 -2
  72. mlrun/datastore/targets.py +21 -21
  73. mlrun/datastore/utils.py +2 -2
  74. mlrun/datastore/v3io.py +4 -1
  75. mlrun/datastore/vectorstore.py +194 -0
  76. mlrun/datastore/wasbfs/fs.py +13 -12
  77. mlrun/db/base.py +208 -82
  78. mlrun/db/factory.py +0 -3
  79. mlrun/db/httpdb.py +1237 -386
  80. mlrun/db/nopdb.py +201 -74
  81. mlrun/errors.py +2 -2
  82. mlrun/execution.py +136 -50
  83. mlrun/feature_store/__init__.py +0 -2
  84. mlrun/feature_store/api.py +41 -40
  85. mlrun/feature_store/common.py +9 -9
  86. mlrun/feature_store/feature_set.py +20 -18
  87. mlrun/feature_store/feature_vector.py +27 -24
  88. mlrun/feature_store/retrieval/base.py +14 -9
  89. mlrun/feature_store/retrieval/job.py +2 -1
  90. mlrun/feature_store/steps.py +2 -2
  91. mlrun/features.py +30 -13
  92. mlrun/frameworks/__init__.py +1 -2
  93. mlrun/frameworks/_common/__init__.py +1 -2
  94. mlrun/frameworks/_common/artifacts_library.py +2 -2
  95. mlrun/frameworks/_common/mlrun_interface.py +10 -6
  96. mlrun/frameworks/_common/model_handler.py +29 -27
  97. mlrun/frameworks/_common/producer.py +3 -1
  98. mlrun/frameworks/_dl_common/__init__.py +1 -2
  99. mlrun/frameworks/_dl_common/loggers/__init__.py +1 -2
  100. mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +4 -4
  101. mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +3 -3
  102. mlrun/frameworks/_ml_common/__init__.py +1 -2
  103. mlrun/frameworks/_ml_common/loggers/__init__.py +1 -2
  104. mlrun/frameworks/_ml_common/model_handler.py +21 -21
  105. mlrun/frameworks/_ml_common/plans/__init__.py +1 -2
  106. mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +3 -1
  107. mlrun/frameworks/_ml_common/plans/dataset_plan.py +3 -3
  108. mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +4 -4
  109. mlrun/frameworks/auto_mlrun/__init__.py +1 -2
  110. mlrun/frameworks/auto_mlrun/auto_mlrun.py +22 -15
  111. mlrun/frameworks/huggingface/__init__.py +1 -2
  112. mlrun/frameworks/huggingface/model_server.py +9 -9
  113. mlrun/frameworks/lgbm/__init__.py +47 -44
  114. mlrun/frameworks/lgbm/callbacks/__init__.py +1 -2
  115. mlrun/frameworks/lgbm/callbacks/logging_callback.py +4 -2
  116. mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +4 -2
  117. mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +1 -2
  118. mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +5 -5
  119. mlrun/frameworks/lgbm/model_handler.py +15 -11
  120. mlrun/frameworks/lgbm/model_server.py +11 -7
  121. mlrun/frameworks/lgbm/utils.py +2 -2
  122. mlrun/frameworks/onnx/__init__.py +1 -2
  123. mlrun/frameworks/onnx/dataset.py +3 -3
  124. mlrun/frameworks/onnx/mlrun_interface.py +2 -2
  125. mlrun/frameworks/onnx/model_handler.py +7 -5
  126. mlrun/frameworks/onnx/model_server.py +8 -6
  127. mlrun/frameworks/parallel_coordinates.py +11 -11
  128. mlrun/frameworks/pytorch/__init__.py +22 -23
  129. mlrun/frameworks/pytorch/callbacks/__init__.py +1 -2
  130. mlrun/frameworks/pytorch/callbacks/callback.py +2 -1
  131. mlrun/frameworks/pytorch/callbacks/logging_callback.py +15 -8
  132. mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +19 -12
  133. mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +22 -15
  134. mlrun/frameworks/pytorch/callbacks_handler.py +36 -30
  135. mlrun/frameworks/pytorch/mlrun_interface.py +17 -17
  136. mlrun/frameworks/pytorch/model_handler.py +21 -17
  137. mlrun/frameworks/pytorch/model_server.py +13 -9
  138. mlrun/frameworks/sklearn/__init__.py +19 -18
  139. mlrun/frameworks/sklearn/estimator.py +2 -2
  140. mlrun/frameworks/sklearn/metric.py +3 -3
  141. mlrun/frameworks/sklearn/metrics_library.py +8 -6
  142. mlrun/frameworks/sklearn/mlrun_interface.py +3 -2
  143. mlrun/frameworks/sklearn/model_handler.py +4 -3
  144. mlrun/frameworks/tf_keras/__init__.py +11 -12
  145. mlrun/frameworks/tf_keras/callbacks/__init__.py +1 -2
  146. mlrun/frameworks/tf_keras/callbacks/logging_callback.py +17 -14
  147. mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +15 -12
  148. mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +21 -18
  149. mlrun/frameworks/tf_keras/model_handler.py +17 -13
  150. mlrun/frameworks/tf_keras/model_server.py +12 -8
  151. mlrun/frameworks/xgboost/__init__.py +19 -18
  152. mlrun/frameworks/xgboost/model_handler.py +13 -9
  153. mlrun/launcher/base.py +3 -4
  154. mlrun/launcher/local.py +1 -1
  155. mlrun/launcher/remote.py +1 -1
  156. mlrun/lists.py +4 -3
  157. mlrun/model.py +117 -46
  158. mlrun/model_monitoring/__init__.py +4 -4
  159. mlrun/model_monitoring/api.py +61 -59
  160. mlrun/model_monitoring/applications/_application_steps.py +17 -17
  161. mlrun/model_monitoring/applications/base.py +165 -6
  162. mlrun/model_monitoring/applications/context.py +88 -37
  163. mlrun/model_monitoring/applications/evidently_base.py +1 -2
  164. mlrun/model_monitoring/applications/histogram_data_drift.py +43 -21
  165. mlrun/model_monitoring/applications/results.py +55 -3
  166. mlrun/model_monitoring/controller.py +207 -239
  167. mlrun/model_monitoring/db/__init__.py +0 -2
  168. mlrun/model_monitoring/db/_schedules.py +156 -0
  169. mlrun/model_monitoring/db/_stats.py +189 -0
  170. mlrun/model_monitoring/db/tsdb/base.py +78 -25
  171. mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +90 -16
  172. mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +33 -0
  173. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +279 -59
  174. mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +1 -0
  175. mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +78 -17
  176. mlrun/model_monitoring/helpers.py +152 -49
  177. mlrun/model_monitoring/stream_processing.py +99 -283
  178. mlrun/model_monitoring/tracking_policy.py +10 -3
  179. mlrun/model_monitoring/writer.py +48 -36
  180. mlrun/package/__init__.py +3 -6
  181. mlrun/package/context_handler.py +1 -1
  182. mlrun/package/packager.py +12 -9
  183. mlrun/package/packagers/__init__.py +0 -2
  184. mlrun/package/packagers/default_packager.py +14 -11
  185. mlrun/package/packagers/numpy_packagers.py +16 -7
  186. mlrun/package/packagers/pandas_packagers.py +18 -18
  187. mlrun/package/packagers/python_standard_library_packagers.py +25 -11
  188. mlrun/package/packagers_manager.py +31 -14
  189. mlrun/package/utils/__init__.py +0 -3
  190. mlrun/package/utils/_pickler.py +6 -6
  191. mlrun/platforms/__init__.py +47 -16
  192. mlrun/platforms/iguazio.py +4 -1
  193. mlrun/projects/operations.py +27 -27
  194. mlrun/projects/pipelines.py +75 -38
  195. mlrun/projects/project.py +865 -206
  196. mlrun/run.py +53 -10
  197. mlrun/runtimes/__init__.py +1 -3
  198. mlrun/runtimes/base.py +15 -11
  199. mlrun/runtimes/daskjob.py +9 -9
  200. mlrun/runtimes/generators.py +2 -1
  201. mlrun/runtimes/kubejob.py +4 -5
  202. mlrun/runtimes/mounts.py +572 -0
  203. mlrun/runtimes/mpijob/__init__.py +0 -2
  204. mlrun/runtimes/mpijob/abstract.py +7 -6
  205. mlrun/runtimes/nuclio/api_gateway.py +7 -7
  206. mlrun/runtimes/nuclio/application/application.py +11 -11
  207. mlrun/runtimes/nuclio/function.py +19 -17
  208. mlrun/runtimes/nuclio/serving.py +18 -11
  209. mlrun/runtimes/pod.py +154 -45
  210. mlrun/runtimes/remotesparkjob.py +3 -2
  211. mlrun/runtimes/sparkjob/__init__.py +0 -2
  212. mlrun/runtimes/sparkjob/spark3job.py +21 -11
  213. mlrun/runtimes/utils.py +6 -5
  214. mlrun/serving/merger.py +6 -4
  215. mlrun/serving/remote.py +18 -17
  216. mlrun/serving/routers.py +185 -172
  217. mlrun/serving/server.py +7 -1
  218. mlrun/serving/states.py +97 -78
  219. mlrun/serving/utils.py +13 -2
  220. mlrun/serving/v1_serving.py +3 -2
  221. mlrun/serving/v2_serving.py +74 -65
  222. mlrun/track/__init__.py +1 -1
  223. mlrun/track/tracker.py +2 -2
  224. mlrun/track/trackers/mlflow_tracker.py +6 -5
  225. mlrun/utils/async_http.py +1 -1
  226. mlrun/utils/clones.py +1 -1
  227. mlrun/utils/helpers.py +66 -18
  228. mlrun/utils/logger.py +106 -4
  229. mlrun/utils/notifications/notification/__init__.py +22 -19
  230. mlrun/utils/notifications/notification/base.py +33 -14
  231. mlrun/utils/notifications/notification/console.py +6 -6
  232. mlrun/utils/notifications/notification/git.py +11 -11
  233. mlrun/utils/notifications/notification/ipython.py +10 -9
  234. mlrun/utils/notifications/notification/mail.py +176 -0
  235. mlrun/utils/notifications/notification/slack.py +6 -6
  236. mlrun/utils/notifications/notification/webhook.py +6 -6
  237. mlrun/utils/notifications/notification_pusher.py +86 -44
  238. mlrun/utils/regex.py +3 -1
  239. mlrun/utils/version/version.json +2 -2
  240. {mlrun-1.7.1rc4.dist-info → mlrun-1.8.0rc8.dist-info}/METADATA +191 -186
  241. mlrun-1.8.0rc8.dist-info/RECORD +347 -0
  242. {mlrun-1.7.1rc4.dist-info → mlrun-1.8.0rc8.dist-info}/WHEEL +1 -1
  243. mlrun/model_monitoring/db/stores/__init__.py +0 -136
  244. mlrun/model_monitoring/db/stores/base/store.py +0 -213
  245. mlrun/model_monitoring/db/stores/sqldb/__init__.py +0 -13
  246. mlrun/model_monitoring/db/stores/sqldb/models/__init__.py +0 -71
  247. mlrun/model_monitoring/db/stores/sqldb/models/base.py +0 -190
  248. mlrun/model_monitoring/db/stores/sqldb/models/mysql.py +0 -103
  249. mlrun/model_monitoring/db/stores/sqldb/models/sqlite.py +0 -40
  250. mlrun/model_monitoring/db/stores/sqldb/sql_store.py +0 -659
  251. mlrun/model_monitoring/db/stores/v3io_kv/__init__.py +0 -13
  252. mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py +0 -726
  253. mlrun/model_monitoring/model_endpoint.py +0 -118
  254. mlrun-1.7.1rc4.dist-info/RECORD +0 -351
  255. {mlrun-1.7.1rc4.dist-info → mlrun-1.8.0rc8.dist-info}/LICENSE +0 -0
  256. {mlrun-1.7.1rc4.dist-info → mlrun-1.8.0rc8.dist-info}/entry_points.txt +0 -0
  257. {mlrun-1.7.1rc4.dist-info → mlrun-1.8.0rc8.dist-info}/top_level.txt +0 -0
@@ -14,13 +14,13 @@
14
14
  import typing
15
15
 
16
16
  import kubernetes.client
17
- from mlrun_pipelines.mounts import mount_v3io, mount_v3iod
18
17
 
19
18
  import mlrun.common.schemas.function
20
19
  import mlrun.errors
21
20
  import mlrun.k8s_utils
22
21
  import mlrun.runtimes.pod
23
22
  from mlrun.config import config
23
+ from mlrun.runtimes.mounts import mount_v3io, mount_v3iod
24
24
 
25
25
  from ...execution import MLClientCtx
26
26
  from ...model import RunObject
@@ -405,8 +405,8 @@ class Spark3JobSpec(KubeResourceSpec):
405
405
  def _verify_and_set_requests(
406
406
  self,
407
407
  resources_field_name,
408
- mem: str = None,
409
- cpu: str = None,
408
+ mem: typing.Optional[str] = None,
409
+ cpu: typing.Optional[str] = None,
410
410
  patch: bool = False,
411
411
  ):
412
412
  # Spark operator uses JVM notation for memory, so we must verify it separately
@@ -774,7 +774,11 @@ class Spark3Runtime(KubejobRuntime):
774
774
  exporter_jar="/spark/jars/jmx_prometheus_javaagent-0.16.1.jar",
775
775
  )
776
776
 
777
- def with_cores(self, executor_cores: int = None, driver_cores: int = None):
777
+ def with_cores(
778
+ self,
779
+ executor_cores: typing.Optional[int] = None,
780
+ driver_cores: typing.Optional[int] = None,
781
+ ):
778
782
  """
779
783
  Allows to configure spark.executor.cores and spark.driver.cores parameters. The values must be integers
780
784
  greater than or equal to 1. If a parameter is not specified, it defaults to 1.
@@ -853,7 +857,7 @@ class Spark3Runtime(KubejobRuntime):
853
857
  skip_deployed=False,
854
858
  is_kfp=False,
855
859
  mlrun_version_specifier=None,
856
- builder_env: dict = None,
860
+ builder_env: typing.Optional[dict] = None,
857
861
  show_on_failure: bool = False,
858
862
  force_build: bool = False,
859
863
  ):
@@ -944,7 +948,10 @@ class Spark3Runtime(KubejobRuntime):
944
948
  )
945
949
 
946
950
  def with_executor_requests(
947
- self, mem: str = None, cpu: str = None, patch: bool = False
951
+ self,
952
+ mem: typing.Optional[str] = None,
953
+ cpu: typing.Optional[str] = None,
954
+ patch: bool = False,
948
955
  ):
949
956
  """
950
957
  set executor pod required cpu/memory/gpu resources
@@ -954,8 +961,8 @@ class Spark3Runtime(KubejobRuntime):
954
961
 
955
962
  def with_executor_limits(
956
963
  self,
957
- cpu: str = None,
958
- gpus: int = None,
964
+ cpu: typing.Optional[str] = None,
965
+ gpus: typing.Optional[int] = None,
959
966
  gpu_type: str = "nvidia.com/gpu",
960
967
  patch: bool = False,
961
968
  ):
@@ -970,7 +977,10 @@ class Spark3Runtime(KubejobRuntime):
970
977
  )
971
978
 
972
979
  def with_driver_requests(
973
- self, mem: str = None, cpu: str = None, patch: bool = False
980
+ self,
981
+ mem: typing.Optional[str] = None,
982
+ cpu: typing.Optional[str] = None,
983
+ patch: bool = False,
974
984
  ):
975
985
  """
976
986
  set driver pod required cpu/memory/gpu resources
@@ -980,8 +990,8 @@ class Spark3Runtime(KubejobRuntime):
980
990
 
981
991
  def with_driver_limits(
982
992
  self,
983
- cpu: str = None,
984
- gpus: int = None,
993
+ cpu: typing.Optional[str] = None,
994
+ gpus: typing.Optional[int] = None,
985
995
  gpu_type: str = "nvidia.com/gpu",
986
996
  patch: bool = False,
987
997
  ):
mlrun/runtimes/utils.py CHANGED
@@ -18,6 +18,7 @@ import os
18
18
  import re
19
19
  from io import StringIO
20
20
  from sys import stderr
21
+ from typing import Optional
21
22
 
22
23
  import pandas as pd
23
24
 
@@ -147,7 +148,7 @@ def add_code_metadata(path=""):
147
148
 
148
149
  def results_to_iter(results, runspec, execution):
149
150
  if not results:
150
- logger.error("got an empty results list in to_iter")
151
+ logger.error("Got an empty results list in to_iter")
151
152
  return
152
153
 
153
154
  iter = []
@@ -174,7 +175,7 @@ def results_to_iter(results, runspec, execution):
174
175
 
175
176
  if not iter:
176
177
  execution.set_state("completed", commit=True)
177
- logger.warning("warning!, zero iteration results")
178
+ logger.warning("Warning!, zero iteration results")
178
179
  return
179
180
  if hasattr(pd, "json_normalize"):
180
181
  df = pd.json_normalize(iter).sort_values("iter")
@@ -189,10 +190,10 @@ def results_to_iter(results, runspec, execution):
189
190
  item, id = selector(results, criteria)
190
191
  if runspec.spec.selector and not id:
191
192
  logger.warning(
192
- f"no best result selected, check selector ({criteria}) or results"
193
+ f"No best result selected, check selector ({criteria}) or results"
193
194
  )
194
195
  if id:
195
- logger.info(f"best iteration={id}, used criteria {criteria}")
196
+ logger.info(f"Best iteration={id}, used criteria {criteria}")
196
197
  task = results[item] if id and results else None
197
198
  execution.log_iteration_results(id, summary, task)
198
199
 
@@ -432,7 +433,7 @@ def enrich_function_from_dict(function, function_dict):
432
433
 
433
434
  def enrich_run_labels(
434
435
  labels: dict,
435
- labels_to_enrich: list[RunLabels] = None,
436
+ labels_to_enrich: Optional[list[RunLabels]] = None,
436
437
  ):
437
438
  labels_enrichment = {
438
439
  RunLabels.owner: os.environ.get("V3IO_USERNAME") or getpass.getuser(),
mlrun/serving/merger.py CHANGED
@@ -13,6 +13,8 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
+ from typing import Optional
17
+
16
18
  import storey
17
19
 
18
20
 
@@ -37,10 +39,10 @@ class CacheEntry:
37
39
  class Merge(storey.Flow):
38
40
  def __init__(
39
41
  self,
40
- full_event: bool = None,
41
- key_path: str = None,
42
- max_behind: int = None,
43
- expected_num_events: int = None,
42
+ full_event: Optional[bool] = None,
43
+ key_path: Optional[str] = None,
44
+ max_behind: Optional[int] = None,
45
+ expected_num_events: Optional[int] = None,
44
46
  **kwargs,
45
47
  ):
46
48
  """Merge multiple events based on event id or provided key path
mlrun/serving/remote.py CHANGED
@@ -14,6 +14,7 @@
14
14
  #
15
15
  import asyncio
16
16
  import json
17
+ from typing import Optional
17
18
 
18
19
  import aiohttp
19
20
  import requests
@@ -40,14 +41,14 @@ class RemoteStep(storey.SendToHttp):
40
41
  def __init__(
41
42
  self,
42
43
  url: str,
43
- subpath: str = None,
44
- method: str = None,
45
- headers: dict = None,
46
- url_expression: str = None,
47
- body_expression: str = None,
44
+ subpath: Optional[str] = None,
45
+ method: Optional[str] = None,
46
+ headers: Optional[dict] = None,
47
+ url_expression: Optional[str] = None,
48
+ body_expression: Optional[str] = None,
48
49
  return_json: bool = True,
49
- input_path: str = None,
50
- result_path: str = None,
50
+ input_path: Optional[str] = None,
51
+ result_path: Optional[str] = None,
51
52
  max_in_flight=None,
52
53
  retries=None,
53
54
  backoff_factor=None,
@@ -57,7 +58,7 @@ class RemoteStep(storey.SendToHttp):
57
58
  """class for calling remote endpoints
58
59
 
59
60
  sync and async graph step implementation for request/resp to remote service (class shortcut = "$remote")
60
- url can be an http(s) url (e.g. "https://myservice/path") or an mlrun function uri ([project/]name).
61
+ url can be an http(s) url (e.g. `https://myservice/path`) or an mlrun function uri ([project/]name).
61
62
  alternatively the url_expression can be specified to build the url from the event (e.g. "event['url']").
62
63
 
63
64
  example pipeline::
@@ -241,15 +242,15 @@ class RemoteStep(storey.SendToHttp):
241
242
  class BatchHttpRequests(_ConcurrentJobExecution):
242
243
  def __init__(
243
244
  self,
244
- url: str = None,
245
- subpath: str = None,
246
- method: str = None,
247
- headers: dict = None,
248
- url_expression: str = None,
249
- body_expression: str = None,
245
+ url: Optional[str] = None,
246
+ subpath: Optional[str] = None,
247
+ method: Optional[str] = None,
248
+ headers: Optional[dict] = None,
249
+ url_expression: Optional[str] = None,
250
+ body_expression: Optional[str] = None,
250
251
  return_json: bool = True,
251
- input_path: str = None,
252
- result_path: str = None,
252
+ input_path: Optional[str] = None,
253
+ result_path: Optional[str] = None,
253
254
  retries=None,
254
255
  backoff_factor=None,
255
256
  timeout=None,
@@ -258,7 +259,7 @@ class BatchHttpRequests(_ConcurrentJobExecution):
258
259
  """class for calling remote endpoints in parallel
259
260
 
260
261
  sync and async graph step implementation for request/resp to remote service (class shortcut = "$remote")
261
- url can be an http(s) url (e.g. "https://myservice/path") or an mlrun function uri ([project/]name).
262
+ url can be an http(s) url (e.g. `https://myservice/path`) or an mlrun function uri ([project/]name).
262
263
  alternatively the url_expression can be specified to build the url from the event (e.g. "event['url']").
263
264
 
264
265
  example pipeline::