fiddler-client 2.1.0.dev2__tar.gz → 2.1.0.dev4__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 (106) hide show
  1. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/PKG-INFO +28 -6
  2. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/PUBLIC.md +27 -5
  3. fiddler-client-2.1.0.dev4/fiddler/_version.py +1 -0
  4. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/custom_metrics_mixin.py +24 -5
  5. fiddler-client-2.1.0.dev4/fiddler/schema/custom_metric.py +18 -0
  6. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler_client.egg-info/PKG-INFO +28 -6
  7. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler_client.egg-info/requires.txt +1 -1
  8. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/setup.py +1 -1
  9. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_custom_metrics.py +84 -9
  10. fiddler-client-2.1.0.dev2/fiddler/_version.py +0 -1
  11. fiddler-client-2.1.0.dev2/fiddler/schema/custom_metric.py +0 -10
  12. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/MANIFEST.in +0 -0
  13. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/README.md +0 -0
  14. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/__init__.py +0 -0
  15. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/__init__.py +0 -0
  16. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/alert_mixin.py +0 -0
  17. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/api.py +0 -0
  18. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/baseline_mixin.py +0 -0
  19. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/dataset_mixin.py +0 -0
  20. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/events_mixin.py +0 -0
  21. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/explainability_mixin.py +0 -0
  22. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/generate_schema_mixin.py +0 -0
  23. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/helpers.py +0 -0
  24. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/job_mixin.py +0 -0
  25. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/model_artifact_deploy.py +0 -0
  26. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/model_deployment_mixin.py +0 -0
  27. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/model_mixin.py +0 -0
  28. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/project_mixin.py +0 -0
  29. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/api/webhooks_mixin.py +0 -0
  30. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/assets/__init__.py +0 -0
  31. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/assets/pg_reserved_words.py +0 -0
  32. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/constants.py +0 -0
  33. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/core_objects.py +0 -0
  34. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/exceptions.py +0 -0
  35. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/libs/__init__.py +0 -0
  36. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/libs/http_client.py +0 -0
  37. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/packtools/__init__.py +0 -0
  38. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/packtools/gem.py +0 -0
  39. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/packtools/keras_ig_helpers.py +0 -0
  40. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/packtools/project_attributions_helpers.py +0 -0
  41. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/packtools/template_model.py +0 -0
  42. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/__init__.py +0 -0
  43. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/alert.py +0 -0
  44. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/base.py +0 -0
  45. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/baseline.py +0 -0
  46. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/dataset.py +0 -0
  47. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/events.py +0 -0
  48. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/job.py +0 -0
  49. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/model.py +0 -0
  50. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/model_deployment.py +0 -0
  51. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/project.py +0 -0
  52. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/server_info.py +0 -0
  53. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/user.py +0 -0
  54. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schema/webhook.py +0 -0
  55. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/__init__.py +0 -0
  56. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/custom_features.py +0 -0
  57. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/model_schema.py +0 -0
  58. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/model_spec.py +0 -0
  59. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/model_task_params.py +0 -0
  60. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/schemas/xai_params.py +0 -0
  61. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/__init__.py +0 -0
  62. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/decorators.py +0 -0
  63. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/formatting.py +0 -0
  64. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/general_checks.py +0 -0
  65. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/helpers.py +0 -0
  66. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/logger.py +0 -0
  67. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/pandas_helper.py +0 -0
  68. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/response_handler.py +0 -0
  69. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/semver_version.py +0 -0
  70. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/validations.py +0 -0
  71. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/utils/validator.py +0 -0
  72. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/validators/__init__.py +0 -0
  73. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler/validators/dataset_validator.py +0 -0
  74. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler_client.egg-info/SOURCES.txt +0 -0
  75. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler_client.egg-info/dependency_links.txt +0 -0
  76. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/fiddler_client.egg-info/top_level.txt +0 -0
  77. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/setup.cfg +0 -0
  78. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/__init__.py +0 -0
  79. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/__init__.py +0 -0
  80. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/base.py +0 -0
  81. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/helper.py +0 -0
  82. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_add_model.py +0 -0
  83. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_alert.py +0 -0
  84. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_baseline.py +0 -0
  85. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_check_version_decorator.py +0 -0
  86. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_custom_features.py +0 -0
  87. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_dataset_api.py +0 -0
  88. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_events_api.py +0 -0
  89. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_exceptions.py +0 -0
  90. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_explainability_apis.py +0 -0
  91. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_file_upload.py +0 -0
  92. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_generate_schema.py +0 -0
  93. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_helpers.py +0 -0
  94. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_job.py +0 -0
  95. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_model.py +0 -0
  96. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_project.py +0 -0
  97. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_response_handler.py +0 -0
  98. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_upload_dataset.py +0 -0
  99. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_validations.py +0 -0
  100. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/test_webhook.py +0 -0
  101. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/utils/__init__.py +0 -0
  102. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/utils/test_general_checks.py +0 -0
  103. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/utils/test_pandas.py +0 -0
  104. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/fiddler/utils/tests_utils.py +0 -0
  105. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/test_object_inference.py +0 -0
  106. {fiddler-client-2.1.0.dev2 → fiddler-client-2.1.0.dev4}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 2.1.0.dev2
