fiddler-client 3.0.0.dev9__py3-none-any.whl → 3.0.0.dev10__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.0.0.dev9
1
+ 3.0.0.dev10
@@ -9,7 +9,6 @@ class BaselineType(str, enum.Enum):
9
9
 
10
10
  @enum.unique
11
11
  class WindowSize(enum.IntEnum):
12
- FIVE_MINUTES = 300
13
12
  ONE_HOUR = 3600
14
13
  ONE_DAY = 86400
15
14
  ONE_WEEK = 604800
@@ -24,7 +24,7 @@ class AlertRule(
24
24
  def __init__( # pylint: disable=too-many-arguments
25
25
  self,
26
26
  name: str,
27
- model_id: UUID,
27
+ model_id: UUID | str,
28
28
  metric_id: str | UUID,
29
29
  priority: Priority | str,
30
30
  compare_to: CompareTo | str,
@@ -33,7 +33,7 @@ class AlertRule(
33
33
  critical_threshold: float,
34
34
  warning_threshold: float | None = None,
35
35
  columns: list[str] | None = None,
36
- baseline_id: UUID | None = None,
36
+ baseline_id: UUID | str | None = None,
37
37
  compare_bin_delta: int | None = None,
38
38
  ) -> None:
39
39
  """Construct a alert rule instance."""
@@ -22,10 +22,10 @@ class Baseline(
22
22
  def __init__( # pylint: disable=too-many-arguments
23
23
  self,
24
24
  name: str,
25
- model_id: UUID,
25
+ model_id: UUID | str,
26
26
  environment: EnvType,
27
27
  type_: str,
28
- dataset_id: UUID | None = None,
28
+ dataset_id: UUID | str | None = None,
29
29
  start_time: int | None = None,
30
30
  end_time: int | None = None,
31
31
  offset: int | None = None,
@@ -134,27 +134,23 @@ class Baseline(
134
134
 
135
135
  @classmethod
136
136
  @handle_api_error
137
- def from_name(cls, name: str, model_name: str, project_name: str) -> Baseline:
137
+ def from_name(cls, name: str, model_id: UUID | str) -> Baseline:
138
138
  """
139
- Get the baseline instance using baseline name, model name and project name.
139
+ Get the baseline instance of a model from baseline name
140
140
 
141
141
  :param name: Baseline name
142
- :param model_name: Name of the model associated with the baseline
143
- :param project_name: Name of the project associated with the baseline
142
+ :param model_id: Model identifier
144
143
 
145
- :return: Baseline instance for the provided params
144
+ :return: Baseline instance
146
145
  """
147
146
 
148
147
  _filter = QueryCondition(
149
148
  rules=[
150
149
  QueryRule(field='name', operator=OperatorType.EQUAL, value=name),
151
150
  QueryRule(
152
- field='project_name',
151
+ field='model_id',
153
152
  operator=OperatorType.EQUAL,
154
- value=project_name,
155
- ),
156
- QueryRule(
157
- field='model_name', operator=OperatorType.EQUAL, value=model_name
153
+ value=model_id,
158
154
  ),
159
155
  ]
160
156
  )
@@ -203,7 +199,7 @@ class Baseline(
203
199
  @handle_api_error
204
200
  def create(self) -> Baseline:
205
201
  """Create a new baseline."""
206
- payload = {
202
+ payload: dict[str, Any] = {
207
203
  'name': self.name,
208
204
  'model_id': self.model_id,
209
205
  'type': self.type,
@@ -22,7 +22,7 @@ class CustomExpression(BaseEntity, ModelCompactMixin, ProjectCompactMixin):
22
22
  def __init__(
23
23
  self,
24
24
  name: str,
25
- model_id: UUID,
25
+ model_id: UUID | str,
26
26
  definition: str,
27
27
  description: str | None = None,
28
28
  ) -> None:
@@ -112,15 +112,12 @@ class CustomExpression(BaseEntity, ModelCompactMixin, ProjectCompactMixin):
112
112
 
113
113
  @classmethod
114
114
  @handle_api_error
115
- def from_name(
116
- cls, name: str, model_name: str, project_name: str
117
- ) -> CustomExpression:
115
+ def from_name(cls, name: str, model_id: UUID | str) -> CustomExpression:
118
116
  """
119
- Get the custom metric instance using custom metric name, model name and project name.
117
+ Get the custom metric instance of a model from custom metric name
120
118
 
121
119
  :param name: Custom metric name
122
- :param model_name: Name of the model associated with the custom metric
123
- :param project_name: Name of the project associated with the custom metric
120
+ :param model_id: Model identifier
124
121
 
125
122
  :return: CustomMetric instance for the provided params
126
123
  """
@@ -129,12 +126,7 @@ class CustomExpression(BaseEntity, ModelCompactMixin, ProjectCompactMixin):
129
126
  rules=[
130
127
  QueryRule(field='name', operator=OperatorType.EQUAL, value=name),
131
128
  QueryRule(
132
- field='model_name', operator=OperatorType.EQUAL, value=model_name
133
- ),
134
- QueryRule(
135
- field='project_name',
136
- operator=OperatorType.EQUAL,
137
- value=project_name,
129
+ field='model_id', operator=OperatorType.EQUAL, value=model_id
138
130
  ),
139
131
  ]
140
132
  )
@@ -157,7 +149,7 @@ class CustomExpression(BaseEntity, ModelCompactMixin, ProjectCompactMixin):
157
149
  @handle_api_error
158
150
  def list(
159
151
  cls,
160
- model_id: UUID,
152
+ model_id: UUID | str,
161
153
  ) -> Iterator[CustomExpression]:
162
154
  """Get a list of all custom metrics in the organization."""
163
155
 
@@ -195,7 +187,11 @@ class CustomExpression(BaseEntity, ModelCompactMixin, ProjectCompactMixin):
195
187
 
196
188
  class CustomMetric(CustomExpression):
197
189
  def __init__(
198
- self, name: str, model_id: UUID, definition: str, description: str | None = None
190
+ self,
191
+ name: str,
192
+ model_id: UUID | str,
193
+ definition: str,
194
+ description: str | None = None,
199
195
  ) -> None:
200
196
  """Construct a custom metric instance."""
201
197
  super().__init__(name, model_id, definition, description)
@@ -214,7 +210,11 @@ class CustomMetric(CustomExpression):
214
210
 
215
211
  class Segment(CustomExpression):
216
212
  def __init__(
217
- self, name: str, model_id: UUID, definition: str, description: str | None = None
213
+ self,
214
+ name: str,
215
+ model_id: UUID | str,
216
+ definition: str,
217
+ description: str | None = None,
218
218
  ) -> None:
219
219
  """Construct a segment instance."""
220
220
  super().__init__(name, model_id, definition, description)
@@ -72,13 +72,12 @@ class Dataset(BaseEntity, ProjectCompactMixin):
72
72
 
73
73
  @classmethod
74
74
  @handle_api_error
75
- def from_name(cls, name: str, model_name: str, project_name: str) -> Dataset:
75
+ def from_name(cls, name: str, model_id: UUID | str) -> Dataset:
76
76
  """
77
77
  Get the dataset instance using dataset name.
78
78
 
79
79
  :param name: Dataset name
80
- :param model_name: Name of the model associated with the dataset
81
- :param project_name: name of the project associated with the dataset
80
+ :param model_id: Model identifier
82
81
 
83
82
  :return: Dataset instance for the provided params
84
83
  """
@@ -86,12 +85,9 @@ class Dataset(BaseEntity, ProjectCompactMixin):
86
85
  rules=[
87
86
  QueryRule(field='name', operator=OperatorType.EQUAL, value=name),
88
87
  QueryRule(
89
- field='project_name',
88
+ field='model_id',
90
89
  operator=OperatorType.EQUAL,
91
- value=project_name,
92
- ),
93
- QueryRule(
94
- field='model_name', operator=OperatorType.EQUAL, value=model_name
90
+ value=model_id,
95
91
  ),
96
92
  ]
97
93
  )
fiddler/entities/model.py CHANGED
@@ -49,7 +49,7 @@ class Model(
49
49
  def __init__( # pylint: disable=too-many-arguments
50
50
  self,
51
51
  name: str,
52
- project_id: UUID,
52
+ project_id: UUID | str,
53
53
  schema: ModelSchema,
54
54
  spec: ModelSpec,
55
55
  input_type: str = ModelInputType.TABULAR,
@@ -188,15 +188,21 @@ class Model(
188
188
 
189
189
  @classmethod
190
190
  @handle_api_error
191
- def from_name(cls, name: str, project_name: str) -> Model:
192
- """Get the model instance using model name and project name."""
191
+ def from_name(cls, name: str, project_id: UUID | str) -> Model:
192
+ """
193
+ Get the model instance from model name within a project.
194
+
195
+ :param name: Model name
196
+ :param project_id: Project identifier
197
+ :return: Model instance
198
+ """
193
199
  _filter = QueryCondition(
194
200
  rules=[
195
201
  QueryRule(field='name', operator=OperatorType.EQUAL, value=name),
196
202
  QueryRule(
197
- field='project_name',
203
+ field='project_id',
198
204
  operator=OperatorType.EQUAL,
199
- value=project_name,
205
+ value=project_id,
200
206
  ),
201
207
  ]
202
208
  )
@@ -251,7 +257,7 @@ class Model(
251
257
  @handle_api_error
252
258
  def list(
253
259
  cls,
254
- project_id: UUID,
260
+ project_id: UUID | str,
255
261
  ) -> Iterator[ModelCompact]:
256
262
  """
257
263
  Get a list of all models with the given filters
@@ -308,7 +314,7 @@ class Model(
308
314
  cls,
309
315
  source: pd.DataFrame | Path | str,
310
316
  name: str,
311
- project_id: UUID,
317
+ project_id: UUID | str,
312
318
  spec: ModelSpec | None = None,
313
319
  input_type: str = ModelInputType.TABULAR,
314
320
  task: str = ModelTask.NOT_SET,
@@ -452,7 +458,7 @@ class Model(
452
458
 
453
459
  def add_surrogate(
454
460
  self,
455
- dataset_id: UUID,
461
+ dataset_id: UUID | str,
456
462
  deployment_params: DeploymentParams | None = None,
457
463
  ) -> Job:
458
464
  """
@@ -470,7 +476,7 @@ class Model(
470
476
  @handle_api_error
471
477
  def update_surrogate(
472
478
  self,
473
- dataset_id: UUID,
479
+ dataset_id: UUID | str,
474
480
  deployment_params: DeploymentParams | None = None,
475
481
  ) -> Job:
476
482
  """
@@ -93,7 +93,7 @@ class ModelArtifact(ConnectionMixin):
93
93
 
94
94
  def _artifact_deploy(
95
95
  self,
96
- file_id: UUID,
96
+ file_id: UUID | str,
97
97
  deployment_params: DeploymentParams | None = None,
98
98
  update: bool = False,
99
99
  ) -> Job:
@@ -18,7 +18,7 @@ class ModelDeployment(
18
18
  ): # pylint: disable=too-many-instance-attributes
19
19
  def __init__( # pylint: disable=too-many-arguments
20
20
  self,
21
- model_id: UUID,
21
+ model_id: UUID | str,
22
22
  ) -> None:
23
23
  """Construct a model deployment instance."""
24
24
  self.id: UUID | None = None # pylint: disable=invalid-name
@@ -25,7 +25,7 @@ class Surrogate(ConnectionMixin):
25
25
 
26
26
  def _deploy(
27
27
  self,
28
- dataset_id: UUID,
28
+ dataset_id: UUID | str,
29
29
  deployment_params: DeploymentParams | None = None,
30
30
  update: bool = False,
31
31
  ) -> Job:
@@ -71,7 +71,7 @@ class Surrogate(ConnectionMixin):
71
71
  @handle_api_error
72
72
  def add(
73
73
  self,
74
- dataset_id: UUID,
74
+ dataset_id: UUID | str,
75
75
  deployment_params: DeploymentParams | None = None,
76
76
  ) -> Job:
77
77
  """
@@ -89,7 +89,7 @@ class Surrogate(ConnectionMixin):
89
89
  @handle_api_error
90
90
  def update(
91
91
  self,
92
- dataset_id: UUID,
92
+ dataset_id: UUID | str,
93
93
  deployment_params: DeploymentParams | None = None,
94
94
  ) -> Job:
95
95
  """
fiddler/entities/xai.py CHANGED
@@ -382,7 +382,7 @@ class XaiMixin:
382
382
  @handle_api_error
383
383
  def precompute_feature_impact( # pylint: disable=too-many-arguments
384
384
  self,
385
- dataset_id: UUID,
385
+ dataset_id: UUID | str,
386
386
  num_samples: int | None = None,
387
387
  num_iterations: int | None = None,
388
388
  num_refs: int | None = None,
@@ -444,7 +444,7 @@ class XaiMixin:
444
444
  @handle_api_error
445
445
  def precompute_feature_importance( # pylint: disable=too-many-arguments
446
446
  self,
447
- dataset_id: UUID,
447
+ dataset_id: UUID | str,
448
448
  num_samples: int | None = None,
449
449
  num_iterations: int | None = None,
450
450
  num_refs: int | None = None,
@@ -528,7 +528,7 @@ class XaiMixin:
528
528
  @handle_api_error
529
529
  def precompute_predictions(
530
530
  self,
531
- dataset_id: UUID,
531
+ dataset_id: UUID | str,
532
532
  chunk_size: int | None = None,
533
533
  update: bool = False,
534
534
  ) -> Job:
@@ -160,7 +160,7 @@ def test_get_baseline_not_found() -> None:
160
160
  @responses.activate
161
161
  def test_baseline_from_name() -> None:
162
162
  params = {
163
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_baseline"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}]}'
163
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_baseline"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
164
164
  }
165
165
 
166
166
  responses.get(
@@ -170,8 +170,7 @@ def test_baseline_from_name() -> None:
170
170
  )
171
171
  baseline = Baseline.from_name(
172
172
  name=BASELINE_NAME,
173
- model_name=MODEL_NAME,
174
- project_name=PROJECT_NAME,
173
+ model_id=MODEL_ID,
175
174
  )
176
175
  assert isinstance(baseline, Baseline)
177
176
 
@@ -184,7 +183,7 @@ def test_baseline_from_name_not_found() -> None:
184
183
  resp['data']['items'] = []
185
184
 
186
185
  params = {
187
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_baseline"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}]}'
186
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_baseline"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
188
187
  }
189
188
 
190
189
  responses.get(
@@ -195,8 +194,7 @@ def test_baseline_from_name_not_found() -> None:
195
194
  with pytest.raises(NotFound):
196
195
  Baseline.from_name(
197
196
  name=BASELINE_NAME,
198
- model_name=MODEL_NAME,
199
- project_name=PROJECT_NAME,
197
+ model_id=MODEL_ID,
200
198
  )
201
199
 
202
200
 
@@ -187,7 +187,7 @@ def test_get_not_found() -> None:
187
187
  @responses.activate
188
188
  def test_from_name() -> None:
189
189
  params = {
190
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "xyzabc"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
190
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "xyzabc"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
191
191
  }
192
192
 
193
193
  responses.get(
@@ -195,18 +195,14 @@ def test_from_name() -> None:
195
195
  json=API_RESPONSE_FROM_NAME,
196
196
  match=[matchers.query_param_matcher(params)],
197
197
  )
198
- custom_metric = CustomMetric.from_name(
199
- name=CUSTOM_METRIC_NAME,
200
- model_name=MODEL_NAME,
201
- project_name=PROJECT_NAME,
202
- )
198
+ custom_metric = CustomMetric.from_name(name=CUSTOM_METRIC_NAME, model_id=MODEL_ID)
203
199
  assert isinstance(custom_metric, CustomMetric)
204
200
 
205
201
 
206
202
  @responses.activate
207
203
  def test_from_name_not_found() -> None:
208
204
  params = {
209
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "xyzabc"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
205
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "xyzabc"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
210
206
  }
211
207
  responses.get(
212
208
  url=f'{URL}/v3/custom-metrics',
@@ -214,11 +210,7 @@ def test_from_name_not_found() -> None:
214
210
  match=[matchers.query_param_matcher(params)],
215
211
  )
216
212
  with pytest.raises(NotFound):
217
- CustomMetric.from_name(
218
- name=CUSTOM_METRIC_NAME,
219
- model_name=MODEL_NAME,
220
- project_name=PROJECT_NAME,
221
- )
213
+ CustomMetric.from_name(name=CUSTOM_METRIC_NAME, model_id=MODEL_ID)
222
214
 
223
215
 
224
216
  @responses.activate
@@ -111,18 +111,14 @@ def test_get_dataset_not_found() -> None:
111
111
  @responses.activate
112
112
  def test_dataset_from_name() -> None:
113
113
  params = {
114
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "dataset3"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}]}'
114
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "dataset3"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
115
115
  }
116
116
  responses.get(
117
117
  url=f'{URL}/v3/environments',
118
118
  json=API_RESPONSE_FROM_NAME,
119
119
  match=[matchers.query_param_matcher(params)],
120
120
  )
121
- dataset = Dataset.from_name(
122
- name=DATASET_NAME,
123
- model_name=MODEL_NAME,
124
- project_name=PROJECT_NAME,
125
- )
121
+ dataset = Dataset.from_name(name=DATASET_NAME, model_id=MODEL_ID)
126
122
  assert isinstance(dataset, Dataset)
127
123
 
128
124
 
@@ -134,7 +130,7 @@ def test_dataset_from_name_not_found() -> None:
134
130
  resp['data']['items'] = []
135
131
 
136
132
  params = {
137
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "dataset3"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}]}'
133
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "dataset3"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
138
134
  }
139
135
  responses.get(
140
136
  url=f'{URL}/v3/environments',
@@ -144,8 +140,7 @@ def test_dataset_from_name_not_found() -> None:
144
140
  with pytest.raises(NotFound):
145
141
  Dataset.from_name(
146
142
  name=DATASET_NAME,
147
- model_name=MODEL_NAME,
148
- project_name=PROJECT_NAME,
143
+ model_id=MODEL_ID,
149
144
  )
150
145
 
151
146
 
@@ -350,7 +350,7 @@ def test_get_model_not_found() -> None:
350
350
  @responses.activate
351
351
  def test_model_from_name_success() -> None:
352
352
  params = {
353
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
353
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "bank_churn"}, {"field": "project_id", "operator": "equal", "value": "1531bfd9-2ca2-4a7b-bb5a-136c8da09ca1"}]}'
354
354
  }
355
355
  responses.get(
356
356
  url=f'{URL}/v3/models',
@@ -361,7 +361,7 @@ def test_model_from_name_success() -> None:
361
361
  url=f'{URL}/v3/models/{MODEL_ID}',
362
362
  json=API_RESPONSE_200,
363
363
  )
364
- model = Model.from_name(name=MODEL_NAME, project_name=PROJECT_NAME)
364
+ model = Model.from_name(name=MODEL_NAME, project_id=PROJECT_ID)
365
365
  assert isinstance(model, Model)
366
366
 
367
367
 
@@ -373,7 +373,7 @@ def test_model_from_name_not_found() -> None:
373
373
  resp['data']['items'] = []
374
374
 
375
375
  params = {
376
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
376
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "bank_churn"}, {"field": "project_id", "operator": "equal", "value": "1531bfd9-2ca2-4a7b-bb5a-136c8da09ca1"}]}'
377
377
  }
378
378
  responses.get(
379
379
  url=f'{URL}/v3/models',
@@ -382,7 +382,7 @@ def test_model_from_name_not_found() -> None:
382
382
  )
383
383
 
384
384
  with pytest.raises(NotFound):
385
- Model.from_name(name=MODEL_NAME, project_name=PROJECT_NAME)
385
+ Model.from_name(name=MODEL_NAME, project_id=PROJECT_ID)
386
386
 
387
387
 
388
388
  @responses.activate
@@ -187,7 +187,7 @@ def test_get_segment_not_found() -> None:
187
187
  @responses.activate
188
188
  def test_segment_from_name() -> None:
189
189
  params = {
190
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "age < 50"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
190
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "age < 50"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
191
191
  }
192
192
 
193
193
  responses.get(
@@ -195,18 +195,14 @@ def test_segment_from_name() -> None:
195
195
  json=API_RESPONSE_FROM_NAME,
196
196
  match=[matchers.query_param_matcher(params)],
197
197
  )
198
- segment = Segment.from_name(
199
- name=SEGMENT_NAME,
200
- model_name=MODEL_NAME,
201
- project_name=PROJECT_NAME,
202
- )
198
+ segment = Segment.from_name(name=SEGMENT_NAME, model_id=MODEL_ID)
203
199
  assert isinstance(segment, Segment)
204
200
 
205
201
 
206
202
  @responses.activate
207
203
  def test_segment_from_name_not_found() -> None:
208
204
  params = {
209
- 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "age < 50"}, {"field": "model_name", "operator": "equal", "value": "bank_churn"}, {"field": "project_name", "operator": "equal", "value": "bank_churn"}]}'
205
+ 'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "age < 50"}, {"field": "model_id", "operator": "equal", "value": "4531bfd9-2ca2-4a7b-bb5a-136c8da09ca2"}]}'
210
206
  }
211
207
  responses.get(
212
208
  url=f'{URL}/v3/segments',
@@ -214,11 +210,7 @@ def test_segment_from_name_not_found() -> None:
214
210
  match=[matchers.query_param_matcher(params)],
215
211
  )
216
212
  with pytest.raises(NotFound):
217
- Segment.from_name(
218
- name=SEGMENT_NAME,
219
- model_name=MODEL_NAME,
220
- project_name=PROJECT_NAME,
221
- )
213
+ Segment.from_name(name=SEGMENT_NAME, model_id=MODEL_ID)
222
214
 
223
215
 
224
216
  @responses.activate
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 3.0.0.dev9
3
+ Version: 3.0.0.dev10
4
4
  Summary: Python client for Fiddler Platform
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -1,4 +1,4 @@
1
- fiddler/VERSION,sha256=TJiIUZ-Srnlyku453-T7JqMjbOAmelYAJcCR9tmyfyY,11
1
+ fiddler/VERSION,sha256=FtILXJkKcheZdIDv4lVkEqSLQXj3TFXSabECWqPOllU,12
2
2
  fiddler/__init__.py,sha256=b-mdEuXePogtxmehLezysrqfEyceEk9p-H2GRjLfRZ4,3382
3
3
  fiddler/configs.py,sha256=ZimSo0Gk7j1BFkjDHdRdycrGZ8oh-7G5TBXYiOh1HvU,217
4
4
  fiddler/connection.py,sha256=pYaOyyJytsljofaMyRPV-Vs_i4wHKO48BxIJMqEBxHg,5760
@@ -7,7 +7,7 @@ fiddler/exceptions.py,sha256=T4ZpkTYPbnWvUX7y5XehnCyHqQPj3qqsIDKCZQNtaIE,2221
7
7
  fiddler/version.py,sha256=8fyg3UhFpqghMpxbtYIwNcB1lhCG6yTkPBbDS7IrwxY,140
8
8
  fiddler/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  fiddler/constants/alert_rule.py,sha256=cmFq-VKAlQbRKEkTtMmVNdD5R52uMI2zJai6TESFwfs,512
10
- fiddler/constants/baseline.py,sha256=NhmiGf73gy2IHKKpbm64HCE4eJfbxkAPy3uk_Z-6qSo,321
10
+ fiddler/constants/baseline.py,sha256=IQbnr3gm4nLroOvcW-gj_2iJz27kkrzHncdsritflq0,298
11
11
  fiddler/constants/common.py,sha256=GCW9rzqPkOIcC80j98sKPqxBr8vPLbJ2TrelKaV30yw,400
12
12
  fiddler/constants/dataset.py,sha256=ZxPmzycSlrKpUYShpfTDqfmz8LAebzyBtIV_dBy-pRI,126
13
13
  fiddler/constants/events.py,sha256=3SgjNo4IS-_Nod8wbj98di4B4GctF9R414MZxfQ4MkU,114
@@ -17,23 +17,23 @@ 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=E74T87fhFmH9H5iRpX50Ag2wm4K05ovjt5C-7tMIHJk,11557
20
+ fiddler/entities/alert_rule.py,sha256=kLrK1U96gzN8I5G-hTTMmrIA0TywHVt-kb7CipgqjqE,11569
21
21
  fiddler/entities/base.py,sha256=YCTLt1ta8UbD7u-5BW7v_ocA4S7LevEncI5XPS_SB60,2106
22
- fiddler/entities/baseline.py,sha256=vABtLDKitOhCbyFkK2Kyr177M6bjw5GVxbvnLgcqPSo,8028
23
- fiddler/entities/custom_expression.py,sha256=YoI6sXF3qFh883bcH46wbsXTacM7xKNNSSxR6BJCABY,6827
24
- fiddler/entities/dataset.py,sha256=slaqF5StcpFY-66Ww7zA7pnItxNj3FMKi9OeJiHLXac,4661
22
+ fiddler/entities/baseline.py,sha256=IehWDWmIeB73Grb8s0AxP9OotbowTkH9XGPl-ml3W1E,7748
23
+ fiddler/entities/custom_expression.py,sha256=SdS61JiI0gOxWwHAGxkHh1vqS5XsRtyeNSDs5E-Sg2U,6568
24
+ fiddler/entities/dataset.py,sha256=kwD1pZMG6DQGIjejU7A2KUUBRgOi0o1qbbUX-PSlnGg,4399
25
25
  fiddler/entities/events.py,sha256=usFxs8Cq0ds1MIrOjZT5jVt3XDXMdGYakOoNFnTFQ8Y,4370
26
26
  fiddler/entities/file.py,sha256=dk8ISfjy0--F2eF23Ae8vGiEZmJW6e9LMqNmKfrY2mE,4710
27
27
  fiddler/entities/job.py,sha256=Feiqo6ns4bRcp2uaV-kuGYAKs90-aYXvzqqi1yLivYE,5220
28
- fiddler/entities/model.py,sha256=eTrhdK-JM9ziSNKBrxY9SoPUauWkXavlPlm3eQa1nm4,16723
29
- fiddler/entities/model_artifact.py,sha256=ktyFkg-nUPtdpSUGNXHfLOwSMiBaaRkdU0s9DQ67lLs,5514
30
- fiddler/entities/model_deployment.py,sha256=JefFd7uUgPaxWhtVTJZqTMCLWz_18DM8o2zZmY_Hn6c,3757
28
+ fiddler/entities/model.py,sha256=J1DoDMZptaOac64LJ_pRmuD2wJ1Wk88SAKA6bSg0W8g,16882
29
+ fiddler/entities/model_artifact.py,sha256=Y7o1mFs-nVDz7HI9mVBu9ICwkqGD_QbT3q6vf8KKesk,5520
30
+ fiddler/entities/model_deployment.py,sha256=vHffixgDu3xjWgA7IKbCpXpYxxspzyuJz7ejhub2yWI,3763
31
31
  fiddler/entities/organization.py,sha256=XvUAdBUOYXzdmblxIs4hi0mAg45NtAwy5DBaMiqi47o,1074
32
32
  fiddler/entities/project.py,sha256=G5omjjKHEjvhenMvW-R0bYwrkRVHixIOhTPZb1pS7FI,4631
33
- fiddler/entities/surrogate.py,sha256=7sbKrKaoDWgAylJrAZbRDbmclXngfUQ08RUO3NQW59I,3059
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=I-mcl92Tg2-oUUqNMOeDPBe0XawVYhNcTGXHBway7_A,3798
36
- fiddler/entities/xai.py,sha256=t5LOOWRtr0KnNJHOPfdhrH1WdNT6MBpAZoQ8Teiu9a8,20232
36
+ fiddler/entities/xai.py,sha256=tJ5HQnaV_svR7do1secIIIvQ0ckJMnW0xjoThn8Cz6s,20250
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
@@ -79,20 +79,20 @@ 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
81
  fiddler/tests/apis/test_alert_rule.py,sha256=3fmcxiGXOokMqFRWo5w4CL4m0k6rCnG17ZRfj1wlZ04,11231
82
- fiddler/tests/apis/test_baseline.py,sha256=YEJZ-MA8ze-aWUiWjqtq_YeXpOCo8eAqjji0KoHjx3g,7650
83
- fiddler/tests/apis/test_custom_metric.py,sha256=RjaIGGUruIJI1vvGho60xHJwqLmuxDGAME12IQ9etjk,8442
84
- fiddler/tests/apis/test_dataset.py,sha256=iFbaiCYmjIMfUDeGhDJEF2L50v2i_uoBJi3BiTJFdeM,4835
82
+ fiddler/tests/apis/test_baseline.py,sha256=d-fu-XV5WpaRh8jbNBCk8EpV6N8A-Ls8EstC8qScuBM,7474
83
+ fiddler/tests/apis/test_custom_metric.py,sha256=QlNa80M9PxqaqzW-3nCtH5kKLRHYu2iqFDautBusbos,8208
84
+ fiddler/tests/apis/test_dataset.py,sha256=1Xc9Ng91fLMc2C6dpKfse42fQ0anza3ZOKOD1TqCvTQ,4636
85
85
  fiddler/tests/apis/test_events.py,sha256=e5sd3dIfMPyHoX-jX1QjCP90D-2ijJq1NERGbbfmSls,4510
86
86
  fiddler/tests/apis/test_files.py,sha256=-BisPck7bHMSW3N40ffdQJe027Qe3079tjTlU2OI9DU,4501
87
87
  fiddler/tests/apis/test_generate_model.py,sha256=-MtCnW4sntm7W9c12R9eorIUqEnBq5K_FqhSqdhInJE,4970
88
88
  fiddler/tests/apis/test_job.py,sha256=GlJXhxK60q9u5QJ6ToLrw4y1G3M0DzAAR2u-JDbk3D0,1891
89
89
  fiddler/tests/apis/test_mixin.py,sha256=CmiyAch8Mzoi3Jru-8PWVxWlX-y30WMuoymSc9QXFwc,2453
90
- fiddler/tests/apis/test_model.py,sha256=zs0Px61P9Yl9RGL_BxHtecHqqY9K-uK0UFMpghsM1zM,14652
90
+ fiddler/tests/apis/test_model.py,sha256=1ufNtCfEzoiVaP1dxCOCBpI8e0dBt81JuZY8kkdGnI4,14692
91
91
  fiddler/tests/apis/test_model_artifact.py,sha256=oQVasstDc41EesAzN39wCTZi7KtpeQdVcGcLxERjmw0,5635
92
92
  fiddler/tests/apis/test_model_deployment.py,sha256=AWGdbepFrU3qT17XAZC68n8LlXh7OKNqSwg3_ug9G5I,2441
93
93
  fiddler/tests/apis/test_model_surrogate.py,sha256=h3OPgD1-_n6gTd0YH_hDcBBRjBfXv1xUsZxNWUU69KQ,4443
94
94
  fiddler/tests/apis/test_project.py,sha256=IEYT3imD4dZJg-OT888G4jQJ_AxxHN5_VkCHcmwUnGA,6015
95
- fiddler/tests/apis/test_segment.py,sha256=9OOe-jS7BVuuxtZ0hXraldELU1BU9p4herYPwZmeBHQ,8038
95
+ fiddler/tests/apis/test_segment.py,sha256=hQiXpZEKLJrnlRBLLMsP3jph8H8K7AEUw17sMK6BuF8,7804
96
96
  fiddler/tests/apis/test_webhook.py,sha256=DTaEI9r2lossAaXb3b1CX4C8L3bYAzZmLIWH8VeauUs,6440
97
97
  fiddler/tests/apis/test_xai.py,sha256=5TzRv3jSTn2xi3qpwPyKyybEVjHcSyszSHTLzuXU30s,28537
98
98
  fiddler/utils/__init__.py,sha256=ooAJR6_tVaF6UKZriz5ynZPj8IeCzaDIPKV23F-e4Fk,53
@@ -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.0.0.dev9.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
- fiddler_client-3.0.0.dev9.dist-info/METADATA,sha256=qo9YKNI2Okx54ayMGxniN_2VogrYXmFSkPxvnrtTsps,20679
106
- fiddler_client-3.0.0.dev9.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
107
- fiddler_client-3.0.0.dev9.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
- fiddler_client-3.0.0.dev9.dist-info/RECORD,,
104
+ fiddler_client-3.0.0.dev10.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
+ fiddler_client-3.0.0.dev10.dist-info/METADATA,sha256=f7Rl4ZVdaXrxBePBIz8VzjGzyr8m3SYT_clZ165wQ-g,20680
106
+ fiddler_client-3.0.0.dev10.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
107
+ fiddler_client-3.0.0.dev10.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
+ fiddler_client-3.0.0.dev10.dist-info/RECORD,,