fiddler-client 3.1.0.dev1__tar.gz → 3.1.0.dev2__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 (120) hide show
  1. fiddler-client-3.1.0.dev2/PKG-INFO +45 -0
  2. fiddler-client-3.1.0.dev2/PUBLIC.md +22 -0
  3. fiddler-client-3.1.0.dev2/fiddler/VERSION +1 -0
  4. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/model.py +6 -1
  5. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/custom_features.py +30 -29
  6. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/model.py +1 -0
  7. fiddler-client-3.1.0.dev2/fiddler/schemas/model_spec.py +32 -0
  8. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_mixin.py +4 -1
  9. fiddler-client-3.1.0.dev2/fiddler_client.egg-info/PKG-INFO +45 -0
  10. fiddler-client-3.1.0.dev1/PKG-INFO +0 -538
  11. fiddler-client-3.1.0.dev1/PUBLIC.md +0 -515
  12. fiddler-client-3.1.0.dev1/fiddler/VERSION +0 -1
  13. fiddler-client-3.1.0.dev1/fiddler/schemas/model_spec.py +0 -30
  14. fiddler-client-3.1.0.dev1/fiddler_client.egg-info/PKG-INFO +0 -538
  15. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/LICENSE.txt +0 -0
  16. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/MANIFEST.in +0 -0
  17. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/README.md +0 -0
  18. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/__init__.py +0 -0
  19. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/configs.py +0 -0
  20. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/connection.py +0 -0
  21. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/__init__.py +0 -0
  22. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/alert_rule.py +0 -0
  23. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/baseline.py +0 -0
  24. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/common.py +0 -0
  25. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/dataset.py +0 -0
  26. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/events.py +0 -0
  27. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/job.py +0 -0
  28. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/model.py +0 -0
  29. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/model_deployment.py +0 -0
  30. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/constants/xai.py +0 -0
  31. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/decorators.py +0 -0
  32. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/__init__.py +0 -0
  33. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/alert_record.py +0 -0
  34. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/alert_rule.py +0 -0
  35. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/base.py +0 -0
  36. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/baseline.py +0 -0
  37. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/custom_expression.py +0 -0
  38. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/dataset.py +0 -0
  39. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/events.py +0 -0
  40. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/file.py +0 -0
  41. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/job.py +0 -0
  42. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/model_artifact.py +0 -0
  43. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/model_deployment.py +0 -0
  44. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/organization.py +0 -0
  45. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/project.py +0 -0
  46. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/surrogate.py +0 -0
  47. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/user.py +0 -0
  48. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/webhook.py +0 -0
  49. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/entities/xai.py +0 -0
  50. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/exceptions.py +0 -0
  51. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/libs/__init__.py +0 -0
  52. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/libs/http_client.py +0 -0
  53. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/libs/json_encoder.py +0 -0
  54. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/libs/semver.py +0 -0
  55. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/packtools/__init__.py +0 -0
  56. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/packtools/gem.py +0 -0
  57. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/packtools/keras_ig_helpers.py +0 -0
  58. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/packtools/project_attributions_helpers.py +0 -0
  59. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/packtools/template_model.py +0 -0
  60. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/__init__.py +0 -0
  61. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/alert_record.py +0 -0
  62. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/alert_rule.py +0 -0
  63. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/base.py +0 -0
  64. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/baseline.py +0 -0
  65. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/custom_expression.py +0 -0
  66. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/dataset.py +0 -0
  67. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/events.py +0 -0
  68. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/file.py +0 -0
  69. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/filter_query.py +0 -0
  70. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/job.py +0 -0
  71. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/model_deployment.py +0 -0
  72. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/model_schema.py +0 -0
  73. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/model_task_params.py +0 -0
  74. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/organization.py +0 -0
  75. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/project.py +0 -0
  76. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/response.py +0 -0
  77. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/server_info.py +0 -0
  78. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/user.py +0 -0
  79. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/webhook.py +0 -0
  80. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/xai.py +0 -0
  81. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/schemas/xai_params.py +0 -0
  82. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/__init__.py +0 -0
  83. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/__init__.py +0 -0
  84. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_alert_record.py +0 -0
  85. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_alert_rule.py +0 -0
  86. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_baseline.py +0 -0
  87. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_custom_metric.py +0 -0
  88. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_dataset.py +0 -0
  89. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_events.py +0 -0
  90. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_files.py +0 -0
  91. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_generate_model.py +0 -0
  92. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_job.py +0 -0
  93. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_model.py +0 -0
  94. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_model_artifact.py +0 -0
  95. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_model_deployment.py +0 -0
  96. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_model_surrogate.py +0 -0
  97. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_project.py +0 -0
  98. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_segment.py +0 -0
  99. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_webhook.py +0 -0
  100. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/apis/test_xai.py +0 -0
  101. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/conftest.py +0 -0
  102. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/constants.py +0 -0
  103. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/test_connection.py +0 -0
  104. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/test_json_encoder.py +0 -0
  105. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/test_logger.py +0 -0
  106. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/test_utils.py +0 -0
  107. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/tests/utils.py +0 -0
  108. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/__init__.py +0 -0
  109. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/helpers.py +0 -0
  110. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/logger.py +0 -0
  111. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/model_generator.py +0 -0
  112. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/validations.py +0 -0
  113. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/utils/version.py +0 -0
  114. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler/version.py +0 -0
  115. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler_client.egg-info/SOURCES.txt +0 -0
  116. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler_client.egg-info/dependency_links.txt +0 -0
  117. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler_client.egg-info/requires.txt +0 -0
  118. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/fiddler_client.egg-info/top_level.txt +0 -0
  119. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/setup.cfg +0 -0
  120. {fiddler-client-3.1.0.dev1 → fiddler-client-3.1.0.dev2}/setup.py +0 -0
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: fiddler-client
3
+ Version: 3.1.0.dev2
4
+ Summary: Python client for Fiddler Platform
5
+ Home-page: https://fiddler.ai
6
+ Author: Fiddler Labs
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >3.8.0
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: pip>=21.0
14
+ Requires-Dist: requests<3
15
+ Requires-Dist: requests-toolbelt
16
+ Requires-Dist: pandas>=1.2.5
17
+ Requires-Dist: pydantic<2,>=1.9.0
18
+ Requires-Dist: deprecated==1.2.13
19
+ Requires-Dist: tqdm
20
+ Requires-Dist: simplejson>=3.17.0
21
+ Requires-Dist: pyarrow>=7.0.0
22
+ Requires-Dist: pyyaml
23
+
24
+ Fiddler Client
25
+ =============
26
+
27
+ Python client for interacting with Fiddler. Provides a user-friendly interface to our REST API and enables event
28
+ publishing for use with our monitoring features.
29
+
30
+ Requirements
31
+ ------------
32
+ Requires Python >= Python-3.6.3 and pip >= 19.0
33
+
34
+ Installation
35
+ ------------
36
+
37
+ $ pip3 install fiddler-client
38
+
39
+ API Example Usage
40
+ -------------
41
+ Documentation for the API can be found [here](https://docs.fiddler.ai/reference/about-the-fiddler-client). For examples of interacting with our APIs, please check out our [Quick Start Guide](https://docs.fiddler.ai/docs/quick-start) as well as the notebooks found on our [Examples Github](https://github.com/fiddler-labs/fiddler-examples).
42
+
43
+ Version History
44
+ -------------
45
+ Version history is available on [Fiddler documentation page](https://docs.fiddler.ai/page/python-client-version-history).
@@ -0,0 +1,22 @@
1
+ Fiddler Client
2
+ =============
3
+
4
+ Python client for interacting with Fiddler. Provides a user-friendly interface to our REST API and enables event
5
+ publishing for use with our monitoring features.
6
+
7
+ Requirements
8
+ ------------
9
+ Requires Python >= Python-3.6.3 and pip >= 19.0
10
+
11
+ Installation
12
+ ------------
13
+
14
+ $ pip3 install fiddler-client
15
+
16
+ API Example Usage
17
+ -------------
18
+ Documentation for the API can be found [here](https://docs.fiddler.ai/reference/about-the-fiddler-client). For examples of interacting with our APIs, please check out our [Quick Start Guide](https://docs.fiddler.ai/docs/quick-start) as well as the notebooks found on our [Examples Github](https://github.com/fiddler-labs/fiddler-examples).
19
+
20
+ Version History
21
+ -------------
22
+ Version history is available on [Fiddler documentation page](https://docs.fiddler.ai/page/python-client-version-history).
@@ -0,0 +1 @@
1
+ 3.1.0.dev2
@@ -548,6 +548,7 @@ class Model(
548
548
  class ModelCompact:
549
549
  id: UUID
550
550
  name: str
551
+ version: str | None = None
551
552
 
552
553
  def fetch(self) -> Model:
553
554
  """Fetch model instance"""
@@ -565,4 +566,8 @@ class ModelCompactMixin:
565
566
  'response.'
566
567
  )
567
568
 
568
- return ModelCompact(id=response.model.id, name=response.model.name)
569
+ return ModelCompact(
570
+ id=response.model.id,
571
+ name=response.model.name,
572
+ version=response.model.version,
573
+ )
@@ -1,4 +1,4 @@
1
- from typing import Any, Dict, List, Optional, Type, TypeVar
1
+ from typing import Any, Dict, List, Optional, Type, TypeVar, Literal
2
2
 
3
3
  from pydantic import BaseModel, validator
4
4
 
@@ -10,18 +10,12 @@ CustomFeatureTypeVar = TypeVar('CustomFeatureTypeVar', bound='CustomFeature')
10
10
 
11
11
  class CustomFeature(BaseModel):
12
12
  name: str
13
- type: CustomFeatureType
14
- n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
15
- centroids: Optional[List] = None
16
-
17
- @validator('n_clusters')
18
- def validate_n_clusters(cls, value: int) -> int: # noqa: N805
19
- if value < 0:
20
- raise ValueError('n_clusters must be greater than 0')
21
- return value
13
+ type: Any
22
14
 
23
15
  class Config:
24
16
  allow_mutation = False
17
+ use_enum_values = True
18
+ discriminator = 'type'
25
19
 
26
20
  @classmethod
27
21
  def from_columns(
@@ -53,12 +47,13 @@ class CustomFeature(BaseModel):
53
47
  return_dict: Dict[str, Any] = {
54
48
  'name': self.name,
55
49
  'type': self.type.value,
56
- 'n_clusters': self.n_clusters,
57
50
  }
58
51
  if isinstance(self, Multivariate):
59
52
  return_dict['columns'] = self.columns
53
+ return_dict['n_clusters'] = self.n_clusters
60
54
  elif isinstance(self, VectorFeature):
61
55
  return_dict['column'] = self.column
56
+ return_dict['n_clusters'] = self.n_clusters
62
57
  if isinstance(self, (ImageEmbedding, TextEmbedding)):
63
58
  return_dict['source_column'] = self.source_column
64
59
  if isinstance(self, TextEmbedding):
@@ -74,7 +69,9 @@ class CustomFeature(BaseModel):
74
69
 
75
70
 
76
71
  class Multivariate(CustomFeature):
77
- type: CustomFeatureType = CustomFeatureType.FROM_COLUMNS
72
+ type: Literal['FROM_COLUMNS'] = CustomFeatureType.FROM_COLUMNS.value
73
+ n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
74
+ centroids: Optional[List] = None
78
75
  columns: List[str]
79
76
  monitor_components: bool = False
80
77
 
@@ -84,22 +81,31 @@ class Multivariate(CustomFeature):
84
81
  raise ValueError('Multivariate columns must be greater than 1')
85
82
  return value
86
83
 
84
+ @validator('n_clusters')
85
+ def validate_n_clusters(cls, value: int) -> int: # noqa: N805
86
+ if value < 0:
87
+ raise ValueError('n_clusters must be greater than 0')
88
+ return value
89
+
87
90
 
88
91
  class VectorFeature(CustomFeature):
89
- type: CustomFeatureType = CustomFeatureType.FROM_VECTOR
90
- source_column: Optional[str] = None
92
+ type: Literal['FROM_VECTOR'] = CustomFeatureType.FROM_VECTOR.value
93
+ n_clusters: Optional[int] = DEFAULT_NUM_CLUSTERS
94
+ centroids: Optional[List] = None
91
95
  column: str
92
96
 
97
+ @validator('n_clusters')
98
+ def validate_n_clusters(cls, value: int) -> int: # noqa: N805
99
+ if value < 0:
100
+ raise ValueError('n_clusters must be greater than 0')
101
+ return value
102
+
93
103
 
94
104
  class TextEmbedding(VectorFeature):
95
- type: CustomFeatureType = CustomFeatureType.FROM_TEXT_EMBEDDING
105
+ type: Literal['FROM_TEXT_EMBEDDING'] = CustomFeatureType.FROM_TEXT_EMBEDDING.value # type: ignore
106
+ source_column: str
96
107
  n_tags: Optional[int] = DEFAULT_NUM_TAGS
97
-
98
- @validator('source_column')
99
- def validate_source_column(cls, value: str) -> str: # noqa: N805
100
- if value is None:
101
- raise ValueError('source_column must be specified')
102
- return value
108
+ tf_idf: Optional[Dict[str, List]] = None
103
109
 
104
110
  @validator('n_tags')
105
111
  def validate_n_tags(cls, value: int) -> int: # noqa: N805
@@ -109,13 +115,8 @@ class TextEmbedding(VectorFeature):
109
115
 
110
116
 
111
117
  class ImageEmbedding(VectorFeature):
112
- type: CustomFeatureType = CustomFeatureType.FROM_IMAGE_EMBEDDING
113
-
114
- @validator('source_column')
115
- def validate_source_column(cls, value: str) -> str: # noqa: N805
116
- if value is None:
117
- raise ValueError('source_column must be specified')
118
- return value
118
+ type: Literal['FROM_IMAGE_EMBEDDING'] = CustomFeatureType.FROM_IMAGE_EMBEDDING.value # type: ignore
119
+ source_column: str
119
120
 
120
121
 
121
122
  class Enrichment(CustomFeature):
@@ -134,7 +135,7 @@ class Enrichment(CustomFeature):
134
135
  """
135
136
 
136
137
  # Setting the feature type to ENRICHMENT
137
- type: CustomFeatureType = CustomFeatureType.ENRICHMENT
138
+ type: Literal['ENRICHMENT'] = CustomFeatureType.ENRICHMENT.value
138
139
 
139
140
  # List of input column names used to generate the enrichment
140
141
  columns: List[str]
@@ -17,6 +17,7 @@ from fiddler.schemas.xai_params import XaiParams
17
17
  class ModelCompactResp(BaseModel):
18
18
  id: UUID
19
19
  name: str
20
+ version: Optional[str]
20
21
 
21
22
 
22
23
  class ModelResp(BaseModel):
@@ -0,0 +1,32 @@
1
+ from typing import List, Union
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+ from fiddler.schemas.custom_features import Multivariate, VectorFeature, TextEmbedding, ImageEmbedding, Enrichment
6
+
7
+
8
+ class ModelSpec(BaseModel):
9
+ """Model spec defines how model columns are used along with model task"""
10
+
11
+ schema_version: int = 1
12
+ """Schema version"""
13
+
14
+ inputs: List[str] = Field(default_factory=list)
15
+ """Feature columns"""
16
+
17
+ outputs: List[str] = Field(default_factory=list)
18
+ """Prediction columns"""
19
+
20
+ targets: List[str] = Field(default_factory=list)
21
+ """Label columns"""
22
+
23
+ decisions: List[str] = Field(default_factory=list)
24
+ """Decisions columns"""
25
+
26
+ metadata: List[str] = Field(default_factory=list)
27
+ """Metadata columns"""
28
+
29
+ custom_features: List[Union[Multivariate, VectorFeature, TextEmbedding, ImageEmbedding, Enrichment]] = Field(
30
+ default_factory=list
31
+ )
32
+ """Custom feature definitions"""
@@ -20,6 +20,7 @@ from fiddler.tests.constants import (
20
20
  DATASET_NAME,
21
21
  MODEL_ID,
22
22
  MODEL_NAME,
23
+ MODEL_VERSION,
23
24
  PROJECT_ID,
24
25
  PROJECT_NAME,
25
26
  USER_EMAIL,
@@ -39,7 +40,9 @@ class DummyEntity(
39
40
  def __init__(self) -> None:
40
41
  self._resp = mock.MagicMock()
41
42
  self._resp.project = ProjectCompactResp(id=PROJECT_ID, name=PROJECT_NAME)
42
- self._resp.model = ModelCompactResp(id=MODEL_ID, name=MODEL_NAME)
43
+ self._resp.model = ModelCompactResp(
44
+ id=MODEL_ID, name=MODEL_NAME, version=MODEL_VERSION
45
+ )
43
46
  self._resp.dataset = DatasetCompactResp(
44
47
  id=DATASET_ID, name=DATASET_NAME, type=EnvType.PRE_PRODUCTION
45
48
  )
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: fiddler-client
3
+ Version: 3.1.0.dev2
4
+ Summary: Python client for Fiddler Platform
5
+ Home-page: https://fiddler.ai
6
+ Author: Fiddler Labs
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >3.8.0
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: pip>=21.0
14
+ Requires-Dist: requests<3
15
+ Requires-Dist: requests-toolbelt
16
+ Requires-Dist: pandas>=1.2.5
17
+ Requires-Dist: pydantic<2,>=1.9.0
18
+ Requires-Dist: deprecated==1.2.13
19
+ Requires-Dist: tqdm
20
+ Requires-Dist: simplejson>=3.17.0
21
+ Requires-Dist: pyarrow>=7.0.0
22
+ Requires-Dist: pyyaml
23
+
24
+ Fiddler Client
25
+ =============
26
+
27
+ Python client for interacting with Fiddler. Provides a user-friendly interface to our REST API and enables event
28
+ publishing for use with our monitoring features.
29
+
30
+ Requirements
31
+ ------------
32
+ Requires Python >= Python-3.6.3 and pip >= 19.0
33
+
34
+ Installation
35
+ ------------
36
+
37
+ $ pip3 install fiddler-client
38
+
39
+ API Example Usage
40
+ -------------
41
+ Documentation for the API can be found [here](https://docs.fiddler.ai/reference/about-the-fiddler-client). For examples of interacting with our APIs, please check out our [Quick Start Guide](https://docs.fiddler.ai/docs/quick-start) as well as the notebooks found on our [Examples Github](https://github.com/fiddler-labs/fiddler-examples).
42
+
43
+ Version History
44
+ -------------
45
+ Version history is available on [Fiddler documentation page](https://docs.fiddler.ai/page/python-client-version-history).