mlrun 1.7.0rc18__py3-none-any.whl → 1.7.0rc19__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 (63) hide show
  1. mlrun/__main__.py +5 -2
  2. mlrun/common/constants.py +64 -3
  3. mlrun/common/formatters/__init__.py +16 -0
  4. mlrun/common/formatters/base.py +59 -0
  5. mlrun/common/formatters/function.py +41 -0
  6. mlrun/common/runtimes/constants.py +29 -4
  7. mlrun/common/schemas/__init__.py +0 -1
  8. mlrun/common/schemas/api_gateway.py +52 -0
  9. mlrun/common/schemas/frontend_spec.py +1 -0
  10. mlrun/common/schemas/model_monitoring/__init__.py +6 -3
  11. mlrun/common/schemas/model_monitoring/constants.py +2 -7
  12. mlrun/config.py +7 -2
  13. mlrun/datastore/sources.py +16 -22
  14. mlrun/datastore/store_resources.py +5 -1
  15. mlrun/datastore/targets.py +3 -2
  16. mlrun/datastore/utils.py +42 -0
  17. mlrun/execution.py +16 -6
  18. mlrun/feature_store/ingestion.py +7 -6
  19. mlrun/feature_store/retrieval/job.py +4 -1
  20. mlrun/frameworks/parallel_coordinates.py +2 -1
  21. mlrun/frameworks/tf_keras/__init__.py +4 -1
  22. mlrun/launcher/client.py +4 -2
  23. mlrun/launcher/local.py +8 -2
  24. mlrun/launcher/remote.py +8 -2
  25. mlrun/model.py +5 -1
  26. mlrun/model_monitoring/db/stores/__init__.py +0 -2
  27. mlrun/model_monitoring/db/stores/base/store.py +1 -2
  28. mlrun/model_monitoring/db/stores/sqldb/models/__init__.py +43 -21
  29. mlrun/model_monitoring/db/stores/sqldb/models/base.py +32 -2
  30. mlrun/model_monitoring/db/stores/sqldb/models/mysql.py +25 -5
  31. mlrun/model_monitoring/db/stores/sqldb/models/sqlite.py +5 -0
  32. mlrun/model_monitoring/db/stores/sqldb/sql_store.py +207 -139
  33. mlrun/model_monitoring/db/tsdb/__init__.py +1 -1
  34. mlrun/model_monitoring/db/tsdb/base.py +225 -38
  35. mlrun/model_monitoring/db/tsdb/helpers.py +30 -0
  36. mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +48 -15
  37. mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +182 -16
  38. mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +229 -42
  39. mlrun/model_monitoring/helpers.py +13 -0
  40. mlrun/model_monitoring/writer.py +36 -11
  41. mlrun/projects/operations.py +8 -5
  42. mlrun/projects/pipelines.py +42 -15
  43. mlrun/projects/project.py +22 -6
  44. mlrun/runtimes/base.py +2 -1
  45. mlrun/runtimes/local.py +4 -1
  46. mlrun/runtimes/nuclio/api_gateway.py +32 -8
  47. mlrun/runtimes/nuclio/application/application.py +3 -3
  48. mlrun/runtimes/nuclio/function.py +1 -4
  49. mlrun/runtimes/utils.py +5 -6
  50. mlrun/serving/server.py +2 -1
  51. mlrun/utils/helpers.py +8 -6
  52. mlrun/utils/logger.py +28 -1
  53. mlrun/utils/notifications/notification/__init__.py +14 -9
  54. mlrun/utils/notifications/notification_pusher.py +10 -3
  55. mlrun/utils/v3io_clients.py +0 -1
  56. mlrun/utils/version/version.json +2 -2
  57. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/METADATA +3 -3
  58. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/RECORD +62 -59
  59. mlrun/model_monitoring/db/v3io_tsdb_reader.py +0 -335
  60. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/LICENSE +0 -0
  61. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/WHEEL +0 -0
  62. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/entry_points.txt +0 -0
  63. {mlrun-1.7.0rc18.dist-info → mlrun-1.7.0rc19.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  mlrun/__init__.py,sha256=y08M1JcKXy5-9_5WaI9fn5aV5BxIQ5QkbduJK0OxWbA,7470
2
- mlrun/__main__.py,sha256=J2Y7_hKWusNsinXVLdIkAPZl5ThRePaxSG1I9b6yI_E,45717
3
- mlrun/config.py,sha256=8UKxC9tKHcpGgiNCU3PNkUkBPorOvmBXSAIlj1XzmMo,64986
2
+ mlrun/__main__.py,sha256=F65N1MUdAn5hO4qFuJ1v5M3XSCLHUKv7C010toZd-P4,45852
3
+ mlrun/config.py,sha256=kFccBYAVmCgWZmwpBNtWmv3DOaYGB5IhNLhgj6_6dFQ,65140
4
4
  mlrun/errors.py,sha256=53oT_uQliD-CEe7jxJZMFlNOT86zCTYBl802MZYluaE,7395
5
- mlrun/execution.py,sha256=F45o_rJI3Q8epQefTksvyjmgZr4ZxKmUxXbKW5UZOaY,40891
5
+ mlrun/execution.py,sha256=HIYkzHHG6W-txJvzq0flYVGjPvV0qmhPhqQz6lelUOs,41332
6
6
  mlrun/features.py,sha256=m17K_3l9Jktwb9dOwlHLTAPTlemsWrRF7dJhXUX0iJU,15429
7
7
  mlrun/k8s_utils.py,sha256=YyFZT2WNZrJkcZoqxrkduQgzQ1X-7195O0mmEqvaIug,7023
8
8
  mlrun/lists.py,sha256=3PqBdcajdwhTe1XuFsAaHTuFVM2kjwepf31qqE82apg,8384
9
- mlrun/model.py,sha256=4evovxtJBN7kxtWMj3zcvg3H3qpd5RHkyAEYVytOKtU,71827
9
+ mlrun/model.py,sha256=UM7Mfq7cu5tVr7PGa45aFynOdFnY7knua4o2-BSmKuY,71946
10
10
  mlrun/render.py,sha256=uVI4kk7XqMAxamholZ_stPQ0nPUebij50ZpgAdjDQ6U,13131
11
11
  mlrun/run.py,sha256=0V99lXDuXtrUlZlmVHi7Dj2OyVT7fXrLHYLqqxfon_4,42457
12
12
  mlrun/secrets.py,sha256=ibtCK79u7JVBZF6F0SP1-xXXF5MyrLEUs_TCWiJAnlc,7798
@@ -20,18 +20,21 @@ mlrun/artifacts/manager.py,sha256=AsZ2RAIkQU6nNG-GJR2Fu2JwYCuP94pwnFCgREPFzLQ,14
20
20
  mlrun/artifacts/model.py,sha256=ObUkqFMejYOtq0CDFdpYwzwhQ5bsHv0dHTysuVPJnbs,21102
21
21
  mlrun/artifacts/plots.py,sha256=dS0mHGt1b20tN2JyEH9H5o5I0oMKZkzn3Uz_3Hf4WjU,4813
22
22
  mlrun/common/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
23
- mlrun/common/constants.py,sha256=7SLxtvq1VGO9ed0xQ87jM09ScTKMuv_2qx_IBE6hybg,991
23
+ mlrun/common/constants.py,sha256=JG5YNpdf3wjCQXKfn_iKMFOwETjdgpA79sASUC_loR0,2922
24
24
  mlrun/common/helpers.py,sha256=BAhyuUnZvD_BT43i0_1EszuSbKgZx7bFy2KRIWP0XeA,1087
25
25
  mlrun/common/secrets.py,sha256=vc8WV82EZsCB5ENjUkObFOzZP59aZ1w8F82PTnqwBnc,5181
26
26
  mlrun/common/types.py,sha256=nNqNqNpn-xl4xliy-ofBAWVX02q5NFh6wxmvOnD4wW8,949
27
27
  mlrun/common/db/__init__.py,sha256=xY3wHC4TEJgez7qtnn1pQvHosi8-5UJOCtyGBS7FcGE,571
28
28
  mlrun/common/db/sql_session.py,sha256=Znc8KE2oLy4lg3_vRki1sVlNx59TgDSOTCXfU561hBU,2659
29
+ mlrun/common/formatters/__init__.py,sha256=dQrhtWwk4WH8Gl9_2AmAruScXQ3bduVIsEPFFIs75Vk,617
30
+ mlrun/common/formatters/base.py,sha256=juGpuKETYfF79zkMPpdHn5jQINVu3Vl-ISk4-3Ypp3I,2006
31
+ mlrun/common/formatters/function.py,sha256=HBvIWxJA4Se_9eFAZD2JhbSex7fPS_cOeGcN-sgPKMc,1298
29
32
  mlrun/common/model_monitoring/__init__.py,sha256=x0EMEvxVjHsm858J1t6IEA9dtKTdFpJ9sKhss10ld8A,721
30
33
  mlrun/common/model_monitoring/helpers.py,sha256=1CpxIDQPumFnpUB1eqcvCpLlyPFVeW2sL6prM-N5A1A,4405
31
- mlrun/common/runtimes/constants.py,sha256=ZPpHm6PtDqFUcGo5uONSuZ_VOejZxeg91DU-p2ArBWk,9599
32
- mlrun/common/schemas/__init__.py,sha256=9xVBNXRb4EXztHGKOFoLXzfnUNLM8NYjC2nI39aOjRY,5217
34
+ mlrun/common/runtimes/constants.py,sha256=Rl0Sd8n_L7Imo-uF1LL9CJ5Szi0W1gUm36yrF8PXfSc,10989
35
+ mlrun/common/schemas/__init__.py,sha256=31XU6t7yY83F8zBpXnUaKf-ClI97tK-azwzEbdmQdJY,5192
33
36
  mlrun/common/schemas/alert.py,sha256=yzXcmrhW8EHb-NxArVSlH0pRPrBLyqpMCTgMCDz4ExM,6644
34
- mlrun/common/schemas/api_gateway.py,sha256=pWCSQ_devM8RAeiFyVpkA3Zb8e7TDomG5uoTzPs-pxg,2659
37
+ mlrun/common/schemas/api_gateway.py,sha256=CEvDsGHRH9okB52HeGx5HJXYxnDzPta1atwNECJq8NM,4797
35
38
  mlrun/common/schemas/artifact.py,sha256=RsiuVztn_eS5BuSRFUyJGTC9ed-Z2SpsEqJ_WslM30E,3375
36
39
  mlrun/common/schemas/auth.py,sha256=5c4WSn3KdX1v04ttSQblkF_gyjdjuJSHG7BTCx4_LWM,6336
37
40
  mlrun/common/schemas/background_task.py,sha256=2qZxib2qrF_nPZj0ncitCG-2jxz2hg1qj0hFc8eswWQ,1707
@@ -42,7 +45,7 @@ mlrun/common/schemas/constants.py,sha256=UnnhyLeF-SSjy8KaV5a-TBw4Ws675gueYGiP1fr
42
45
  mlrun/common/schemas/datastore_profile.py,sha256=hJ8q54A8VZKsnOvSIjcllj4MZ1bBhb_EmBgsqpwSF_Y,750
43
46
  mlrun/common/schemas/events.py,sha256=ROHJLo_fqYjc96pek7yhAUPpPRIuAR76lwxvNz8LIr8,1026
44
47
  mlrun/common/schemas/feature_store.py,sha256=577OHVRZbV3kqYei4drVdTmCcGLJU8UXSGEpfo9FTQk,3717
45
- mlrun/common/schemas/frontend_spec.py,sha256=NPQZB7-A7ERXseTsdlxxG81CDL2oEcaUIj7OG2J9qPQ,2418
48
+ mlrun/common/schemas/frontend_spec.py,sha256=CNPq3YV0U1jCbCMbb84_Oid2Snow5EXYt1F5wsuhgD8,2454
46
49
  mlrun/common/schemas/function.py,sha256=Khd5Jd6ept1nHWkW1WdIy1u8iK4O8_Ddf3a7cv3Hf1I,4652
47
50
  mlrun/common/schemas/http.py,sha256=1PtYFhF6sqLSBRcuPMtYcUGmroBhaleqLmYidSdL9LM,705
48
51
  mlrun/common/schemas/hub.py,sha256=cuv_vpkO27XNCZzfytnUyi0k0ZA4wf_QRn5B0ZPoK-Y,4116
@@ -60,8 +63,8 @@ mlrun/common/schemas/schedule.py,sha256=e9nAeRkZkyk37Ws1cBNseHVKPOQqmWV16rt-zr_e
60
63
  mlrun/common/schemas/secret.py,sha256=51tCN1F8DFTq4y_XdHIMDy3I1TnMEBX8kO8BHKavYF4,1484
61
64
  mlrun/common/schemas/tag.py,sha256=OAn9Qt6z8ibqw8uU8WQSvuwY8irUv45Dhx2Ko5FzUss,884
62
65
  mlrun/common/schemas/workflow.py,sha256=eRoaOBFiWbvP0iwZ6Aof5JmheV81A0-0PGi8L4vuXmI,1823
63
- mlrun/common/schemas/model_monitoring/__init__.py,sha256=WdDj27zSGcNyEQXGzKcKxv_9mHjAwLQxYnQ4fJ3S4Gk,1715
64
- mlrun/common/schemas/model_monitoring/constants.py,sha256=us-vC0odOxsEwIcgWtoWJ5qFNSarKXftSuSBoJHHK78,9629
66
+ mlrun/common/schemas/model_monitoring/__init__.py,sha256=7Aih_5KAcmSMeTNsBvunuQpPkAQ_GslzVU4HtU6Fg_M,1777
67
+ mlrun/common/schemas/model_monitoring/constants.py,sha256=ZwiSzQfgKEv06AP0wQjUK8gWO9eyNZg29aaxG0_yb1s,9548
65
68
  mlrun/common/schemas/model_monitoring/grafana.py,sha256=SG13MFUUz_tk6-mWeSx17qcdEW4ekicxqNtnMSwRTCY,1559
66
69
  mlrun/common/schemas/model_monitoring/model_endpoints.py,sha256=o7sejyMX5sYm6Aq9Ae6arKV-kqIAKCdtCJ7rN36cscU,14251
67
70
  mlrun/data_types/__init__.py,sha256=EkxfkFoHb91zz3Aymq-KZfCHlPMzEc3bBqgzPUwmHWY,1087
@@ -83,12 +86,12 @@ mlrun/datastore/inmem.py,sha256=PQAbNbjQvDhtCQrvPTCuUWRwGVe4a7nB5E84l8C20pQ,2802
83
86
  mlrun/datastore/redis.py,sha256=OKMkDCU3APhxfo65SyJq605u1DsfOYH0fODnCXZRqEU,5575
84
87
  mlrun/datastore/s3.py,sha256=moTbuBy7YydP_2frCpN8DjmVRMzg9M2R20CN6RTe_Ls,8330
85
88
  mlrun/datastore/snowflake_utils.py,sha256=QFWS6skWnPs_p4ioE9qEyUUettSHVYA4g8e-LnebU8A,1439
86
- mlrun/datastore/sources.py,sha256=MikXRakfI91GdYw7zXEwkxnJXZXVpmzK_-5fmgWupOg,45765
89
+ mlrun/datastore/sources.py,sha256=p6wDgR6AMpaHYi5iP58oNViUtUGK4lfyD68ffN4XtKI,45549
87
90
  mlrun/datastore/spark_udf.py,sha256=NnnB3DZxZb-rqpRy7b-NC7QWXuuqFn3XkBDc86tU4mQ,1498
88
91
  mlrun/datastore/spark_utils.py,sha256=50rllp6xXpXY__1LbU7aTXUU5ca8dKAfoskPre3npZo,1611
89
- mlrun/datastore/store_resources.py,sha256=6uge0IQ3PgkozpMYBhjVbPbwLVV2sxnwnt-Paw11nBE,6684
90
- mlrun/datastore/targets.py,sha256=xbXsXo9hZ4i14I0knKI1AfNYiXWdvq7sRDNZoRCNq4A,78902
91
- mlrun/datastore/utils.py,sha256=TjvFRJIje3RzQpxfMZAGniyzSWgWC_AEbuTrZXxshRo,5852
92
+ mlrun/datastore/store_resources.py,sha256=iKVWhAK8uwoYap14j48sbaDPrx6WsboWJFHQCJNWxyM,6832
93
+ mlrun/datastore/targets.py,sha256=KMyqYaYGiWs3Uk3CkkNWEH528wziED3q1Guzfa_S2n4,79003
94
+ mlrun/datastore/utils.py,sha256=l9dLZb_VCbHs_htqMFRv4qiestZ8z8K-4eY1MxHS8wE,7720
92
95
  mlrun/datastore/v3io.py,sha256=tmZ2S-POZhjjKPE_0T1EkHcv6Q10pz5KQiaTXE1Be-4,8102
93
96
  mlrun/datastore/wasbfs/__init__.py,sha256=s5Ul-0kAhYqFjKDR2X0O2vDGDbLQQduElb32Ev56Te4,1343
94
97
  mlrun/datastore/wasbfs/fs.py,sha256=MnSj7Q4OKA2L55ihCmUnj2t3GA3B77oLMdAw-yxvN9w,6151
@@ -103,18 +106,18 @@ mlrun/feature_store/api.py,sha256=uYheyPkJOVCrz1jivvpGatgy_JBAq0It0XZqPpNVQkE,48
103
106
  mlrun/feature_store/common.py,sha256=DKmoRk04NCS1gv7qZuEUa2-g8WsfR6IWjYctcrqKVlg,12853
104
107
  mlrun/feature_store/feature_set.py,sha256=qD8RqkeoJFbJMMK5-zjs-27DC4UXQiQSokkt4pdMzkw,56027
105
108
  mlrun/feature_store/feature_vector.py,sha256=YTwg2-qFMF8ard3jvrYACh7vwZJ51ddy8UzCguQ1F1I,43561
106
- mlrun/feature_store/ingestion.py,sha256=GZkrke5_JJfA_PGOFc6ekbHKujHgMgqr6t4vop5n_bg,11210
109
+ mlrun/feature_store/ingestion.py,sha256=kT3Hbz1PBjsJd-GPBm2ap0sg9-fiXxaSXoEIo-dOXpU,11361
107
110
  mlrun/feature_store/steps.py,sha256=EAOJvcnKNiFxSXlJuRxEEZU3q2a6GpMH9KffTfXeWKo,28860
108
111
  mlrun/feature_store/retrieval/__init__.py,sha256=bwA4copPpLQi8fyoUAYtOyrlw0-6f3-Knct8GbJSvRg,1282
109
112
  mlrun/feature_store/retrieval/base.py,sha256=zgDsRsYQz8eqReKBEeTP0O4UoLoVYjWpO1o1gtvbjRA,30230
110
113
  mlrun/feature_store/retrieval/conversion.py,sha256=Bh3d8vLtEwpJHvE9oezhKi9fwk5BzXbjx8yfXURWFMY,11638
111
114
  mlrun/feature_store/retrieval/dask_merger.py,sha256=t60xciYp6StUQLEyFyI4JK5NpWkdBy2MGCs6beimaWU,5575
112
- mlrun/feature_store/retrieval/job.py,sha256=pH2YdesuqKYz1yeTL2Oycl8WBcBs2b4XiKPmon4a3RE,8426
115
+ mlrun/feature_store/retrieval/job.py,sha256=vm50yAqvaazuTGbCOgN_e1Ax8gh-d-qQN4Ebz4OnsLs,8557
113
116
  mlrun/feature_store/retrieval/local_merger.py,sha256=jM-8ta44PeNUc1cKMPs-TxrO9t8pXbwu_Tw8MZrLxUY,4513
114
117
  mlrun/feature_store/retrieval/spark_merger.py,sha256=1SbDn0T6-zoggTzD72DvuRLtOQqkXNWSR_kEv3pl0iU,11217
115
118
  mlrun/feature_store/retrieval/storey_merger.py,sha256=5YM0UPrLjGOobulHkowRO-1LuvFD2cm_0GxcpnTdu0I,6314
116
119
  mlrun/frameworks/__init__.py,sha256=qRHe_nUfxpoLaSASAkIxcW6IyunMtxq5LXhjzZMO_1E,743
117
- mlrun/frameworks/parallel_coordinates.py,sha256=9sjRaRJXKAQASb1cGuoSoGmDenZlDtE9c6ut1iA2hwQ,11487
120
+ mlrun/frameworks/parallel_coordinates.py,sha256=AJ3TuvffAC4_zN-RVcyTkq1T3lomDqgeNf7hVBmscEw,11517
118
121
  mlrun/frameworks/_common/__init__.py,sha256=7afutDCDVp999gyWSWQZMJRKGuW3VP3MFil8cobRsyg,962
119
122
  mlrun/frameworks/_common/artifacts_library.py,sha256=f0rtDRQI3BYT2ZvXR4drSXZPYPJG19Sbej-_ru-i0II,8497
120
123
  mlrun/frameworks/_common/mlrun_interface.py,sha256=HbnE1jtApNjMog3fhd40Ayq6mos_vFUx5ICGEgFzNEA,20999
@@ -184,7 +187,7 @@ mlrun/frameworks/sklearn/metrics_library.py,sha256=mGMo_s4d1JpTBVm_6pfqqCRlGbpbM
184
187
  mlrun/frameworks/sklearn/mlrun_interface.py,sha256=y4RsG_RI4KfPrPADU4Lsr8PF95_VRXJiUX6ez-ljrv0,14054
185
188
  mlrun/frameworks/sklearn/model_handler.py,sha256=h2fZGq8y_0okTq9ygsRtVwE3IduNYcUTf8OJyNA2xww,4695
186
189
  mlrun/frameworks/sklearn/utils.py,sha256=Cg_pSxUMvKe8vBSLQor6JM8u9_ccKJg4Rk5EPDzTsVo,1209
187
- mlrun/frameworks/tf_keras/__init__.py,sha256=MS6pXYIhxaypE0FJgZCrBRtG84UY2PYBqb6pKpMzJDc,10448
190
+ mlrun/frameworks/tf_keras/__init__.py,sha256=OuDIC4NQ59x003KddYq_Vzd0LBYdjfpoJzz28-co0cs,10555
188
191
  mlrun/frameworks/tf_keras/mlrun_interface.py,sha256=1xPUv8YAqxrY3CmkMfWMdp2yEAvk5viiMH6qw41ytSk,16617
189
192
  mlrun/frameworks/tf_keras/model_handler.py,sha256=2BFrYc7mKLKmEdgPAzBa8c_OnvSHqO9HXv7At3onrlo,28102
190
193
  mlrun/frameworks/tf_keras/model_server.py,sha256=64x0nWFGdEONrye5F1socl8KXhMiia_neAoMzXcPF8A,9529
@@ -199,10 +202,10 @@ mlrun/frameworks/xgboost/model_handler.py,sha256=e7IwdrmAaQ5Yy_fqOirN7oi-xEJgg_G
199
202
  mlrun/frameworks/xgboost/utils.py,sha256=5zLzHoeI3n2FuA_rdGzi404QCTLfQx1TYEyUWhZogs8,1069
200
203
  mlrun/launcher/__init__.py,sha256=JL8qkT1lLr1YvW6iP0hmwDTaSR2RfrMDx0-1gWRhTOE,571
201
204
  mlrun/launcher/base.py,sha256=ud1qc2v66-84haAVBuQ2e0IsOzvd_bleSVVImwNWhwE,16461
202
- mlrun/launcher/client.py,sha256=ZVWAgVm-XFt-r1jJblXqaj_MrGztlcrUTd_qS6BqMq0,6062
205
+ mlrun/launcher/client.py,sha256=kgju2mvGuVlvJWRk8sL8qTKF0lf_cSPK2nqYz1oZy3E,6196
203
206
  mlrun/launcher/factory.py,sha256=RW7mfzEFi8fR0M-4W1JQg1iq3_muUU6OTqT_3l4Ubrk,2338
204
- mlrun/launcher/local.py,sha256=6E83lCJ8Ma4WPCQYzo3P6c4tvpIipJsokZ3zMrCORbk,10909
205
- mlrun/launcher/remote.py,sha256=2DGInyx0um5BRUEA5DYcnLXzVKTIv8JxeXogWdxl48o,7469
207
+ mlrun/launcher/local.py,sha256=FOv9-csTduHQFBYi6qJn8iv7BCAY8DatQgK8Uj-Yglw,11094
208
+ mlrun/launcher/remote.py,sha256=BmEvrGoJBsJgS0_uyv3TjV6DvhgONgcKMHCgbjBdmXg,7654
206
209
  mlrun/model_monitoring/__init__.py,sha256=dm5_j0_pwqrdzFwTaEtGnKfv2nVpNaM56nBI-oqLbNU,879
207
210
  mlrun/model_monitoring/api.py,sha256=zOYxVK-rTC1ZZkI9ImPb4ifxPk3mzEzQxMGHRSg2AV0,30298
208
211
  mlrun/model_monitoring/application.py,sha256=RJ8HeAPfGO3P2A_dEZYNg60c1wKTADh2YSv8BQ5embg,745
@@ -210,12 +213,12 @@ mlrun/model_monitoring/controller.py,sha256=MQ4BF3vfJSyYZv6HuTuSLt_nqaflgBYyOSwC
210
213
  mlrun/model_monitoring/controller_handler.py,sha256=J9Y9ppLsQaxyYRl21165Rr7QuI9EM-mk-5veAqs4Bi0,1336
211
214
  mlrun/model_monitoring/evidently_application.py,sha256=iOc42IVjj8m6PDBmVcKIMWm46Bu0EdO9SDcH40Eqhyo,769
212
215
  mlrun/model_monitoring/features_drift_table.py,sha256=c6GpKtpOJbuT1u5uMWDL_S-6N4YPOmlktWMqPme3KFY,25308
213
- mlrun/model_monitoring/helpers.py,sha256=iGaCGdhbXybP88X0kwqOHV-gmcFiflc5AupTNxxxXRs,10474
216
+ mlrun/model_monitoring/helpers.py,sha256=I_JVG4BE5Vw8Z6y26_LuicXUrPlJQBzSHksHEoFclps,10887
214
217
  mlrun/model_monitoring/model_endpoint.py,sha256=7VX0cBATqLsA4sSinDzouf41ndxqh2mf5bO9BW0G5Z4,4017
215
218
  mlrun/model_monitoring/prometheus.py,sha256=cUR4y73GutJB_pA_VCBDl9YtK4PcIJp2wj2rnLVmYi4,7578
216
219
  mlrun/model_monitoring/stream_processing.py,sha256=x1GewJcoLSJESAqMFEFnVb-Gln9H7lVwD7NJKa0dcho,42386
217
220
  mlrun/model_monitoring/tracking_policy.py,sha256=sQq956akAQpntkrJwIgFWcEq-JpyVcg0FxgNa4h3V70,5502
218
- mlrun/model_monitoring/writer.py,sha256=JwL908FEWWB3qtwF6NFnMSIPiWMFX_IuNXqG53y99po,9181
221
+ mlrun/model_monitoring/writer.py,sha256=cAQ24HbtWGA8czzaemmjLT4WfDInJ7gPpkkIp9LePBY,10013
219
222
  mlrun/model_monitoring/applications/__init__.py,sha256=i793GqYee01mRh_KD6GShvX7UbPBgdJDO4qf9Z3BXEQ,970
220
223
  mlrun/model_monitoring/applications/_application_steps.py,sha256=-g9jxIAFM5f22iJaUAQVlM8QRSv6KFT92I4WHmZe_f0,6028
221
224
  mlrun/model_monitoring/applications/base.py,sha256=5YYI3XDcXnbkDQFL5oZGfbco93dqv1vB2fLW0wK8lSo,11362
@@ -224,27 +227,27 @@ mlrun/model_monitoring/applications/evidently_base.py,sha256=AE_eIz-GEYm3AZTrMCi
224
227
  mlrun/model_monitoring/applications/histogram_data_drift.py,sha256=HZmNg09SCjAKkIlKmJwqR7hr-8sXrwFEqXgJCitVbXc,13039
225
228
  mlrun/model_monitoring/applications/results.py,sha256=VVlu9Si7Tj2LNJzPQrp4_Qeyh9mxOVMu1Jwb5K2LfvY,3577
226
229
  mlrun/model_monitoring/db/__init__.py,sha256=6Ic-X3Fh9XLPYMytmevGNSs-Hii1rAjLLoFTSPwTguw,736
227
- mlrun/model_monitoring/db/v3io_tsdb_reader.py,sha256=on2iVF9VOd0VMLnxtrMDQ2_vzoXggbQgXvVAbp5DQ4w,11193
228
- mlrun/model_monitoring/db/stores/__init__.py,sha256=G3g1ZclwVWfdtFsuTAW1O2A2ndR4ku9xU9TivnIb4yk,4305
230
+ mlrun/model_monitoring/db/stores/__init__.py,sha256=qesQRwo0tT4rDlQHMVliXFYiMRHZv2-rd-2JHvAQF-Y,4203
229
231
  mlrun/model_monitoring/db/stores/base/__init__.py,sha256=JufJETW3BXzPhFwbRa8dMf7BFGGZKceIWIMgr5x9n9c,599
230
- mlrun/model_monitoring/db/stores/base/store.py,sha256=Qky20EC4-DjYi8dTaOp7SayZv1R8J-SRNQqYEq04ioM,5870
232
+ mlrun/model_monitoring/db/stores/base/store.py,sha256=ZzzXDRBnX0VJbvBinfgUdkXDyRQJwsjgPolgiyVLfwM,5858
231
233
  mlrun/model_monitoring/db/stores/sqldb/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
232
- mlrun/model_monitoring/db/stores/sqldb/sql_store.py,sha256=_ygH3g7LQUMl1FIhKSi5J-7xWyUo_6CsDNYEbVMZIDA,24210
233
- mlrun/model_monitoring/db/stores/sqldb/models/__init__.py,sha256=359IyQfnBqe4MXrKe4wCPAM2-ntqjUYCx1n_djSdNYg,2196
234
- mlrun/model_monitoring/db/stores/sqldb/models/base.py,sha256=2EZD0VCl69PRyvfQ9QAAQp08MGAUllmj5nXiCwyj7VU,4423
235
- mlrun/model_monitoring/db/stores/sqldb/models/mysql.py,sha256=IQxnupQAVnAu_J2aENRyKuRJuOc5EcfVtWBRCEpOwzA,2022
236
- mlrun/model_monitoring/db/stores/sqldb/models/sqlite.py,sha256=S45CfdLSq_XJVKz3ZtdA8imsWWnuKdHb696HjDktLTU,994
234
+ mlrun/model_monitoring/db/stores/sqldb/sql_store.py,sha256=_p12LEpmGNVP6h5DTqAVwMVkwyfAbesBZigED-Lbduw,27500
235
+ mlrun/model_monitoring/db/stores/sqldb/models/__init__.py,sha256=lCiGw9WKPtHAIgrtNS2jyvM5OZvZvogBh76iurNYblg,2453
236
+ mlrun/model_monitoring/db/stores/sqldb/models/base.py,sha256=YKRWgWvi8yyzXvratpePqSZ3ZVjgfZ6Q_QhgaLUnAsE,5215
237
+ mlrun/model_monitoring/db/stores/sqldb/models/mysql.py,sha256=lkvwtxZwUK15vrdoRER_uYppmpkR3VYuIhhjQjbYi-k,2568
238
+ mlrun/model_monitoring/db/stores/sqldb/models/sqlite.py,sha256=yJJZppbKj3PsOANS_DXAQFFHKX4cQcm6Pz2DoxRiXMk,1104
237
239
  mlrun/model_monitoring/db/stores/v3io_kv/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
238
240
  mlrun/model_monitoring/db/stores/v3io_kv/kv_store.py,sha256=o8P80yowPj4NRLonJ8rdSffot1OB-V6i3Ji1m_TWvzs,27399
239
- mlrun/model_monitoring/db/tsdb/__init__.py,sha256=B0Q4fvnFDoHdX9-p0vOticcke9vIf-1kKi6DSUTWupU,3707
240
- mlrun/model_monitoring/db/tsdb/base.py,sha256=ftZlZ20tbmcVhA8gR5EHo28T9DKkW51_x2lXeXdxMNQ,6858
241
+ mlrun/model_monitoring/db/tsdb/__init__.py,sha256=NR895JSsEvNmINL223GLf8IbJ16b9Wn4XnxobDwivM8,3724
242
+ mlrun/model_monitoring/db/tsdb/base.py,sha256=tS4XbqH_gztqQy58bJ4jO6ZGIXo3mQmpU-jjWH8aJ0k,13658
243
+ mlrun/model_monitoring/db/tsdb/helpers.py,sha256=0oUXc4aUkYtP2SGP6jTb3uPPKImIUsVsrb9otX9a7O4,1189
241
244
  mlrun/model_monitoring/db/tsdb/tdengine/__init__.py,sha256=vgBdsKaXUURKqIf3M0y4sRatmSVA4CQiJs7J5dcVBkQ,620
242
- mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=hTEvlN1KHghctpni1ZezDfJfldm4V2EKVGyxUpGc_NU,7534
245
+ mlrun/model_monitoring/db/tsdb/tdengine/schemas.py,sha256=94u886UtyK40YNtdOX8WiJUImDytygdaqIzFwo_ExzI,8881
243
246
  mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py,sha256=x1cWM2ystghHUeDZNgnaN4kI_XjFOnh1FRBRJAX-tsw,1620
244
- mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=XVdLrmKElI9YUxm8lRNm3kWc6PMGNq1U6FAmQ1_7aco,8631
247
+ mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py,sha256=aZ6sRIC5iHXBQlsKGWxgvH1kh7d5lKRymEXAWjkYH-8,15329
245
248
  mlrun/model_monitoring/db/tsdb/v3io/__init__.py,sha256=aL3bfmQsUQ-sbvKGdNihFj8gLCK3mSys0qDcXtYOwgc,616
246
249
  mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py,sha256=qbiyBzrdWLJAKLmJV4K8jUxsAMbKGZ1vip7WNfRcpXM,4764
247
- mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=IhgnvtN-0A_Des9gdiUf3x2PBbKvj2i4kOBLwoFDjew,17854
250
+ mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py,sha256=StM3hqBn9g3-hpylSychu6Bzy9oPgyiITLtg60Smlyc,25160
248
251
  mlrun/model_monitoring/metrics/__init__.py,sha256=6CsTXAxeLbbf8yfCADTaxmiavqwrLEdYFJ-qc5kgDAY,569
249
252
  mlrun/model_monitoring/metrics/histogram_distance.py,sha256=E9_WIl2vd6qNvoHVHoFcnuQk3ekbFWOdi8aU7sHrfk4,4724
250
253
  mlrun/package/__init__.py,sha256=uWILzN42bcq5vFRk6ptxEmn1I5uBWAnhaJr7e4H834w,7082
@@ -267,20 +270,20 @@ mlrun/package/utils/type_hint_utils.py,sha256=JYrek6vuN3z7e6MGUD3qBLDfQ03C4puZXN
267
270
  mlrun/platforms/__init__.py,sha256=ggSGF7inITs6S-vj9u4S9X_5psgbA0G3GVqf7zu8qYc,2406
268
271
  mlrun/platforms/iguazio.py,sha256=1h5BpdAEQJBg2vIt7ySjUADU0ip5OkaMYr0_VREi9ys,13084
269
272
  mlrun/projects/__init__.py,sha256=Lv5rfxyXJrw6WGOWJKhBz66M6t3_zsNMCfUD6waPwx4,1153
270
- mlrun/projects/operations.py,sha256=C-28FkDxJvjSn_KKgVqqXXKUuEsM7BIbqaE44vVWYjs,18712
271
- mlrun/projects/pipelines.py,sha256=9nYzoiw7BIb1g8NzJBIoFoo4tROXvxsVn85CBbYG2QQ,38140
272
- mlrun/projects/project.py,sha256=b59XvFbQ35zzZG9ZBP6hygaODiyGKstUEsuaqqgKS6Y,176478
273
+ mlrun/projects/operations.py,sha256=60ARXslBZdia7NcQvD_OxG0tOm6c8oUMDJkLKjzzMS0,18843
274
+ mlrun/projects/pipelines.py,sha256=8Dd5hqi_kUeOKh8_PS5cgiFYb_oDdLLlS-pqswmIq4s,39417
275
+ mlrun/projects/project.py,sha256=BYBIeygcK7Bw4Yf53aaYSWXcC9amocvnAF0R1MC1aS0,176951
273
276
  mlrun/runtimes/__init__.py,sha256=hDtZU6gBb25Ay-AXjJ7YvzrSQhsvjEVwtz-hmBkw3vA,8695
274
- mlrun/runtimes/base.py,sha256=Yr_ATgHjCsE9jbbn8tVhjV3Ntky7MA1WjGFLlSxlXHc,36857
277
+ mlrun/runtimes/base.py,sha256=j8eVPkpLbI0mN2yRKPn7kOOk7bkM2pAxgoP2AVxIT5M,36940
275
278
  mlrun/runtimes/daskjob.py,sha256=xvN8ajs3-_voqxrfz6b3rh_idNw4ypRAkPRWGOnDMGA,19149
276
279
  mlrun/runtimes/funcdoc.py,sha256=CC9cWRPgBiM2sk4NJTqusjc6O9kZ-49vGA5WRPjREKE,9796
277
280
  mlrun/runtimes/function_reference.py,sha256=iWKRe4r2GTc5S8FOIASYUNLwwne8NqIui51PFr8Q4mg,4918
278
281
  mlrun/runtimes/generators.py,sha256=v28HdNgxdHvj888G1dTnUeQZz-D9iTO0hoGeZbCdiuQ,7241
279
282
  mlrun/runtimes/kubejob.py,sha256=ptBnMTIjukbEznkdixmbGvBqzujXrRzqNfP7ze6M76M,8660
280
- mlrun/runtimes/local.py,sha256=2zWAjEQE2wS7mf9tjn2Ru2_H8nNh22IjH4humcgfWqA,21790
283
+ mlrun/runtimes/local.py,sha256=MKF-8Q3Xy57cskjfC-FjuK8YW5mhG8lde0eklJbOwIQ,21924
281
284
  mlrun/runtimes/pod.py,sha256=I9cfZH-u7ZmAHKc8D7htzKILO1K9lzfoHjBOVe29trU,64406
282
285
  mlrun/runtimes/remotesparkjob.py,sha256=1MJLNzrw17wQoXy11KowHU18h_R_6R9iNZpqPMzt28c,7329
283
- mlrun/runtimes/utils.py,sha256=MehwJHCm2ZMcnWqDp06karKEN-6rp98-muQiD1pkVTA,14188
286
+ mlrun/runtimes/utils.py,sha256=OFATL8d0c5vKN9N2enAu2oS3b4H71RfeG776ZnfZ0J4,14332
284
287
  mlrun/runtimes/databricks_job/__init__.py,sha256=kXGBqhLN0rlAx0kTXhozGzFsIdSqW0uTSKMmsLgq_is,569
285
288
  mlrun/runtimes/databricks_job/databricks_cancel_task.py,sha256=sIqIg5DQAf4j0wCPA-G0GoxY6vacRddxCy5KDUZszek,2245
286
289
  mlrun/runtimes/databricks_job/databricks_runtime.py,sha256=a9W7A8sboteQov0Z9uVcthEU3FGYFf2cdAsi-vdjH1w,12749
@@ -289,12 +292,12 @@ mlrun/runtimes/mpijob/__init__.py,sha256=V_1gQD1VHa0Qvjqgyv8RLouH27Sy9YTwj2ZG62o
289
292
  mlrun/runtimes/mpijob/abstract.py,sha256=kDWo-IY1FKLZhI30j38Xx9HMhlUvHezfd1DT2ShoxZY,9161
290
293
  mlrun/runtimes/mpijob/v1.py,sha256=1XQZC7AIMGX_AQCbApcwpH8I7y39-v0v2O35MvxjXoo,3213
291
294
  mlrun/runtimes/nuclio/__init__.py,sha256=gx1kizzKv8pGT5TNloN1js1hdbxqDw3rM90sLVYVffY,794
292
- mlrun/runtimes/nuclio/api_gateway.py,sha256=MKxlXHLU81AUv07_IBdK2hUyzr23RDzXGYCh4P_z7iA,23693
293
- mlrun/runtimes/nuclio/function.py,sha256=hqBghjh8FynaZ_gc6aqECwj-sSdm4S5NAY1ysqhJWwk,49028
295
+ mlrun/runtimes/nuclio/api_gateway.py,sha256=_tkqyH63cyIVcjZEiSP--bh_mOAOGGclYY7wyQ5q_JA,24683
296
+ mlrun/runtimes/nuclio/function.py,sha256=OszUbbADwqvV_O9cRxoTry5rIbRbaBKBTK0IwHGvFk0,48928
294
297
  mlrun/runtimes/nuclio/nuclio.py,sha256=sLK8KdGO1LbftlL3HqPZlFOFTAAuxJACZCVl1c0Ha6E,2942
295
298
  mlrun/runtimes/nuclio/serving.py,sha256=H3bSI33FmfOBkL99ZU6_xKbFx4qKdyQVdpIwwfhK5qo,29649
296
299
  mlrun/runtimes/nuclio/application/__init__.py,sha256=rRs5vasy_G9IyoTpYIjYDafGoL6ifFBKgBtsXn31Atw,614
297
- mlrun/runtimes/nuclio/application/application.py,sha256=uoOuf0JJQd63uZYwZs0G2NoV6_vX21k2TXdx7J9XyfE,18856
300
+ mlrun/runtimes/nuclio/application/application.py,sha256=oEbu50cMwjHo9Y8BXFtEgXnvxe1DHSQAUtnOaFKv_gc,18848
298
301
  mlrun/runtimes/nuclio/application/reverse_proxy.go,sha256=JIIYae6bXzCLf3jXuu49KWPQYoXr_FDQ2Rbo1OWKAd0,3150
299
302
  mlrun/runtimes/sparkjob/__init__.py,sha256=_KPvk0qefeLtHO6lxQE_AMOGiMTG_OT48eRCE4Z2ldw,709
300
303
  mlrun/runtimes/sparkjob/spark3job.py,sha256=1bNRy72Migrh_ZASQOx7UlSZTbB-xpNc76sz4kfc9UM,41191
@@ -302,7 +305,7 @@ mlrun/serving/__init__.py,sha256=_6HRAOuS2Ehjo3vwx5h1aI_-JppxEAsl4VfEERAbGFE,107
302
305
  mlrun/serving/merger.py,sha256=PXLn3A21FiLteJHaDSLm5xKNT-80eTTjfHUJnBX1gKY,6116
303
306
  mlrun/serving/remote.py,sha256=MrFByphQWmIsKXqw-MOwl2Q1hbtWReYVRKvlcKj9pfw,17980
304
307
  mlrun/serving/routers.py,sha256=scvpXD0VmgGRLJb2UqNq0o39ML2_F_SyZ4OXVQhJIOM,55086
305
- mlrun/serving/server.py,sha256=p_wYc6KtRF0X-AogrI4R5mGZT9Hy0BBFe2Ulhbi9mw0,21045
308
+ mlrun/serving/server.py,sha256=U27KHG85Q-Eap3bX4sZlutH_YkpTr1oO89MlkHF9ACs,21081
306
309
  mlrun/serving/serving_wrapper.py,sha256=R670-S6PX_d5ER6jiHtRvacuPyFzQH0mEf2K0sBIIOM,836
307
310
  mlrun/serving/states.py,sha256=RAWaL3f65-WAa86arKXW8G35TA04Gcp_Z5-gPrDVQr8,57395
308
311
  mlrun/serving/utils.py,sha256=WO0n_YTO0YVPTjp_90zxRl4vey4flDgw5vaOHK5p_qY,3871
@@ -319,17 +322,17 @@ mlrun/utils/azure_vault.py,sha256=IEFizrDGDbAaoWwDr1WoA88S_EZ0T--vjYtY-i0cvYQ,34
319
322
  mlrun/utils/clones.py,sha256=mJpx4nyFiY6jlBCvFABsNuyi_mr1mvfPWn81vlafpOU,7361
320
323
  mlrun/utils/condition_evaluator.py,sha256=-nGfRmZzivn01rHTroiGY4rqEv8T1irMyhzxEei-sKc,1897
321
324
  mlrun/utils/db.py,sha256=KEa-vzicUhzIwo1wBXax2ZuXtYgf5to7wnsY3CYCiOQ,1713
322
- mlrun/utils/helpers.py,sha256=QHon5T8FFgN8IojpeMpKnGy3VCnDjjx5BXS47WcpiBY,53592
325
+ mlrun/utils/helpers.py,sha256=6Jik9bf1nAilMEDaaFs5K0oS2ETrZa_RVEFfATHh4ho,53687
323
326
  mlrun/utils/http.py,sha256=l_JCPrCq8bfYUcUcAFWUPvb9Xu-93bLGIhV-H-XCU9s,8707
324
- mlrun/utils/logger.py,sha256=0VoctKdsxqGDrzTZGHj9Coz1yWeEIuF9FIuNzkMDOo8,8228
327
+ mlrun/utils/logger.py,sha256=CG5pgkMeU3VAkIP0pSGOwvFtm0tJYzmPVF8jEp2EtlU,9073
325
328
  mlrun/utils/regex.py,sha256=Nd7xnDHU9PEOsse6rFwLNVgU4AaYCyuwMmQ9qgx2-Vw,4581
326
329
  mlrun/utils/retryer.py,sha256=GzDMeATklqxcKSLYaFYcqioh8e5cbWRxA1_XKrGR1A4,7570
327
330
  mlrun/utils/singleton.py,sha256=p1Y-X0mPSs_At092GS-pZCA8CTR62HOqPU07_ZH6-To,869
328
- mlrun/utils/v3io_clients.py,sha256=7eReciHBPLuLW6b5DIc8emnmrjh4D8hXPuqZDooR6HQ,1284
331
+ mlrun/utils/v3io_clients.py,sha256=F7zO2NaXSSih6B35LkwuKW_y2CdV5C1ztP-Xs2FsgpQ,1282
329
332
  mlrun/utils/vault.py,sha256=xUiKL17dCXjwQJ33YRzQj0oadUXATlFWPzKKYAESoQk,10447
330
333
  mlrun/utils/notifications/__init__.py,sha256=eUzQDBxSQmMZASRY-YAnYS6tL5801P0wEjycp3Dvoe0,990
331
- mlrun/utils/notifications/notification_pusher.py,sha256=plDxHJNEtpTyYaxpBts2JFNjB3mFB9RpwshT3B3Ixys,26586
332
- mlrun/utils/notifications/notification/__init__.py,sha256=Kucv9d0x1MBk-6kxpe1-3He6eKCRinPeItcbiJsdDqg,2092
334
+ mlrun/utils/notifications/notification_pusher.py,sha256=v-bB05rkDW04f52Wsh_1-UD77M2FNFukmQO9wglVIRg,26918
335
+ mlrun/utils/notifications/notification/__init__.py,sha256=2in3F2q8gtYDiDoQ4i9BIIE2I06OokT2EW49vs2krRA,2168
333
336
  mlrun/utils/notifications/notification/base.py,sha256=b0nncv0oV01wNeT-3upWQkcvyVVbBbJkrFgk6PMAusw,2788
334
337
  mlrun/utils/notifications/notification/console.py,sha256=MAVk7v5PJ52vdGRv76YcEPixWgV0licBPWGpR01uR40,2643
335
338
  mlrun/utils/notifications/notification/git.py,sha256=ELZ-ZmbFDb39A0OUIhtvuSbqJoVfF_o_IOxMD5eBlv4,5351
@@ -337,11 +340,11 @@ mlrun/utils/notifications/notification/ipython.py,sha256=ZtVL30B_Ha0VGoo4LxO-voT
337
340
  mlrun/utils/notifications/notification/slack.py,sha256=Vc6EHdnVAZe-p4ZWMvLc23YjMIDE3h2flf2b83ATVCA,7286
338
341
  mlrun/utils/notifications/notification/webhook.py,sha256=WgfxX1cpm8n2A-O08pwnsP4tzbxxv_vNUSnyXG4uKts,2752
339
342
  mlrun/utils/version/__init__.py,sha256=7kkrB7hEZ3cLXoWj1kPoDwo4MaswsI2JVOBpbKgPAgc,614
340
- mlrun/utils/version/version.json,sha256=2kV8Z_V5ST_hN4Z2-TyDgixZnf1J7_0MfI0ZJjNSxmA,89
343
+ mlrun/utils/version/version.json,sha256=O08dwe4vCB5egFnGFdaTTHrNAx9qeAfHhxicYWZ2P2Y,89
341
344
  mlrun/utils/version/version.py,sha256=eEW0tqIAkU9Xifxv8Z9_qsYnNhn3YH7NRAfM-pPLt1g,1878
342
- mlrun-1.7.0rc18.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
343
- mlrun-1.7.0rc18.dist-info/METADATA,sha256=8YwezT9Lp6AI2YVAQdKsO0SInfKbJ2ys1Mz8pbkMmkk,19144
344
- mlrun-1.7.0rc18.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
345
- mlrun-1.7.0rc18.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
346
- mlrun-1.7.0rc18.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
347
- mlrun-1.7.0rc18.dist-info/RECORD,,
345
+ mlrun-1.7.0rc19.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
346
+ mlrun-1.7.0rc19.dist-info/METADATA,sha256=zzSesln8VOr3uXku5dgFCN9A7B6_L3h4Bup_VjtVoa8,19122
347
+ mlrun-1.7.0rc19.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
348
+ mlrun-1.7.0rc19.dist-info/entry_points.txt,sha256=1Owd16eAclD5pfRCoJpYC2ZJSyGNTtUr0nCELMioMmU,46
349
+ mlrun-1.7.0rc19.dist-info/top_level.txt,sha256=NObLzw3maSF9wVrgSeYBv-fgnHkAJ1kEkh12DLdd5KM,6
350
+ mlrun-1.7.0rc19.dist-info/RECORD,,
@@ -1,335 +0,0 @@
1
- # Copyright 2024 Iguazio
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # TODO: Move this module into the TSDB abstraction:
16
- # mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py
17
-
18
- from datetime import datetime
19
- from io import StringIO
20
- from typing import Literal, Optional, Union
21
-
22
- import pandas as pd
23
-
24
- import mlrun
25
- import mlrun.common.schemas.model_monitoring.constants as mm_constants
26
- import mlrun.model_monitoring.writer as mm_writer
27
- import mlrun.utils.v3io_clients
28
- from mlrun.common.schemas.model_monitoring.model_endpoints import (
29
- ModelEndpointMonitoringMetric,
30
- ModelEndpointMonitoringMetricNoData,
31
- ModelEndpointMonitoringMetricType,
32
- ModelEndpointMonitoringMetricValues,
33
- ModelEndpointMonitoringResultValues,
34
- _compose_full_name,
35
- _ModelEndpointMonitoringMetricValuesBase,
36
- )
37
- from mlrun.model_monitoring.db.stores.v3io_kv.kv_store import KVStoreBase
38
- from mlrun.model_monitoring.db.tsdb.v3io.v3io_connector import _TSDB_BE
39
- from mlrun.utils import logger
40
-
41
-
42
- def _get_sql_query(
43
- endpoint_id: str,
44
- names: list[tuple[str, str]],
45
- table_name: str = mm_constants.V3IOTSDBTables.APP_RESULTS,
46
- name: str = mm_writer.ResultData.RESULT_NAME,
47
- ) -> str:
48
- with StringIO() as query:
49
- query.write(
50
- f"SELECT * FROM '{table_name}' "
51
- f"WHERE {mm_writer.WriterEvent.ENDPOINT_ID}='{endpoint_id}'"
52
- )
53
- if names:
54
- query.write(" AND (")
55
-
56
- for i, (app_name, result_name) in enumerate(names):
57
- sub_cond = (
58
- f"({mm_writer.WriterEvent.APPLICATION_NAME}='{app_name}' "
59
- f"AND {name}='{result_name}')"
60
- )
61
- if i != 0: # not first sub condition
62
- query.write(" OR ")
63
- query.write(sub_cond)
64
-
65
- query.write(")")
66
-
67
- query.write(";")
68
- return query.getvalue()
69
-
70
-
71
- def _get_result_kind(result_df: pd.DataFrame) -> mm_constants.ResultKindApp:
72
- kind_series = result_df[mm_writer.ResultData.RESULT_KIND]
73
- unique_kinds = kind_series.unique()
74
- if len(unique_kinds) > 1:
75
- logger.warning(
76
- "The result has more than one kind",
77
- kinds=list(unique_kinds),
78
- application_name=result_df[mm_writer.WriterEvent.APPLICATION_NAME],
79
- result_name=result_df[mm_writer.ResultData.RESULT_NAME],
80
- )
81
- return unique_kinds[0]
82
-
83
-
84
- def read_metrics_data(
85
- *,
86
- project: str,
87
- endpoint_id: str,
88
- start: datetime,
89
- end: datetime,
90
- metrics: list[ModelEndpointMonitoringMetric],
91
- type: Literal["metrics", "results"] = "results",
92
- ) -> Union[
93
- list[
94
- Union[
95
- ModelEndpointMonitoringResultValues,
96
- ModelEndpointMonitoringMetricNoData,
97
- ],
98
- ],
99
- list[
100
- Union[
101
- ModelEndpointMonitoringMetricValues,
102
- ModelEndpointMonitoringMetricNoData,
103
- ],
104
- ],
105
- ]:
106
- """
107
- Read metrics OR results from the TSDB and return as a list.
108
- Note: the type must match the actual metrics in the `metrics` parameter.
109
- If the type is "results", pass only results in the `metrics` parameter.
110
- """
111
- client = mlrun.utils.v3io_clients.get_frames_client(
112
- address=mlrun.mlconf.v3io_framesd,
113
- container=KVStoreBase.get_v3io_monitoring_apps_container(project),
114
- )
115
-
116
- if type == "metrics":
117
- table_name = mm_constants.V3IOTSDBTables.METRICS
118
- name = mm_constants.MetricData.METRIC_NAME
119
- df_handler = df_to_metrics_values
120
- elif type == "results":
121
- table_name = mm_constants.V3IOTSDBTables.APP_RESULTS
122
- name = mm_constants.ResultData.RESULT_NAME
123
- df_handler = df_to_results_values
124
- else:
125
- raise ValueError(f"Invalid {type = }")
126
-
127
- query = _get_sql_query(
128
- endpoint_id,
129
- [(metric.app, metric.name) for metric in metrics],
130
- table_name=table_name,
131
- name=name,
132
- )
133
-
134
- logger.debug("Querying V3IO TSDB", query=query)
135
-
136
- df: pd.DataFrame = client.read(
137
- backend=_TSDB_BE,
138
- query=query,
139
- start=start,
140
- end=end,
141
- )
142
-
143
- logger.debug(
144
- "Read a data-frame", project=project, endpoint_id=endpoint_id, is_empty=df.empty
145
- )
146
-
147
- return df_handler(df=df, metrics=metrics, project=project)
148
-
149
-
150
- def df_to_results_values(
151
- *, df: pd.DataFrame, metrics: list[ModelEndpointMonitoringMetric], project: str
152
- ) -> list[
153
- Union[ModelEndpointMonitoringResultValues, ModelEndpointMonitoringMetricNoData]
154
- ]:
155
- """
156
- Parse a time-indexed data-frame of results from the TSDB into a list of
157
- results values per distinct results.
158
- When a result is not found in the data-frame, it is represented in no-data object.
159
- """
160
- metrics_without_data = {metric.full_name: metric for metric in metrics}
161
-
162
- metrics_values: list[
163
- Union[ModelEndpointMonitoringResultValues, ModelEndpointMonitoringMetricNoData]
164
- ] = []
165
- if not df.empty:
166
- grouped = df.groupby(
167
- [mm_writer.WriterEvent.APPLICATION_NAME, mm_writer.ResultData.RESULT_NAME],
168
- observed=False,
169
- )
170
- else:
171
- grouped = []
172
- logger.debug("No results", missing_results=metrics_without_data.keys())
173
- for (app_name, name), sub_df in grouped:
174
- result_kind = _get_result_kind(sub_df)
175
- full_name = _compose_full_name(project=project, app=app_name, name=name)
176
- metrics_values.append(
177
- ModelEndpointMonitoringResultValues(
178
- full_name=full_name,
179
- result_kind=result_kind,
180
- values=list(
181
- zip(
182
- sub_df.index,
183
- sub_df[mm_writer.ResultData.RESULT_VALUE],
184
- sub_df[mm_writer.ResultData.RESULT_STATUS],
185
- )
186
- ), # pyright: ignore[reportArgumentType]
187
- )
188
- )
189
- del metrics_without_data[full_name]
190
-
191
- for metric in metrics_without_data.values():
192
- if metric.full_name == get_invocations_fqn(project):
193
- continue
194
- metrics_values.append(
195
- ModelEndpointMonitoringMetricNoData(
196
- full_name=metric.full_name,
197
- type=ModelEndpointMonitoringMetricType.RESULT,
198
- )
199
- )
200
-
201
- return metrics_values
202
-
203
-
204
- def df_to_metrics_values(
205
- *, df: pd.DataFrame, metrics: list[ModelEndpointMonitoringMetric], project: str
206
- ) -> list[
207
- Union[ModelEndpointMonitoringMetricValues, ModelEndpointMonitoringMetricNoData]
208
- ]:
209
- """
210
- Parse a time-indexed data-frame of metrics from the TSDB into a list of
211
- metrics values per distinct results.
212
- When a metric is not found in the data-frame, it is represented in no-data object.
213
- """
214
- metrics_without_data = {metric.full_name: metric for metric in metrics}
215
-
216
- metrics_values: list[
217
- Union[ModelEndpointMonitoringMetricValues, ModelEndpointMonitoringMetricNoData]
218
- ] = []
219
- if not df.empty:
220
- grouped = df.groupby(
221
- [mm_writer.WriterEvent.APPLICATION_NAME, mm_writer.MetricData.METRIC_NAME],
222
- observed=False,
223
- )
224
- else:
225
- logger.debug("No metrics", missing_metrics=metrics_without_data.keys())
226
- grouped = []
227
- for (app_name, name), sub_df in grouped:
228
- full_name = _compose_full_name(
229
- project=project,
230
- app=app_name,
231
- name=name,
232
- type=ModelEndpointMonitoringMetricType.METRIC,
233
- )
234
- metrics_values.append(
235
- ModelEndpointMonitoringMetricValues(
236
- full_name=full_name,
237
- values=list(
238
- zip(
239
- sub_df.index,
240
- sub_df[mm_writer.MetricData.METRIC_VALUE],
241
- )
242
- ), # pyright: ignore[reportArgumentType]
243
- )
244
- )
245
- del metrics_without_data[full_name]
246
-
247
- for metric in metrics_without_data.values():
248
- metrics_values.append(
249
- ModelEndpointMonitoringMetricNoData(
250
- full_name=metric.full_name,
251
- type=ModelEndpointMonitoringMetricType.METRIC,
252
- )
253
- )
254
-
255
- return metrics_values
256
-
257
-
258
- def get_invocations_fqn(project: str):
259
- return mlrun.common.schemas.model_monitoring.model_endpoints._compose_full_name(
260
- project=project,
261
- app=mm_constants.SpecialApps.MLRUN_INFRA,
262
- name=mlrun.common.schemas.model_monitoring.constants.PredictionsQueryConstants.INVOCATIONS,
263
- type=mlrun.common.schemas.model_monitoring.ModelEndpointMonitoringMetricType.METRIC,
264
- )
265
-
266
-
267
- def read_predictions(
268
- *,
269
- project: str,
270
- endpoint_id: str,
271
- start: Optional[Union[datetime, str]] = None,
272
- end: Optional[Union[datetime, str]] = None,
273
- aggregation_window: Optional[str] = None,
274
- limit: Optional[int] = None,
275
- ) -> _ModelEndpointMonitoringMetricValuesBase:
276
- client = mlrun.utils.v3io_clients.get_frames_client(
277
- address=mlrun.mlconf.v3io_framesd,
278
- container="users",
279
- )
280
- frames_client_kwargs = {}
281
- if aggregation_window:
282
- frames_client_kwargs["step"] = aggregation_window
283
- frames_client_kwargs["aggregation_window"] = aggregation_window
284
- if limit:
285
- frames_client_kwargs["limit"] = limit
286
- df: pd.DataFrame = client.read(
287
- backend=_TSDB_BE,
288
- table=f"pipelines/{project}/model-endpoints/predictions",
289
- columns=["latency"],
290
- filter=f"endpoint_id=='{endpoint_id}'",
291
- start=start,
292
- end=end,
293
- aggregators="count",
294
- **frames_client_kwargs,
295
- )
296
-
297
- full_name = get_invocations_fqn(project)
298
-
299
- if df.empty:
300
- return ModelEndpointMonitoringMetricNoData(
301
- full_name=full_name,
302
- type=ModelEndpointMonitoringMetricType.METRIC,
303
- )
304
-
305
- return ModelEndpointMonitoringMetricValues(
306
- full_name=full_name,
307
- values=list(
308
- zip(
309
- df.index,
310
- df["count(latency)"],
311
- )
312
- ),
313
- )
314
-
315
-
316
- def read_prediction_metric_for_endpoint_if_exists(
317
- *,
318
- project: str,
319
- endpoint_id: str,
320
- ) -> Optional[ModelEndpointMonitoringMetric]:
321
- predictions = read_predictions(
322
- project=project,
323
- endpoint_id=endpoint_id,
324
- start="0",
325
- end="now",
326
- limit=1, # Read just one record, because we just want to check if there is any data for this endpoint_id
327
- )
328
- if predictions:
329
- return ModelEndpointMonitoringMetric(
330
- project=project,
331
- app=mm_constants.SpecialApps.MLRUN_INFRA,
332
- type=ModelEndpointMonitoringMetricType.METRIC,
333
- name=mlrun.common.schemas.model_monitoring.constants.PredictionsQueryConstants.INVOCATIONS,
334
- full_name=get_invocations_fqn(project),
335
- )