3
+ Version: 2.1.0.dev4
4
4
  Summary: Python client for Fiddler Service
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -31,8 +31,22 @@ Description: Fiddler Client
31
31
  - #### **New Features**
32
32
  - Introduce Model Tasks `NOT_SET` and `LLM`
33
33
  - Relax Target / Output specification for model tasks `NOT_SET` and `LLM`
34
+ - Support custom metrics
34
35
 
35
- ### 2.0.0
36
+ ### 2.0.4
37
+ - #### **Modifications**
38
+ - Update `pyarrow` requirement to `13.0.0`.
39
+
40
+ ### 2.0.3
41
+ - #### **Modifications**
42
+ - Relax pandas version for 2.0.
43
+ - get_slice() `query` parameter reverted to `sql_query`
44
+
45
+ ### 2.0.2
46
+ - #### **Modifications**
47
+ - Fix Parquet conversion issue in `upload_dataset` and `publish_event_batch`
48
+
49
+ ### 2.0.1
36
50
  - #### **Removed**
37
51
  - Following methods are removed
38
52
  - register_model
@@ -49,16 +63,24 @@ Description: Fiddler Client
49
63
  - process_avro
50
64
  - process_csv
51
65
  - #### **New Features**
52
- - Add `monitor_components` as an attribute of `CustomFeature`. Default to `False`
66
+ - Add `monitor_components` as an attribute for `CustomFeature` of type `FROM_COLUMNS`. Default as `False`
67
+ - Adds new statistic type `SUM` to supported alert metrics
68
+ - Support `CustomFeature` of type `FROM_VECTOR` `FROM_TEXT_EMBEDDING` and `FROM_IMAGE_EMBEDDING`
69
+ - #### **Modificatiosn**
53
70
  - Remove `column` as a parameter in `add_alert_rule` and `get_alert_rules` functions
54
- - Adds new statistic type SUM to supported alert metrics
71
+ - Default `FileType` Parquet in `upload_dataset` and `publish_event_batch`
72
+ - get_slice() `sql_query` parameter changed to `query`
73
+
74
+ ### 1.8.6
75
+ - #### **Modifications**
76
+ - Relax pandas version for 2.0.
55
77
 
56
78
  ### 1.8.4
57
79
  - #### **New Features**
58
- - New DeploymentType enum for MANUAL deployment
80
+ - New DeploymentType enum for `MANUAL` deployment
59
81
 
60
82
  ### 1.8.3
61
- - ### **Modifications**
83
+ - #### **Modifications**
62
84
  - New `columns` parameter in add_alert_rule and get_alert_rules to support multiple columns to be used for server version >= 23.3.0
63
85
  - get_triggered_alerts supports `alert_value` as a float as well as a dict
64
86
 
