fiddler-client 3.3.1__py3-none-any.whl → 3.4.0.dev2__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 +1 -1
- fiddler/entities/alert_rule.py +1 -1
- fiddler/entities/xai.py +0 -38
- fiddler/tests/apis/test_alert_rule.py +109 -9
- fiddler/tests/apis/test_xai.py +0 -122
- fiddler/tests/constants.py +2 -0
- {fiddler_client-3.3.1.dist-info → fiddler_client-3.4.0.dev2.dist-info}/METADATA +1 -1
- {fiddler_client-3.3.1.dist-info → fiddler_client-3.4.0.dev2.dist-info}/RECORD +11 -11
- {fiddler_client-3.3.1.dist-info → fiddler_client-3.4.0.dev2.dist-info}/WHEEL +1 -1
- {fiddler_client-3.3.1.dist-info → fiddler_client-3.4.0.dev2.dist-info}/LICENSE.txt +0 -0
- {fiddler_client-3.3.1.dist-info → fiddler_client-3.4.0.dev2.dist-info}/top_level.txt +0 -0
fiddler/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.4.0.dev2
|
fiddler/entities/alert_rule.py
CHANGED
|
@@ -286,7 +286,7 @@ class AlertRule(
|
|
|
286
286
|
pagerduty_services=pagerduty_services,
|
|
287
287
|
pagerduty_severity=pagerduty_severity,
|
|
288
288
|
webhooks=webhooks,
|
|
289
|
-
).dict()
|
|
289
|
+
).dict(exclude_none=True)
|
|
290
290
|
except ValidationError as e:
|
|
291
291
|
logger.exception('Invalid input: The format of input is not correct')
|
|
292
292
|
raise e
|
fiddler/entities/xai.py
CHANGED
|
@@ -89,44 +89,6 @@ class XaiMixin:
|
|
|
89
89
|
|
|
90
90
|
return namedtuple('Explain', response.json()['data'])(**response.json()['data'])
|
|
91
91
|
|
|
92
|
-
@handle_api_error
|
|
93
|
-
def get_fairness(
|
|
94
|
-
self,
|
|
95
|
-
data_source: DatasetDataSource | SqlSliceQueryDataSource,
|
|
96
|
-
protected_features: list[str],
|
|
97
|
-
positive_outcome: str | int | float | bool,
|
|
98
|
-
score_threshold: float | None = None,
|
|
99
|
-
) -> tuple:
|
|
100
|
-
"""
|
|
101
|
-
Get fairness analysis on a dataset or a slice.
|
|
102
|
-
|
|
103
|
-
:param data_source: DataSource for the input dataset to compute
|
|
104
|
-
fairness on (DatasetDataSource or SqlSliceQueryDataSource)
|
|
105
|
-
:param protected_features: list of protected attribute names to compute
|
|
106
|
-
Fairness analysis on
|
|
107
|
-
:param positive_outcome: name of the positive outcome to compute
|
|
108
|
-
Fairness analysis on
|
|
109
|
-
:param score_threshold: Binary threshold value (between 0 and 1). Default to 0.5
|
|
110
|
-
|
|
111
|
-
:return: A named tuple with the fairness results.
|
|
112
|
-
"""
|
|
113
|
-
self._check_id_attributes()
|
|
114
|
-
|
|
115
|
-
payload: dict[str, Any] = {
|
|
116
|
-
'model_id': self.id,
|
|
117
|
-
'data_source': data_source.dict(exclude_none=True),
|
|
118
|
-
'protected_features': protected_features,
|
|
119
|
-
'positive_outcome': positive_outcome,
|
|
120
|
-
}
|
|
121
|
-
if score_threshold:
|
|
122
|
-
payload['score_threshold'] = score_threshold
|
|
123
|
-
|
|
124
|
-
response = self._client().post(url='/v3/analytics/fairness', data=payload)
|
|
125
|
-
|
|
126
|
-
return namedtuple('Fairness', response.json()['data'])(
|
|
127
|
-
**response.json()['data']
|
|
128
|
-
)
|
|
129
|
-
|
|
130
92
|
@handle_api_error
|
|
131
93
|
def get_slice(
|
|
132
94
|
self,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
+
import uuid
|
|
4
|
+
from copy import deepcopy
|
|
3
5
|
from http import HTTPStatus
|
|
4
6
|
from uuid import UUID
|
|
5
7
|
|
|
@@ -24,6 +26,8 @@ from fiddler.tests.constants import (
|
|
|
24
26
|
PROJECT_ID,
|
|
25
27
|
PROJECT_NAME,
|
|
26
28
|
TEST_EMAILS,
|
|
29
|
+
TEST_PAGERDUTY_SERVICES,
|
|
30
|
+
TEST_PAGERDUTY_SEVERITY,
|
|
27
31
|
TEST_WEBHOOKS,
|
|
28
32
|
URL,
|
|
29
33
|
)
|
|
@@ -77,8 +81,8 @@ API_RESPONSE_200 = {
|
|
|
77
81
|
|
|
78
82
|
ALERT_NOTIFICATION_API_RESPONSE_200 = {
|
|
79
83
|
'data': {
|
|
80
|
-
'emails':
|
|
81
|
-
'webhooks':
|
|
84
|
+
'emails': [],
|
|
85
|
+
'webhooks': [],
|
|
82
86
|
'pagerduty_services': [],
|
|
83
87
|
'pagerduty_severity': '',
|
|
84
88
|
},
|
|
@@ -332,30 +336,126 @@ def test_disable_notifications(caplog) -> None:
|
|
|
332
336
|
|
|
333
337
|
|
|
334
338
|
@responses.activate
|
|
335
|
-
def
|
|
339
|
+
def test_set_notifications_email() -> None:
|
|
336
340
|
responses.get(
|
|
337
341
|
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}',
|
|
338
342
|
json=API_RESPONSE_200,
|
|
339
343
|
)
|
|
340
344
|
|
|
341
345
|
alert_rule = AlertRule.get(id_=ALERT_RULE_ID)
|
|
346
|
+
notification_resp = deepcopy(ALERT_NOTIFICATION_API_RESPONSE_200)
|
|
347
|
+
notification_resp['data']['emails'] = TEST_EMAILS
|
|
342
348
|
resp = responses.patch(
|
|
343
349
|
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
344
|
-
json=
|
|
350
|
+
json=notification_resp,
|
|
345
351
|
)
|
|
346
352
|
notifications = alert_rule.set_notification_config(
|
|
347
353
|
emails=TEST_EMAILS,
|
|
348
|
-
webhooks=TEST_WEBHOOKS,
|
|
349
354
|
)
|
|
350
355
|
assert json.loads(resp.calls[0].request.body) == {
|
|
351
356
|
'emails': TEST_EMAILS,
|
|
357
|
+
}
|
|
358
|
+
assert notifications == notification_resp['data']
|
|
359
|
+
|
|
360
|
+
# Removing the emails from the notification config
|
|
361
|
+
notification_resp['data']['emails'] = []
|
|
362
|
+
resp = responses.patch(
|
|
363
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
364
|
+
json=notification_resp,
|
|
365
|
+
)
|
|
366
|
+
notifications = alert_rule.set_notification_config(
|
|
367
|
+
emails=[],
|
|
368
|
+
)
|
|
369
|
+
assert json.loads(resp.calls[0].request.body) == {
|
|
370
|
+
'emails': [],
|
|
371
|
+
}
|
|
372
|
+
assert notifications == notification_resp['data']
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
@responses.activate
|
|
376
|
+
def test_set_notifications_pagerduty() -> None:
|
|
377
|
+
responses.get(
|
|
378
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}',
|
|
379
|
+
json=API_RESPONSE_200,
|
|
380
|
+
)
|
|
381
|
+
|
|
382
|
+
alert_rule = AlertRule.get(id_=ALERT_RULE_ID)
|
|
383
|
+
notification_resp = deepcopy(ALERT_NOTIFICATION_API_RESPONSE_200)
|
|
384
|
+
notification_resp['data']['pagerduty_services'] = TEST_PAGERDUTY_SERVICES
|
|
385
|
+
notification_resp['data']['pagerduty_severity'] = TEST_PAGERDUTY_SEVERITY
|
|
386
|
+
resp = responses.patch(
|
|
387
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
388
|
+
json=notification_resp,
|
|
389
|
+
)
|
|
390
|
+
notifications = alert_rule.set_notification_config(
|
|
391
|
+
pagerduty_services=TEST_PAGERDUTY_SERVICES,
|
|
392
|
+
pagerduty_severity=TEST_PAGERDUTY_SEVERITY,
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
assert json.loads(resp.calls[0].request.body) == {
|
|
396
|
+
'pagerduty_services': TEST_PAGERDUTY_SERVICES,
|
|
397
|
+
'pagerduty_severity': TEST_PAGERDUTY_SEVERITY,
|
|
398
|
+
}
|
|
399
|
+
assert notifications == notification_resp['data']
|
|
400
|
+
|
|
401
|
+
# Removing the webhooks from the notification config
|
|
402
|
+
notification_resp['data']['pagerduty_services'] = []
|
|
403
|
+
notification_resp['data']['pagerduty_severity'] = ''
|
|
404
|
+
resp = responses.patch(
|
|
405
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
406
|
+
json=notification_resp,
|
|
407
|
+
)
|
|
408
|
+
notifications = alert_rule.set_notification_config(
|
|
409
|
+
pagerduty_services=[],
|
|
410
|
+
pagerduty_severity='',
|
|
411
|
+
)
|
|
412
|
+
assert json.loads(resp.calls[0].request.body) == {
|
|
413
|
+
'pagerduty_services': [],
|
|
414
|
+
'pagerduty_severity': '',
|
|
415
|
+
}
|
|
416
|
+
assert notifications == notification_resp['data']
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
@responses.activate
|
|
420
|
+
def test_set_notifications_webhooks() -> None:
|
|
421
|
+
responses.get(
|
|
422
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}',
|
|
423
|
+
json=API_RESPONSE_200,
|
|
424
|
+
)
|
|
425
|
+
|
|
426
|
+
alert_rule = AlertRule.get(id_=ALERT_RULE_ID)
|
|
427
|
+
notification_resp = deepcopy(ALERT_NOTIFICATION_API_RESPONSE_200)
|
|
428
|
+
notification_resp['data']['webhooks'] = TEST_WEBHOOKS
|
|
429
|
+
resp = responses.patch(
|
|
430
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
431
|
+
json=notification_resp,
|
|
432
|
+
)
|
|
433
|
+
notifications = alert_rule.set_notification_config(
|
|
434
|
+
webhooks=TEST_WEBHOOKS,
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
notification_resp['data']['webhooks'] = [
|
|
438
|
+
uuid.UUID(webhook_uuid)
|
|
439
|
+
for webhook_uuid in notification_resp['data']['webhooks']
|
|
440
|
+
]
|
|
441
|
+
assert json.loads(resp.calls[0].request.body) == {
|
|
352
442
|
'webhooks': TEST_WEBHOOKS,
|
|
353
|
-
'pagerduty_services': None,
|
|
354
|
-
'pagerduty_severity': None,
|
|
355
443
|
}
|
|
356
|
-
assert notifications ==
|
|
357
|
-
|
|
444
|
+
assert notifications == notification_resp['data']
|
|
445
|
+
|
|
446
|
+
# Removing the webhooks from the notification config
|
|
447
|
+
notification_resp['data']['webhooks'] = []
|
|
448
|
+
resp = responses.patch(
|
|
449
|
+
url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}/notification',
|
|
450
|
+
json=notification_resp,
|
|
358
451
|
)
|
|
452
|
+
notifications = alert_rule.set_notification_config(
|
|
453
|
+
webhooks=[],
|
|
454
|
+
)
|
|
455
|
+
assert json.loads(resp.calls[0].request.body) == {
|
|
456
|
+
'webhooks': [],
|
|
457
|
+
}
|
|
458
|
+
assert notifications == notification_resp['data']
|
|
359
459
|
|
|
360
460
|
|
|
361
461
|
@responses.activate
|
fiddler/tests/apis/test_xai.py
CHANGED
|
@@ -219,104 +219,6 @@ EXPLAIN_RESPONSE_200 = {
|
|
|
219
219
|
'kind': 'NORMAL',
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
FAIRNESS_RESPONSE_200 = {
|
|
223
|
-
'data': {
|
|
224
|
-
'protected_attributes': ['Gender'],
|
|
225
|
-
'label_distribution': {
|
|
226
|
-
'columns': ['Gender', 'data_label', 'count'],
|
|
227
|
-
'labels': [
|
|
228
|
-
['Female', 'Churned', 79],
|
|
229
|
-
['Female', 'Not Churned', 377],
|
|
230
|
-
['Male', 'Churned', 39],
|
|
231
|
-
['Male', 'Not Churned', 505],
|
|
232
|
-
],
|
|
233
|
-
},
|
|
234
|
-
'model_outcomes': {
|
|
235
|
-
'columns': ['Gender', 'model_outcome', 'count'],
|
|
236
|
-
'outcomes': [
|
|
237
|
-
['Female', 'Churned', 51],
|
|
238
|
-
['Female', 'Not Churned', 405],
|
|
239
|
-
['Male', 'Churned', 28],
|
|
240
|
-
['Male', 'Not Churned', 516],
|
|
241
|
-
],
|
|
242
|
-
},
|
|
243
|
-
'technical_metrics': {
|
|
244
|
-
'columns': [
|
|
245
|
-
'Gender',
|
|
246
|
-
'true_positive_rate',
|
|
247
|
-
'false_positive_rate',
|
|
248
|
-
'true_negative_rate',
|
|
249
|
-
'false_negative_rate',
|
|
250
|
-
'false_omission_rate',
|
|
251
|
-
'false_discovery_rate',
|
|
252
|
-
],
|
|
253
|
-
'values': [
|
|
254
|
-
[
|
|
255
|
-
'Female',
|
|
256
|
-
0.569620253164557,
|
|
257
|
-
0.015915119363395226,
|
|
258
|
-
0.9840848806366048,
|
|
259
|
-
0.43037974683544306,
|
|
260
|
-
0.08395061728395062,
|
|
261
|
-
0.11764705882352941,
|
|
262
|
-
],
|
|
263
|
-
[
|
|
264
|
-
'Male',
|
|
265
|
-
0.5897435897435898,
|
|
266
|
-
0.009900990099009901,
|
|
267
|
-
0.9900990099009901,
|
|
268
|
-
0.41025641025641024,
|
|
269
|
-
0.031007751937984496,
|
|
270
|
-
0.17857142857142858,
|
|
271
|
-
],
|
|
272
|
-
],
|
|
273
|
-
},
|
|
274
|
-
'fairness_metrics': {
|
|
275
|
-
'demographic_parity': {
|
|
276
|
-
'index': ['dp'],
|
|
277
|
-
'columns': ['Female', 'Male'],
|
|
278
|
-
'data': [[0.1118421052631579, 0.051470588235294115]],
|
|
279
|
-
'ratio': 0.4602076124567474,
|
|
280
|
-
},
|
|
281
|
-
'equal_opportunity': {
|
|
282
|
-
'index': ['tpr'],
|
|
283
|
-
'columns': ['Female', 'Male'],
|
|
284
|
-
'data': [[0.569620253164557, 0.5897435897435898]],
|
|
285
|
-
'ratio': 0.9658778205833792,
|
|
286
|
-
},
|
|
287
|
-
'group_benefit_equality': {
|
|
288
|
-
'index': ['group_benefit'],
|
|
289
|
-
'columns': ['Female', 'Male'],
|
|
290
|
-
'data': [[0.6455696202531646, 0.717948717948718]],
|
|
291
|
-
'ratio': 0.8991862567811935,
|
|
292
|
-
},
|
|
293
|
-
'disparate_impact': {
|
|
294
|
-
'pairs': [
|
|
295
|
-
{
|
|
296
|
-
'reference': ['Female'],
|
|
297
|
-
'groups': [['Male']],
|
|
298
|
-
'values': [0.4602076124567474],
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
'reference': ['Male'],
|
|
302
|
-
'groups': [['Female']],
|
|
303
|
-
'values': [0.4602076124567474],
|
|
304
|
-
},
|
|
305
|
-
],
|
|
306
|
-
'absolute_min': {
|
|
307
|
-
'groups': [['Female'], ['Male']],
|
|
308
|
-
'value': 0.4602076124567474,
|
|
309
|
-
},
|
|
310
|
-
},
|
|
311
|
-
},
|
|
312
|
-
'model_task': 'BINARY_CLASSIFICATION',
|
|
313
|
-
'total_samples': 1000,
|
|
314
|
-
'valid_samples': 1000,
|
|
315
|
-
},
|
|
316
|
-
'api_version': '3.0',
|
|
317
|
-
'kind': 'NORMAL',
|
|
318
|
-
}
|
|
319
|
-
|
|
320
222
|
FETCH_SLICE_RESPONSE_200 = {
|
|
321
223
|
'data': {
|
|
322
224
|
'metadata': {
|
|
@@ -653,30 +555,6 @@ def test_explain() -> None:
|
|
|
653
555
|
)
|
|
654
556
|
|
|
655
557
|
|
|
656
|
-
@responses.activate
|
|
657
|
-
def test_fairness() -> None:
|
|
658
|
-
responses.get(
|
|
659
|
-
url=f'{URL}/v3/models/{MODEL_ID}',
|
|
660
|
-
json=MODEL_API_RESPONSE_200,
|
|
661
|
-
)
|
|
662
|
-
model = Model.get(id_=MODEL_ID)
|
|
663
|
-
|
|
664
|
-
responses.post(
|
|
665
|
-
url=f'{URL}/v3/analytics/fairness',
|
|
666
|
-
json=FAIRNESS_RESPONSE_200,
|
|
667
|
-
)
|
|
668
|
-
fairness = model.get_fairness(
|
|
669
|
-
data_source=DatasetDataSource(
|
|
670
|
-
env_type='PRODUCTION',
|
|
671
|
-
),
|
|
672
|
-
protected_features=['Gender'],
|
|
673
|
-
positive_outcome='Churned',
|
|
674
|
-
)
|
|
675
|
-
assert fairness == namedtuple('Fairness', FAIRNESS_RESPONSE_200['data'])(
|
|
676
|
-
**FAIRNESS_RESPONSE_200['data']
|
|
677
|
-
)
|
|
678
|
-
|
|
679
|
-
|
|
680
558
|
@responses.activate
|
|
681
559
|
def test_get_slice() -> None:
|
|
682
560
|
responses.get(
|
fiddler/tests/constants.py
CHANGED
|
@@ -21,6 +21,8 @@ DATASET_NAME = 'dataset3'
|
|
|
21
21
|
BASELINE_ID = 'af05646f-0cef-4638-84c9-0d195df2575d'
|
|
22
22
|
ALERT_RULE_ID = 'ed8f18e6-c319-4374-8884-71126a6bab85'
|
|
23
23
|
TEST_EMAILS = ['test@fiddler.ai', 'admin@fiddler.ai']
|
|
24
|
+
TEST_PAGERDUTY_SERVICES = ['service1', 'service2']
|
|
25
|
+
TEST_PAGERDUTY_SEVERITY = 'critical'
|
|
24
26
|
TEST_WEBHOOKS = [
|
|
25
27
|
'e20bf4cc-d2cf-4540-baef-d96913b14f1b',
|
|
26
28
|
'6e796fda-0111-4a72-82cd-f0f219e903e1',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
fiddler/VERSION,sha256=
|
|
1
|
+
fiddler/VERSION,sha256=OsbxGngFod6pq5rBBkwkHkBw7Gm0SAeOuUpKKfMB1wQ,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,7 +17,7 @@ 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=
|
|
20
|
+
fiddler/entities/alert_rule.py,sha256=otenqprXqODzd-pGeTDB6sFzHBCioeMrGGVYOtUw_n8,10509
|
|
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
|
|
@@ -33,7 +33,7 @@ fiddler/entities/project.py,sha256=G5omjjKHEjvhenMvW-R0bYwrkRVHixIOhTPZb1pS7FI,4
|
|
|
33
33
|
fiddler/entities/surrogate.py,sha256=94RkJmv8uwNhRL8PaliuiRv-R0EXDMKJTimE9boXKwQ,3077
|
|
34
34
|
fiddler/entities/user.py,sha256=ev_Xx9QHAdEHYzNDafzQihXOcD8ME5XkpKgc8MiqCnw,1243
|
|
35
35
|
fiddler/entities/webhook.py,sha256=BhwV-05EaFtOATbnlPWUaGeziRSewBPSNSGsYFbIRfc,4514
|
|
36
|
-
fiddler/entities/xai.py,sha256=
|
|
36
|
+
fiddler/entities/xai.py,sha256=GaippPwXFrNda1O4aBMkYTm6WJZ8HWqw7sq-GMKyx7g,19739
|
|
37
37
|
fiddler/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
38
|
fiddler/libs/http_client.py,sha256=bl2V-q66NoPHm950CiDqOoF-kCPztYWUYNy9hVUsbqg,6027
|
|
39
39
|
fiddler/libs/json_encoder.py,sha256=brsrWySvtZdaBArIkqKM5WwJUbvZf6ZbKozn1CewjOc,512
|
|
@@ -70,7 +70,7 @@ fiddler/schemas/xai.py,sha256=AZbjjBlTDZbQGj3U-pTM1UX_LJltjy__2t-kM2v5FuY,739
|
|
|
70
70
|
fiddler/schemas/xai_params.py,sha256=7WbUCBojzZckjOA2NUxnk5y3M2WKKXclSzkt5HBfyUU,313
|
|
71
71
|
fiddler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
72
|
fiddler/tests/conftest.py,sha256=Dmz9FKAFHYdq1AWmcY7NES9pU4cbY9qKWQiojjaX_0E,840
|
|
73
|
-
fiddler/tests/constants.py,sha256=
|
|
73
|
+
fiddler/tests/constants.py,sha256=hKIh_XoGJVL8mWhdtUiMo0niII0iCXLkGMSVNv6y7l0,1352
|
|
74
74
|
fiddler/tests/test_connection.py,sha256=d8WoB0QRZEObWfeRAZRXRm1kw9wfEysmeo4Bld7x8js,1865
|
|
75
75
|
fiddler/tests/test_json_encoder.py,sha256=GJeFT5tTA4RTfZn1q2xm1V5SEj5DNsW3LeHPVfFxcFw,783
|
|
76
76
|
fiddler/tests/test_logger.py,sha256=bhpS8TLrYBUOIzuk9XAs_Inot54LOWhw0A-8oXhZ2FM,312
|
|
@@ -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=
|
|
81
|
+
fiddler/tests/apis/test_alert_rule.py,sha256=0qwyTxRdt1tW1DuMwaqFJgbAEIV9cQ9xSo9F3XS660U,14638
|
|
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
|
|
@@ -94,15 +94,15 @@ fiddler/tests/apis/test_model_surrogate.py,sha256=h3OPgD1-_n6gTd0YH_hDcBBRjBfXv1
|
|
|
94
94
|
fiddler/tests/apis/test_project.py,sha256=IEYT3imD4dZJg-OT888G4jQJ_AxxHN5_VkCHcmwUnGA,6015
|
|
95
95
|
fiddler/tests/apis/test_segment.py,sha256=hQiXpZEKLJrnlRBLLMsP3jph8H8K7AEUw17sMK6BuF8,7804
|
|
96
96
|
fiddler/tests/apis/test_webhook.py,sha256=Tf6bggAFeUA0a9TKTjJ34dM_UM_l6_Q-5N9utyuieeE,8099
|
|
97
|
-
fiddler/tests/apis/test_xai.py,sha256=
|
|
97
|
+
fiddler/tests/apis/test_xai.py,sha256=pg7SGC1D8vqGxRhNmlI94c7pDMlb0KWj2Ow9GGIQCEM,26943
|
|
98
98
|
fiddler/utils/__init__.py,sha256=ooAJR6_tVaF6UKZriz5ynZPj8IeCzaDIPKV23F-e4Fk,53
|
|
99
99
|
fiddler/utils/helpers.py,sha256=Xl_T_se9SOeMTmVJAOVzzmkekUsmpFMlAb2KvPCWfTw,2908
|
|
100
100
|
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.
|
|
105
|
-
fiddler_client-3.
|
|
106
|
-
fiddler_client-3.
|
|
107
|
-
fiddler_client-3.
|
|
108
|
-
fiddler_client-3.
|
|
104
|
+
fiddler_client-3.4.0.dev2.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
|
|
105
|
+
fiddler_client-3.4.0.dev2.dist-info/METADATA,sha256=xosKzZsH9kXQTYJ0mZjQOXZgcklKrkobJdRy9agMPbI,1594
|
|
106
|
+
fiddler_client-3.4.0.dev2.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
|
|
107
|
+
fiddler_client-3.4.0.dev2.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
|
|
108
|
+
fiddler_client-3.4.0.dev2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|