fiddler-client 3.2.0.dev3__py3-none-any.whl → 3.2.0.dev5__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.
fiddler/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.0.dev3
1
+ 3.2.0.dev5
@@ -36,6 +36,7 @@ class AlertRule(
36
36
  baseline_id: UUID | str | None = None,
37
37
  segment_id: UUID | str | None = None,
38
38
  compare_bin_delta: int | None = None,
39
+ evaluation_delay: int = 0,
39
40
  ) -> None:
40
41
  """Construct a alert rule instance."""
41
42
  self.name = name
@@ -46,6 +47,7 @@ class AlertRule(
46
47
  self.priority = priority
47
48
  self.compare_to = compare_to
48
49
  self.compare_bin_delta = compare_bin_delta
50
+ self.evaluation_delay = evaluation_delay
49
51
  self.warning_threshold = warning_threshold
50
52
  self.critical_threshold = critical_threshold
51
53
  self.condition = condition
@@ -95,6 +97,7 @@ class AlertRule(
95
97
  baseline_id=resp_obj.baseline.id if resp_obj.baseline else None,
96
98
  segment_id=resp_obj.segment.id if resp_obj.segment else None,
97
99
  compare_bin_delta=resp_obj.compare_bin_delta,
100
+ evaluation_delay=resp_obj.evaluation_delay,
98
101
  )
99
102
 
100
103
  # Add remaining fields
@@ -126,6 +129,7 @@ class AlertRule(
126
129
  'id',
127
130
  'created_at',
128
131
  'updated_at',
132
+ 'evaluation_delay',
129
133
  ]
130
134
  for field in fields:
131
135
  setattr(self, field, getattr(resp_obj, field, None))
@@ -222,6 +226,7 @@ class AlertRule(
222
226
  'warning_threshold': self.warning_threshold,
223
227
  'feature_names': self.columns,
224
228
  'compare_bin_delta': self.compare_bin_delta,
229
+ 'evaluation_delay': self.evaluation_delay,
225
230
  }
226
231
  if self.baseline_id:
227
232
  payload['baseline_id'] = self.baseline_id
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import os
3
4
  import tempfile
4
5
  from pathlib import Path
5
6
  from typing import Any, Callable
@@ -85,27 +86,40 @@ class EventPublisher(ConnectionMixin):
85
86
  dataset_name: str | None = None,
86
87
  update: bool = False,
87
88
  ) -> Job:
88
- with tempfile.NamedTemporaryFile(suffix='.parquet') as temp_file:
89
- try:
90
- source.to_parquet(temp_file.name, index=False)
91
- return self._publish_file(
92
- source=temp_file.name,
93
- environment=environment,
94
- dataset_name=dataset_name,
95
- update=update,
96
- )
97
- except Exception:
98
- logger.warning(
99
- 'Failed to convert input dataframe to parquet format. Retrying as a CSV file.'
100
- )
101
- with tempfile.NamedTemporaryFile(suffix='.csv') as temp_file:
89
+ temp_file = tempfile.NamedTemporaryFile(suffix='.parquet', delete=False)
90
+ try:
91
+ source.to_parquet(temp_file.name, index=False)
92
+ job = self._publish_file(
93
+ source=temp_file.name,
94
+ environment=environment,
95
+ dataset_name=dataset_name,
96
+ update=update,
97
+ )
98
+ temp_file.close()
99
+ return job
100
+
101
+ except Exception:
102
+ logger.warning(
103
+ 'Failed to convert input dataframe to parquet format. Retrying as a CSV file.'
104
+ )
105
+
106
+ finally:
107
+ os.unlink(temp_file.name)
108
+
109
+ # Trying as csv file as source could not be converted to parquet
110
+ try:
111
+ temp_file = tempfile.NamedTemporaryFile(suffix='.csv', delete=False)
102
112
  source.to_csv(temp_file.name, index=False)