@@ -24,8 +24,22 @@ Version History
24
24
  - #### **New Features**
25
25
  - Introduce Model Tasks `NOT_SET` and `LLM`
26
26
  - Relax Target / Output specification for model tasks `NOT_SET` and `LLM`
27
+ - Support custom metrics
27
28
 
28
- ### 2.0.0
29
+ ### 2.0.4
30
+ - #### **Modifications**
31
+ - Update `pyarrow` requirement to `13.0.0`.
32
+
33
+ ### 2.0.3
34
+ - #### **Modifications**
35
+ - Relax pandas version for 2.0.
36
+ - get_slice() `query` parameter reverted to `sql_query`
37
+
38
+ ### 2.0.2
39
+ - #### **Modifications**
40
+ - Fix Parquet conversion issue in `upload_dataset` and `publish_event_batch`
41
+
42
+ ### 2.0.1
29
43
  - #### **Removed**
30
44
  - Following methods are removed
31
45
  - register_model
@@ -42,16 +56,24 @@ Version History
42
56
  - process_avro
43
57
  - process_csv
44
58
  - #### **New Features**
45
- - Add `monitor_components` as an attribute of `CustomFeature`. Default to `False`
59
+ - Add `monitor_components` as an attribute for `CustomFeature` of type `FROM_COLUMNS`. Default as `False`
60
+ - Adds new statistic type `SUM` to supported alert metrics
61
+ - Support `CustomFeature` of type `FROM_VECTOR` `FROM_TEXT_EMBEDDING` and `FROM_IMAGE_EMBEDDING`
62
+ - #### **Modificatiosn**
46
63
  - Remove `column` as a parameter in `add_alert_rule` and `get_alert_rules` functions
47
- - Adds new statistic type SUM to supported alert metrics
64
+ - Default `FileType` Parquet in `upload_dataset` and `publish_event_batch`
65
+ - get_slice() `sql_query` parameter changed to `query`
66
+
67
+ ### 1.8.6
68
+ - #### **Modifications**
69
+ - Relax pandas version for 2.0.
48
70
 
49
71
  ### 1.8.4
50
72
  - #### **New Features**
51
- - New DeploymentType enum for MANUAL deployment
73
+ - New DeploymentType enum for `MANUAL` deployment
52
74
 
53
75
  ### 1.8.3
54
- - ### **Modifications**
76
+ - #### **Modifications**
55
77
  - New `columns` parameter in add_alert_rule and get_alert_rules to support multiple columns to be used for server version >= 23.3.0
56
78
  - get_triggered_alerts supports `alert_value` as a float as well as a dict
57
79
 
@@ -0,0 +1 @@
1
+ __version__ = '2.1.0.dev4'
@@ -1,5 +1,5 @@
1
1
  from http import HTTPStatus
2
- from typing import List
2
+ from typing import List, Optional
3
3
 
4
4
  from pydantic import parse_obj_as
5
5
 
@@ -22,7 +22,12 @@ class CustomMetricsMixin:
22
22
 
23
23
  @handle_api_error_response
24
24
  def add_custom_metric(
25
- self, name: str, project_id: str, model_id: str, fql: str
25
+ self,
26
+ name: str,
27
+ project_id: str,
28
+ model_id: str,
29
+ definition: str,
30
+ description: Optional[str] = None,
26
31
  ) -> CustomMetric:
27
32
  """
28
33
  Add a new `Custom Metric`.
@@ -30,7 +35,8 @@ class CustomMetricsMixin:
30
35
  :params name: name of custom metric
31
36
  :params project_id: name of project
32
37
  :params model_id: name of model
33
- :params fql: The FQL expression describing the metric
38
+ :params definition: The FQL expression describing the metric
39
+ :params description: description of custom metric
34
40
 
35
41
  :returns: Created `CustomMetric` object.
36
42
  """
@@ -39,7 +45,8 @@ class CustomMetricsMixin:
39
45
  'project_name': project_id,
40
46
  'model_name': model_id,
41
47
  'name': name,
