fiddler-client 3.3.0.dev1__tar.gz → 3.4.0.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {fiddler_client-3.3.0.dev1/fiddler_client.egg-info → fiddler_client-3.4.0.dev1}/PKG-INFO +1 -1
  2. fiddler_client-3.4.0.dev1/fiddler/VERSION +1 -0
  3. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/decorators.py +1 -1
  4. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/alert_rule.py +14 -8
  5. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/xai.py +0 -38
  6. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_alert_rule.py +20 -0
  7. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_xai.py +0 -122
  8. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/test_logger.py +2 -2
  9. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1/fiddler_client.egg-info}/PKG-INFO +1 -1
  10. fiddler_client-3.3.0.dev1/fiddler/VERSION +0 -1
  11. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/LICENSE.txt +0 -0
  12. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/MANIFEST.in +0 -0
  13. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/PUBLIC.md +0 -0
  14. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/README.md +0 -0
  15. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/__init__.py +0 -0
  16. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/configs.py +0 -0
  17. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/connection.py +0 -0
  18. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/__init__.py +0 -0
  19. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/alert_rule.py +0 -0
  20. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/baseline.py +0 -0
  21. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/common.py +0 -0
  22. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/dataset.py +0 -0
  23. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/events.py +0 -0
  24. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/job.py +0 -0
  25. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/model.py +0 -0
  26. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/model_deployment.py +0 -0
  27. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/constants/xai.py +0 -0
  28. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/__init__.py +0 -0
  29. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/alert_record.py +0 -0
  30. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/base.py +0 -0
  31. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/baseline.py +0 -0
  32. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/custom_expression.py +0 -0
  33. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/dataset.py +0 -0
  34. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/events.py +0 -0
  35. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/file.py +0 -0
  36. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/job.py +0 -0
  37. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/model.py +0 -0
  38. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/model_artifact.py +0 -0
  39. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/model_deployment.py +0 -0
  40. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/organization.py +0 -0
  41. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/project.py +0 -0
  42. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/surrogate.py +0 -0
  43. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/user.py +0 -0
  44. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/entities/webhook.py +0 -0
  45. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/exceptions.py +0 -0
  46. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/libs/__init__.py +0 -0
  47. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/libs/http_client.py +0 -0
  48. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/libs/json_encoder.py +0 -0
  49. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/libs/semver.py +0 -0
  50. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/packtools/__init__.py +0 -0
  51. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/packtools/gem.py +0 -0
  52. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/packtools/keras_ig_helpers.py +0 -0
  53. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/packtools/project_attributions_helpers.py +0 -0
  54. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/packtools/template_model.py +0 -0
  55. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/__init__.py +0 -0
  56. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/alert_record.py +0 -0
  57. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/alert_rule.py +0 -0
  58. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/base.py +0 -0
  59. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/baseline.py +0 -0
  60. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/custom_expression.py +0 -0
  61. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/custom_features.py +0 -0
  62. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/dataset.py +0 -0
  63. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/events.py +0 -0
  64. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/file.py +0 -0
  65. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/filter_query.py +0 -0
  66. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/job.py +0 -0
  67. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/model.py +0 -0
  68. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/model_deployment.py +0 -0
  69. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/model_schema.py +0 -0
  70. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/model_spec.py +0 -0
  71. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/model_task_params.py +0 -0
  72. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/organization.py +0 -0
  73. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/project.py +0 -0
  74. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/response.py +0 -0
  75. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/server_info.py +0 -0
  76. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/user.py +0 -0
  77. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/webhook.py +0 -0
  78. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/xai.py +0 -0
  79. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/schemas/xai_params.py +0 -0
  80. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/__init__.py +0 -0
  81. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/__init__.py +0 -0
  82. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_alert_record.py +0 -0
  83. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_baseline.py +0 -0
  84. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_custom_metric.py +0 -0
  85. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_dataset.py +0 -0
  86. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_events.py +0 -0
  87. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_files.py +0 -0
  88. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_generate_model.py +0 -0
  89. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_job.py +0 -0
  90. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_mixin.py +0 -0
  91. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_model.py +0 -0
  92. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_model_artifact.py +0 -0
  93. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_model_deployment.py +0 -0
  94. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_model_surrogate.py +0 -0
  95. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_project.py +0 -0
  96. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_segment.py +0 -0
  97. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/apis/test_webhook.py +0 -0
  98. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/conftest.py +0 -0
  99. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/constants.py +0 -0
  100. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/test_connection.py +0 -0
  101. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/test_json_encoder.py +0 -0
  102. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/test_utils.py +0 -0
  103. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/tests/utils.py +0 -0
  104. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/__init__.py +0 -0
  105. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/helpers.py +0 -0
  106. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/logger.py +0 -0
  107. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/model_generator.py +0 -0
  108. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/validations.py +0 -0
  109. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/utils/version.py +0 -0
  110. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler/version.py +0 -0
  111. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler_client.egg-info/SOURCES.txt +0 -0
  112. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler_client.egg-info/dependency_links.txt +0 -0
  113. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler_client.egg-info/requires.txt +0 -0
  114. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/fiddler_client.egg-info/top_level.txt +0 -0
  115. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/setup.cfg +0 -0
  116. {fiddler_client-3.3.0.dev1 → fiddler_client-3.4.0.dev1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 3.3.0.dev1
3
+ Version: 3.4.0.dev1
4
4
  Summary: Python client for Fiddler Platform
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -0,0 +1 @@
1
+ 3.4.0.dev1
@@ -39,7 +39,7 @@ def handle_api_error(func: _WrappedFuncType) -> _WrappedFuncType:
39
39
  error_resp = ErrorResponse(**e.response.json())
40
40
  except requests.JSONDecodeError:
41
41
  raise HttpError(
42
- message=f'Invalid response content-type - {e.response.content}'
42
+ message=f"Invalid response content-type - {e.response.content}" # type: ignore
43
43
  )
44
44
 
45
45
  if status_code == HTTPStatus.CONFLICT:
@@ -5,6 +5,8 @@ from datetime import datetime
5
5
  from typing import Any, Iterator
6
6
  from uuid import UUID
7
7
 
8
+ from pydantic import ValidationError
9
+
8
10
  from fiddler.constants.alert_rule import AlertCondition, BinSize, CompareTo, Priority
9
11
  from fiddler.decorators import handle_api_error
10
12
  from fiddler.entities.base import BaseEntity
@@ -276,14 +278,18 @@ class AlertRule(
276
278
 
277
279
  :return: NotificationConfig object
278
280
  """
279
- payload: dict[str, Any] = {}
280
- if emails is not None:
281
- payload['emails'] = emails
282
- if pagerduty_services is not None:
283
- payload['pagerduty_services'] = pagerduty_services
284
- payload['pagerduty_severity'] = pagerduty_severity
285
- if webhooks is not None:
286
- payload['webhooks'] = webhooks
281
+
282
+ # Validating input
283
+ try:
284
+ payload: dict[str, Any] = NotificationConfig(
285
+ emails=emails,
286
+ pagerduty_services=pagerduty_services,
287
+ pagerduty_severity=pagerduty_severity,
288
+ webhooks=webhooks,
289
+ ).dict()
290
+ except ValidationError as e:
291
+ logger.exception('Invalid input: The format of input is not correct')
292
+ raise e
287
293
  response = self._client().patch(
288
294
  url=self._get_notification_url(id_=self.id),
289
295
  data=payload,
@@ -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,
@@ -5,6 +5,7 @@ from uuid import UUID
5
5
 
6
6
  import pytest
7
7
  import responses
8
+ from pydantic import ValidationError
8
9
 
9
10
  from fiddler.constants.alert_rule import AlertCondition, BinSize, CompareTo, Priority
10
11
  from fiddler.entities.alert_rule import AlertRule
@@ -349,12 +350,31 @@ def test_set_notifications() -> None:
349
350
  assert json.loads(resp.calls[0].request.body) == {
350
351
  'emails': TEST_EMAILS,
351
352
  'webhooks': TEST_WEBHOOKS,
353
+ 'pagerduty_services': None,
354
+ 'pagerduty_severity': None,
352
355
  }
353
356
  assert notifications == NotificationConfig(
354
357
  **ALERT_NOTIFICATION_API_RESPONSE_200['data']
355
358
  )
356
359
 
357
360
 
361
+ @responses.activate
362
+ def test_set_notifications_invalid_input(caplog) -> None:
363
+ responses.get(
364
+ url=f'{URL}/v3/alert-rules/{ALERT_RULE_ID}',
365
+ json=API_RESPONSE_200,
366
+ )
367
+
368
+ alert_rule = AlertRule.get(id_=ALERT_RULE_ID)
369
+
370
+ with pytest.raises(ValidationError):
371
+ alert_rule.set_notification_config(
372
+ emails=TEST_EMAILS[0],
373
+ webhooks=TEST_WEBHOOKS,
374
+ )
375
+ assert 'Invalid input: The format of input is not correct' in caplog.messages[0]
376
+
377
+
358
378
  @responses.activate
359
379
  def test_get_notifications() -> None:
360
380
  responses.get(
@@ -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(
@@ -6,7 +6,7 @@ from fiddler.utils.logger import set_logging
6
6
 
7
7
  def test_set_logging() -> None:
8
8
  app_logger = logging.getLogger(LOGGER_NAME)
9
- assert len(app_logger.handlers) == 0
9
+ assert len(app_logger.handlers) == 2
10
10
 
11
11
  set_logging(level=logging.ERROR)
12
- assert len(app_logger.handlers) == 1
12
+ assert len(app_logger.handlers) == 3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 3.3.0.dev1
3
+ Version: 3.4.0.dev1
4
4
  Summary: Python client for Fiddler Platform
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -1 +0,0 @@
1
- 3.3.0.dev1