103
- return self._publish_file(
113
+ job = self._publish_file(
104
114
  source=temp_file.name,
105
115
  environment=environment,
106
116
  dataset_name=dataset_name,
107
117
  update=update,
108
118
  )
119
+ temp_file.close()
120
+ finally:
121
+ os.unlink(temp_file.name)
122
+ return job
109
123
 
110
124
  def _publish_stream(
111
125
  self,
@@ -26,6 +26,7 @@ class AlertRuleResp(BaseModel):
26
26
  compare_to: Union[str, CompareTo]
27
27
  condition: Union[str, AlertCondition]
28
28
  compare_bin_delta: Optional[int]
29
+ evaluation_delay: int
29
30
  bin_size: Union[str, BinSize]
30
31
  columns: Optional[List[str]] = Field(alias='feature_names')
31
32
  critical_threshold: float
@@ -45,6 +45,7 @@ API_RESPONSE_200 = {
45
45
  'compare_to': 'raw_value',
46
46
  'condition': 'greater',
47
47
  'warning_threshold': 1.0,
48
+ 'evaluation_delay': 10,
48
49
  'critical_threshold': 2.0,
49
50
  'updated_at': '2024-04-17T12:42:15.672909+00:00',
50
51
  'enable_notification': True,
@@ -183,6 +184,7 @@ LIST_API_RESPONSE = {
183
184
  'updated_at': '2024-04-17T12:43:23.871997+00:00',
184
185
  'enable_notification': True,
185
186
  'compare_bin_delta': 0,
187
+ 'evaluation_delay': 0,
186
188
  'created_at': '2024-04-17T12:43:23.871997+00:00',
187
189
  'created_by': {
188
190
  'id': '287949c2-13f8-49fc-a559-55b2e6f36e9b',
@@ -321,12 +323,14 @@ def test_add_alert_rule_success() -> None:
321
323
  critical_threshold=0.5,
322
324
  warning_threshold=0.1,
323
325
  columns=['gender', 'creditscore'],
326
+ evaluation_delay=10,
324
327
  ).create()
325
328
 
326
329
  assert isinstance(alert_rule, AlertRule)
327
330
  assert alert_rule.id == UUID(ALERT_RULE_ID)
328
331
  assert alert_rule.model.id == UUID(MODEL_ID)
329
332
  assert alert_rule.project_id == UUID(PROJECT_ID)
333
+ assert alert_rule.evaluation_delay == 10
330
334
 
331
335
 
332
336
  @responses.activate
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 3.2.0.dev3
3
+ Version: 3.2.0.dev5
4
4
  Summary: Python client for Fiddler Platform
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -15,7 +15,7 @@ Requires-Dist: requests <3
15
15
  Requires-Dist: requests-toolbelt
16
16
  Requires-Dist: pandas >=1.2.5
17
17
  Requires-Dist: pydantic <2,>=1.10.15
18
- Requires-Dist: deprecated ==1.2.13
18
+ Requires-Dist: deprecated ==1.2.14
19
19
  Requires-Dist: tqdm
20
20
  Requires-Dist: simplejson >=3.17.0
21
21
  Requires-Dist: pyarrow >=7.0.0
@@ -1,4 +1,4 @@
1
- fiddler/VERSION,sha256=qP38gd73_0CmX2pYYwGWuMsLEV3njfXYC8AX_yLrGcI,11
1
+ fiddler/VERSION,sha256=TRCU6c5adh6DHoLo2ldYt5MQ4P39J9008dME7ir402Y,11
2
2
  fiddler/__init__.py,sha256=pBLW7thJD1HkYhH5bJJbJFXSN8FNezos-rBU3HWhb4A,3794
3
3
  fiddler/configs.py,sha256=ZimSo0Gk7j1BFkjDHdRdycrGZ8oh-7G5TBXYiOh1HvU,217
4
4
  fiddler/connection.py,sha256=fLdSXpu5dwoK-h4Vtc9nbdKENOJ7jfEmrnDhVAtChck,5677
@@ -17,12 +17,12 @@ fiddler/constants/model_deployment.py,sha256=SfagLKVD7tK1QmYQFJLDrA4-6FaSeNF6tik
17
17
  fiddler/constants/xai.py,sha256=GR8VguB6FTfMJZ291FIbfDsY4S9BGOft3VxNW5jMf90,214
18
18
  fiddler/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  fiddler/entities/alert_record.py,sha256=RcDACWDNpntkiId-JpkLQvVeIbuaZAzn6AWl2zYIh9A,3564
20
- fiddler/entities/alert_rule.py,sha256=JQknBnSNnjIL4CeYvCBy5TVNN7LVE4-7BtBFpaQ9tJ0,11744
20
+ fiddler/entities/alert_rule.py,sha256=ONBY11yZ54lTdmAqDYBZ6o4Ax7-7AFZS70UXY89SkCw,11971
21
21
  fiddler/entities/base.py,sha256=YCTLt1ta8UbD7u-5BW7v_ocA4S7LevEncI5XPS_SB60,2106
22
22
  fiddler/entities/baseline.py,sha256=k3D-K8WC5MkHDILyejRaH1v9jdCIymT96McDBOVQ9A0,7907
23
23
  fiddler/entities/custom_expression.py,sha256=SdS61JiI0gOxWwHAGxkHh1vqS5XsRtyeNSDs5E-Sg2U,6568
24
24
  fiddler/entities/dataset.py,sha256=kwD1pZMG6DQGIjejU7A2KUUBRgOi0o1qbbUX-PSlnGg,4399
25
- fiddler/entities/events.py,sha256=_orqFyg0m5tBREa21f36ZaX_4kKEtpA2Hsff0d__Uw0,5383
25
+ fiddler/entities/events.py,sha256=9pzg7J1v03o2DGgHX_uPsCSujwk5iyPEDJPrrBNWJbo,5662
26
26
  fiddler/entities/file.py,sha256=dk8ISfjy0--F2eF23Ae8vGiEZmJW6e9LMqNmKfrY2mE,4710
27
27
  fiddler/entities/job.py,sha256=Feiqo6ns4bRcp2uaV-kuGYAKs90-aYXvzqqi1yLivYE,5220
28
28
  fiddler/entities/model.py,sha256=giqLWvnqXsqrekJ3sIeHf3vUUYO43PxrGh6I_KsGfH4,19271
@@ -45,7 +45,7 @@ fiddler/packtools/project_attributions_helpers.py,sha256=K-xpsKfwRS5GOMYwTmXY-J3
45
45
  fiddler/packtools/template_model.py,sha256=slQjl5eEjhDUtvWeIF_WvSUerX7VjW0822uo4Qkx-gg,10484
46
46
  fiddler/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  fiddler/schemas/alert_record.py,sha256=Edfe264zUwqF856tMblN85CsEa_wn9oZCoLruvsNAbo,668
48
- fiddler/schemas/alert_rule.py,sha256=XbNZDBd5adLVvmyTydnG7lkdZ-ieI8maWACwBX-FQD0,1387
48
+ fiddler/schemas/alert_rule.py,sha256=1MVVuylxT2t7Otn6phg4CIXJZzWBRDc7sfYiVw4ShGA,1413
49
49
  fiddler/schemas/base.py,sha256=upzAmneEz169h_w-UDH_tY0Abo7DeK68YOZ5qVwIMa8,189
50
50
  fiddler/schemas/baseline.py,sha256=tBQji1GLYt0ZYgEK6ZTmXxk5nUYTI6oxMmSjNXnRfWw,933
51
51
  fiddler/schemas/custom_expression.py,sha256=LGHht3LB0HGghEfy808VnaF3nIQVGZjhf__f1CcLRoU,953
@@ -78,7 +78,7 @@ fiddler/tests/test_utils.py,sha256=AF6y7UfboEkCa-nNw0aF30SdHC7yW2Hh78J4H_4s78k,3
78
78
  fiddler/tests/utils.py,sha256=FEDbASW4pYZktdEK2FLnIDyZCwBzpb60m6EzkvOkwSc,335
79
79
  fiddler/tests/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
80
  fiddler/tests/apis/test_alert_record.py,sha256=_0EBRDn87TqTiO1KYEHKQQVtVZjj4lYjbt8Ix-RRTSg,3118
81
- fiddler/tests/apis/test_alert_rule.py,sha256=ax4-ravAzwbYbKay_Z8mksamTBaxlwZydFCD3EhLmfc,13196
81
+ fiddler/tests/apis/test_alert_rule.py,sha256=5mou0sgwb7LEo_dirbz_6-cSoV7I6GD0r-hNzqvhPbk,13341
82
82
  fiddler/tests/apis/test_baseline.py,sha256=R_vvbZdSenpYMSydurENJrE_uNWE3sJR9sHJksfU_Jk,7494
83
83
  fiddler/tests/apis/test_custom_metric.py,sha256=QlNa80M9PxqaqzW-3nCtH5kKLRHYu2iqFDautBusbos,8208
84
84
  fiddler/tests/apis/test_dataset.py,sha256=1Xc9Ng91fLMc2C6dpKfse42fQ0anza3ZOKOD1TqCvTQ,4636
@@ -101,8 +101,8 @@ fiddler/utils/logger.py,sha256=FdJ3LkS9dbRjWsw5oJmNNsd7q0XRVEIvx5-TWys7L0k,669
101
101
  fiddler/utils/model_generator.py,sha256=TwQMQDpy-0gcq6HyL68s37N-sk_nGPq33mmppK6i7hI,2203
102
102
  fiddler/utils/validations.py,sha256=i8NtgrpCsitq6BPa5lygpKDh07oaOXu7PAlCIcMvqzY,408
103
103
  fiddler/utils/version.py,sha256=iC8Ry7UFl9EJW_xU1WbzO_l4yK6V7eQ6U5exB3xT864,531
104
- fiddler_client-3.2.0.dev3.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
- fiddler_client-3.2.0.dev3.dist-info/METADATA,sha256=s6-Lp2VoOIL8homkKGgcshE0xzMAJV8EuQykEvxrpYo,1602
106
- fiddler_client-3.2.0.dev3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
107
- fiddler_client-3.2.0.dev3.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
- fiddler_client-3.2.0.dev3.dist-info/RECORD,,
104
+ fiddler_client-3.2.0.dev5.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
+ fiddler_client-3.2.0.dev5.dist-info/METADATA,sha256=Xp8FudH9TQkwOgw8QaBMqj5Cx8pddqDN-kiqjiofB_A,1602
106
+ fiddler_client-3.2.0.dev5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
107
+ fiddler_client-3.2.0.dev5.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
+ fiddler_client-3.2.0.dev5.dist-info/RECORD,,