42
- 'fql': fql,
48
+ 'definition': definition,
49
+ 'description': description,
43
50
  }
44
51
  response = self.client.post(
45
52
  url='custom-metrics',
@@ -51,7 +58,7 @@ class CustomMetricsMixin:
51
58
  return CustomMetric.parse_obj(attrs)
52
59
 
53
60
  @handle_api_error_response
54
- def delete_custom_metric(self, metric_id: str = None) -> None:
61
+ def delete_custom_metric(self, metric_id: str) -> None:
55
62
  """
56
63
  Delete a custom metric
57
64
 
@@ -95,3 +102,15 @@ class CustomMetricsMixin:
95
102
  )
96
103
  items = PaginatedResponseHandler(response).get_pagination_items()
97
104
  return parse_obj_as(List[CustomMetric], items)
105
+
106
+ @handle_api_error_response
107
+ def get_custom_metric(self, metric_id: str) -> CustomMetric:
108
+ """
109
+ Get a `CustomMetric` object.
110
+
111
+ :params metric_id: id of the custom metric
112
+
113
+ :returns: a `CustomMetric` object
114
+ """
115
+ response = self.client.get(url=f'custom-metrics/{metric_id}')
116
+ return CustomMetric.deserialize(APIResponseHandler(response))
@@ -0,0 +1,18 @@
1
+ from typing import Optional
2
+
3
+ from fiddler.schema.base import BaseDataSchema
4
+ from fiddler.schema.user import UserCompact
5
+ from datetime import datetime
6
+
7
+
8
+ class CustomMetric(BaseDataSchema):
9
+ id: str
10
+ name: str
11
+ project_name: str
12
+ organization_name: str
13
+ name: str
14
+ definition: str
15
+ description: Optional[str]
16
+ created_at: Optional[datetime]
17
+ created_by: Optional[UserCompact]
18
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 2.1.0.dev2
3
+ Version: 2.1.0.dev4
4
4
  Summary: Python client for Fiddler Service
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -31,8 +31,22 @@ Description: Fiddler Client
31
31
  - #### **New Features**
32
32
  - Introduce Model Tasks `NOT_SET` and `LLM`
33
33
  - Relax Target / Output specification for model tasks `NOT_SET` and `LLM`
34
+ - Support custom metrics
34
35
 
35
- ### 2.0.0
36
+ ### 2.0.4
37
+ - #### **Modifications**
38
+ - Update `pyarrow` requirement to `13.0.0`.
39
+
40
+ ### 2.0.3
41
+ - #### **Modifications**
42
+ - Relax pandas version for 2.0.
43
+ - get_slice() `query` parameter reverted to `sql_query`
44
+
45
+ ### 2.0.2
46
+ - #### **Modifications**
47
+ - Fix Parquet conversion issue in `upload_dataset` and `publish_event_batch`
48
+
49
+ ### 2.0.1
36
50
  - #### **Removed**
37
51
  - Following methods are removed
38
52
  - register_model
@@ -49,16 +63,24 @@ Description: Fiddler Client
49
63
  - process_avro
50
64
  - process_csv
51
65
  - #### **New Features**
52
- - Add `monitor_components` as an attribute of `CustomFeature`. Default to `False`
66
+ - Add `monitor_components` as an attribute for `CustomFeature` of type `FROM_COLUMNS`. Default as `False`
67
+ - Adds new statistic type `SUM` to supported alert metrics
68
+ - Support `CustomFeature` of type `FROM_VECTOR` `FROM_TEXT_EMBEDDING` and `FROM_IMAGE_EMBEDDING`
69
+ - #### **Modificatiosn**
53
70
  - Remove `column` as a parameter in `add_alert_rule` and `get_alert_rules` functions
54
- - Adds new statistic type SUM to supported alert metrics
71
+ - Default `FileType` Parquet in `upload_dataset` and `publish_event_batch`
72
+ - get_slice() `sql_query` parameter changed to `query`
73
+
74
+ ### 1.8.6
75
+ - #### **Modifications**
76
+ - Relax pandas version for 2.0.
55
77
 
56
78
  ### 1.8.4
57
79
  - #### **New Features**
58
- - New DeploymentType enum for MANUAL deployment
80
+ - New DeploymentType enum for `MANUAL` deployment
59
81
 
60
82
  ### 1.8.3
61
- - ### **Modifications**
83
+ - #### **Modifications**
62
84
  - New `columns` parameter in add_alert_rule and get_alert_rules to support multiple columns to be used for server version >= 23.3.0
63
85
  - get_triggered_alerts supports `alert_value` as a float as well as a dict
64
86
 
@@ -1,7 +1,7 @@
1
1
  deprecated==1.2.13
2
2
  pandas>=1.2.5
3
3
  pip>=21.0
4
- pyarrow>=12.0.1
4
+ pyarrow>=13.0.0
5
5
  pydantic==1.9.0
6
6
  pyyaml
7
7
  requests-toolbelt
@@ -34,7 +34,7 @@ setuptools.setup(
34
34
  'deprecated==1.2.13',
35
35
  'tqdm',
36
36
  'simplejson>=3.17.0',
37
- 'pyarrow>=12.0.1',
37
+ 'pyarrow>=13.0.0',
38
38
  'pyyaml',
39
39
  ],
40
40
  classifiers=[
@@ -27,17 +27,32 @@ class TestCustomMetric(BaseTestCase):
27
27
  "project_name": "bank_churn",
28
28
  "name": "tp_0.8",
29
29
  "model_name": "churn_classifier",
30
- "fql": "sum(age)",
30
+ "definition": "sum(age)",
31
31
  "id": "fbba0596-1d49-4159-a5ea-e1c2f57c9c32",
32
- "organization_name": "test_organization"
32
+ "organization_name": "test_organization",
33
+ "description": "test description",
34
+ "extra_field_from_future": "should_not_break",
35
+ "created_at": "2021-03-03T18:30:00.000Z",
36
+ "created_by": {
37
+ "id": "1",
38
+ "full_name": "test user",
39
+ "email": "testuser@fiddler.ai"
40
+ }
33
41
  },
34
42
  {
35
43
  "project_name": "bank_churn",
36
44
  "name": "tp_0.6",
37
45
  "model_name": "churn_classifier",
38
- "fql": "sum(credit_score)",
46
+ "definition": "sum(credit_score)",
39
47
  "id": "3a352397-a89a-495d-a095-440f1d21a58a",
40
- "organization_name": "test_organization"
48
+ "organization_name": "test_organization",
49
+ "description": "test description",
50
+ "created_at": "2021-03-03T18:30:00.000Z",
51
+ "created_by": {
52
+ "id": "2",
53
+ "full_name": "test user",
54
+ "email": "testuser@fiddler.ai"
55
+ }
41
56
  }
42
57
  ]
43
58
  },
@@ -65,18 +80,32 @@ class TestCustomMetric(BaseTestCase):
65
80
  CustomMetric(
66
81
  id='fbba0596-1d49-4159-a5ea-e1c2f57c9c32',
67
82
  name='tp_0.8',
68
- fql='sum(age)',
83
+ definition='sum(age)',
69
84
  organization_name='test_organization',
70
85
  project_name='bank_churn',
71
86
  model_name='churn_classifier',
87
+ description='test description',
88
+ created_at='2021-03-03T18:30:00.000Z',
89
+ created_by={
90
+ "id": "1",
91
+ "full_name": "test user",
92
+ "email": "testuser@fiddler.ai"
93
+ }
72
94
  ),
73
95
  CustomMetric(
74
96
  id='3a352397-a89a-495d-a095-440f1d21a58a',
75
97
  name='tp_0.6',
76
- fql='sum(credit_score)',
98
+ definition='sum(credit_score)',
77
99
  organization_name='test_organization',
78
100
  project_name='bank_churn',
79
101
  model_name='churn_classifier',
102
+ description='test description',
103
+ created_at='2021-03-03T18:30:00.000Z',
104
+ created_by={
105
+ "id": "2",
106
+ "full_name": "test user",
107
+ "email": "testuser@fiddler.ai"
108
+ }
80
109
  ),
81
110
  ]
82
111
 
@@ -95,17 +124,19 @@ class TestCustomMetric(BaseTestCase):
95
124
 
96
125
  custom_metric = self.client.add_custom_metric(
97
126
  name='my custom',
98
- fql='sum(age)',
127
+ definition='sum(age)',
99
128
  project_id='bank_churn',
100
129
  model_id='churn_classifier',
130
+ description='test description',
101
131
  )
102
132
  assert custom_metric == CustomMetric(
103
133
  id='fbba0596-1d49-4159-a5ea-e1c2f57c9c32',
104
134
  name='my custom',
105
- fql='sum(age)',
135
+ definition='sum(age)',
106
136
  organization_name='test_organization',
107
137
  project_name='bank_churn',
108
138
  model_name='churn_classifier',
139
+ description='test description',
109
140
  )
110
141
 
111
142
  def test_add_custom_metric_error(self):
@@ -131,7 +162,7 @@ class TestCustomMetric(BaseTestCase):
131
162
  with self.assertRaises(BadRequest) as context:
132
163
  self.client.add_custom_metric(
133
164
  name='my custom',
134
- fql='sum(unknown)',
165
+ definition='sum(unknown)',
135
166
  project_id='bank_churn',
136
167
  model_id='churn_classifier',
137
168
  )
@@ -140,6 +171,50 @@ class TestCustomMetric(BaseTestCase):
140
171
  "Column unknown not found in model churn_classifier"
141
172
  )
142
173
 
174
+ def test_get_custom_metric(self):
175
+ uuid = 'fbba0596-1d49-4159-a5ea-e1c2f57c9c32'
176
+ response = {
177
+ "data": {
178
+ "project_name": "bank_churn",
179
+ "name": "tp_0.8",
180
+ "model_name": "churn_classifier",
181
+ "definition": "sum(age)",
182
+ "id": "fbba0596-1d49-4159-a5ea-e1c2f57c9c32",
183
+ "organization_name": "test_organization",
184
+ "description": "test description",
185
+ "extra_field_from_future": "should_not_break",
186
+ "created_at": "2021-03-03T18:30:00.000Z",
187
+ "created_by": {
188
+ "id": "1",
189
+ "full_name": "test user",
190
+ "email": "testuser@fiddler.ai"
191
+ }
192
+ },
193
+ "api_version": "2.0",
194
+ "kind": "NORMAL"
195
+ }
196
+ url = self._get_url(uuid)
197
+
198
+ self.requests_mock.get(url, json=response)
199
+ cm = self.client.get_custom_metric(
200
+ metric_id='fbba0596-1d49-4159-a5ea-e1c2f57c9c32'
201
+ )
202
+ assert cm == CustomMetric(
203
+ id='fbba0596-1d49-4159-a5ea-e1c2f57c9c32',
204
+ name='tp_0.8',
205
+ definition='sum(age)',
206
+ organization_name='test_organization',
207
+ project_name='bank_churn',
208
+ model_name='churn_classifier',
209
+ description='test description',
210
+ created_at='2021-03-03T18:30:00.000Z',
211
+ created_by={
212
+ "id": "1",
213
+ "full_name": "test user",
214
+ "email": "testuser@fiddler.ai"
215
+ }
216
+ )
217
+
143
218
  def test_delete_custom_metric(self):
144
219
  uuid = 'fbba0596-1d49-4159-a5ea-e1c2f57c9c32'
145
220
  url = self._get_url(uuid)
@@ -1 +0,0 @@
1
- __version__ = '2.1.0.dev2'
@@ -1,10 +0,0 @@
1
- from fiddler.schema.base import BaseDataSchema
2
-
3
-
4
- class CustomMetric(BaseDataSchema):
5
- id: str
6
- name: str
7
- project_name: str
8
- organization_name: str
9
- name: str
10
- fql: str