fiddler-client 3.0.0.dev12__tar.gz → 3.0.0.dev14__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 (119) hide show
  1. fiddler-client-3.0.0.dev14/PKG-INFO +45 -0
  2. fiddler-client-3.0.0.dev14/PUBLIC.md +22 -0
  3. fiddler-client-3.0.0.dev14/fiddler/VERSION +1 -0
  4. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/events.py +20 -23
  5. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/custom_features.py +1 -0
  6. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_events.py +39 -12
  7. fiddler-client-3.0.0.dev14/fiddler_client.egg-info/PKG-INFO +45 -0
  8. fiddler-client-3.0.0.dev12/PKG-INFO +0 -538
  9. fiddler-client-3.0.0.dev12/PUBLIC.md +0 -515
  10. fiddler-client-3.0.0.dev12/fiddler/VERSION +0 -1
  11. fiddler-client-3.0.0.dev12/fiddler_client.egg-info/PKG-INFO +0 -538
  12. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/LICENSE.txt +0 -0
  13. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/MANIFEST.in +0 -0
  14. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/README.md +0 -0
  15. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/__init__.py +0 -0
  16. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/configs.py +0 -0
  17. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/connection.py +0 -0
  18. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/__init__.py +0 -0
  19. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/alert_rule.py +0 -0
  20. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/baseline.py +0 -0
  21. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/common.py +0 -0
  22. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/dataset.py +0 -0
  23. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/events.py +0 -0
  24. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/job.py +0 -0
  25. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/model.py +0 -0
  26. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/model_deployment.py +0 -0
  27. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/constants/xai.py +0 -0
  28. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/decorators.py +0 -0
  29. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/__init__.py +0 -0
  30. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/alert_record.py +0 -0
  31. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/alert_rule.py +0 -0
  32. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/base.py +0 -0
  33. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/baseline.py +0 -0
  34. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/custom_expression.py +0 -0
  35. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/dataset.py +0 -0
  36. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/file.py +0 -0
  37. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/job.py +0 -0
  38. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/model.py +0 -0
  39. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/model_artifact.py +0 -0
  40. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/model_deployment.py +0 -0
  41. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/organization.py +0 -0
  42. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/project.py +0 -0
  43. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/surrogate.py +0 -0
  44. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/user.py +0 -0
  45. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/webhook.py +0 -0
  46. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/entities/xai.py +0 -0
  47. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/exceptions.py +0 -0
  48. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/libs/__init__.py +0 -0
  49. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/libs/http_client.py +0 -0
  50. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/libs/json_encoder.py +0 -0
  51. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/libs/semver.py +0 -0
  52. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/packtools/__init__.py +0 -0
  53. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/packtools/gem.py +0 -0
  54. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/packtools/keras_ig_helpers.py +0 -0
  55. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/packtools/project_attributions_helpers.py +0 -0
  56. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/packtools/template_model.py +0 -0
  57. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/__init__.py +0 -0
  58. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/alert_record.py +0 -0
  59. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/alert_rule.py +0 -0
  60. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/base.py +0 -0
  61. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/baseline.py +0 -0
  62. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/custom_expression.py +0 -0
  63. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/dataset.py +0 -0
  64. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/events.py +0 -0
  65. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/file.py +0 -0
  66. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/filter_query.py +0 -0
  67. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/job.py +0 -0
  68. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/model.py +0 -0
  69. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/model_deployment.py +0 -0
  70. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/model_schema.py +0 -0
  71. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/model_spec.py +0 -0
  72. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/model_task_params.py +0 -0
  73. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/organization.py +0 -0
  74. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/project.py +0 -0
  75. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/response.py +0 -0
  76. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/server_info.py +0 -0
  77. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/user.py +0 -0
  78. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/webhook.py +0 -0
  79. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/xai.py +0 -0
  80. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/schemas/xai_params.py +0 -0
  81. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/__init__.py +0 -0
  82. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/__init__.py +0 -0
  83. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_alert_record.py +0 -0
  84. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_alert_rule.py +0 -0
  85. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_baseline.py +0 -0
  86. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_custom_metric.py +0 -0
  87. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_dataset.py +0 -0
  88. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_files.py +0 -0
  89. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_generate_model.py +0 -0
  90. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_job.py +0 -0
  91. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_mixin.py +0 -0
  92. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_model.py +0 -0
  93. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_model_artifact.py +0 -0
  94. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_model_deployment.py +0 -0
  95. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_model_surrogate.py +0 -0
  96. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_project.py +0 -0
  97. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_segment.py +0 -0
  98. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_webhook.py +0 -0
  99. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/apis/test_xai.py +0 -0
  100. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/conftest.py +0 -0
  101. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/constants.py +0 -0
  102. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/test_connection.py +0 -0
  103. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/test_json_encoder.py +0 -0
  104. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/test_logger.py +0 -0
  105. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/test_utils.py +0 -0
  106. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/tests/utils.py +0 -0
  107. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/__init__.py +0 -0
  108. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/helpers.py +0 -0
  109. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/logger.py +0 -0
  110. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/model_generator.py +0 -0
  111. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/validations.py +0 -0
  112. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/utils/version.py +0 -0
  113. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler/version.py +0 -0
  114. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler_client.egg-info/SOURCES.txt +0 -0
  115. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler_client.egg-info/dependency_links.txt +0 -0
  116. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler_client.egg-info/requires.txt +0 -0
  117. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/fiddler_client.egg-info/top_level.txt +0 -0
  118. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/setup.cfg +0 -0
  119. {fiddler-client-3.0.0.dev12 → fiddler-client-3.0.0.dev14}/setup.py +0 -0
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: fiddler-client
3
+ Version: 3.0.0.dev14
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.0.0.dev14
@@ -1,11 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import tempfile
3
4
  from pathlib import Path
4
- from typing import Any, Iterator
5
+ from typing import Any
5
6
  from uuid import UUID
6
7
 
7
8
  import pandas as pd
8
9
  from requests import Response
10
+ from tqdm import tqdm
9
11
 
10
12
  from fiddler.configs import STREAM_EVENT_LIMIT
11
13
  from fiddler.connection import ConnectionMixin
@@ -28,21 +30,6 @@ class EventPublisher(ConnectionMixin):
28
30
  """
29
31
  self.model_id = model_id
30
32
 
31
- def _get_stream_chunks(
32
- self, source: pd.DataFrame | list[dict[str, Any]]
33
- ) -> Iterator[list[dict[str, Any]]]:
34
- """Chunk the source based on stream limit"""
35
-
36
- for i in range(0, len(source), self.STREAM_LIMIT):
37
- chunk = source[i : i + self.STREAM_LIMIT]
38
-
39
- if isinstance(chunk, pd.DataFrame):
40
- events = chunk.to_dict('records')
41
- else:
42
- events = chunk
43
-
44
- yield events
45
-
46
33
  @handle_api_error
47
34
  def publish(
48
35
  self,
@@ -56,13 +43,13 @@ class EventPublisher(ConnectionMixin):
56
43
 
57
44
  :param source: one of:
58
45
  Path or str path: path for data file.
59
- list[dict]: list of event dicts (max 1000) EnvType.PRE_PRODUCTION is not supported
60
- dataframe: events dataframe. EnvType.PRE_PRODUCTION not supported.
46
+ dataframe: events dataframe.
47
+ list[dict]: list of event dicts EnvType.PRE_PRODUCTION is not supported
61
48
  :param environment: Either EnvType.PRE_PRODUCTION or EnvType.PRODUCTION
62
49
  :param dataset_name: Name of the dataset. Not supported for EnvType.PRODUCTION
63
50
  :param update: flag indicating if the events are updates to previously published rows
64
51
 
65
- :return: list[UUID] for list of dicts or dataframe source and Job object for file path source.
52
+ :return: list[UUID] for list of dicts source and Job object for file path or dataframe source.
66
53
  """
67
54
  if isinstance(source, (str, Path)):
68
55
  return self._publish_file(
@@ -72,20 +59,30 @@ class EventPublisher(ConnectionMixin):
72
59
  update=update,
73
60
  )
74
61
 
75
- if isinstance(source, (list, pd.DataFrame)):
62
+ if isinstance(source, pd.DataFrame):
63
+ with tempfile.NamedTemporaryFile(suffix='.csv') as temp_file:
64
+ source.to_csv(temp_file.name, index=False)
65
+ return self._publish_file(
66
+ source=temp_file.name,
67
+ environment=environment,
68
+ dataset_name=dataset_name,
69
+ update=update,
70
+ )
71
+
72
+ elif isinstance(source, list):
76
73
  return self._publish_stream(source=source, update=update)
77
74
 
78
75
  raise ValueError(f'Unsupported source - {type(source)}')
79
76
 
80
77
  def _publish_stream(
81
78
  self,
82
- source: list[dict[str, Any]] | pd.DataFrame,
79
+ source: list[dict[str, Any]],
83
80
  update: bool = False,
84
81
  ) -> list[UUID]:
85
82
  event_ids = []
86
- for events in self._get_stream_chunks(source=source):
83
+ for i in tqdm(range(0, len(source), self.STREAM_LIMIT)):
87
84
  response = self._publish_call(
88
- source=EventsSource(events=events),
85
+ source=EventsSource(events=source[i : i + self.STREAM_LIMIT]),
89
86
  environment=EnvType.PRODUCTION,
90
87
  dataset_name=None,
91
88
  update=update,
@@ -94,6 +94,7 @@ class VectorFeature(CustomFeature):
94
94
  class TextEmbedding(VectorFeature):
95
95
  type: CustomFeatureType = CustomFeatureType.FROM_TEXT_EMBEDDING
96
96
  n_tags: Optional[int] = DEFAULT_NUM_TAGS
97
+ tf_idf: Optional[Dict[str, List]] = None
97
98
 
98
99
  @validator('source_column')
99
100
  def validate_source_column(cls, value: str) -> str: # noqa: N805
@@ -100,52 +100,74 @@ def test_publish_file() -> None:
100
100
 
101
101
 
102
102
  @responses.activate
103
- def test_publish_stream() -> None:
103
+ def test_publish_df() -> None:
104
104
  responses.get(
105
105
  url=f'{URL}/v3/models/{MODEL_ID}',
106
106
  json=MODEL_API_RESPONSE_200,
107
107
  )
108
108
  model = Model.get(id_=MODEL_ID)
109
109
 
110
+ responses.post(
111
+ url=f'{URL}/v3/files/upload',
112
+ json=SINGLE_UPLOAD_200_RESPONSE,
113
+ )
114
+ responses.get(
115
+ url=f'{URL}/v3/jobs/{JOB_ID}',
116
+ json=PUBLISH_JOB_RESPONSE,
117
+ )
118
+
110
119
  responses.post(
111
120
  url=f'{URL}/v3/events',
112
- json=STREAM_PUBLISH_202_API_RESPONSE,
121
+ json=FILE_PUBLISH_202_API_RESPONSE,
113
122
  )
114
123
  publish_response = model.publish(
115
- source=df,
116
- environment=EnvType.PRODUCTION,
124
+ source=df, environment=EnvType.PRE_PRODUCTION, dataset_name='dataset_1'
117
125
  )
118
126
 
119
- assert isinstance(publish_response, list)
120
- assert len(publish_response) == df.shape[0]
127
+ assert isinstance(publish_response, Job)
128
+
129
+ FILE_PUBLISH_202_API_RESPONSE['data']['job']['name'] = 'Publish events'
121
130
 
122
131
  publish_response = model.publish(
123
- source=df.to_dict('records'),
132
+ source=df,
124
133
  environment=EnvType.PRODUCTION,
125
134
  )
126
135
 
127
- assert isinstance(publish_response, list)
128
- assert len(publish_response) == df.shape[0]
136
+ assert isinstance(publish_response, Job)
137
+
138
+ FILE_PUBLISH_202_API_RESPONSE['data']['job']['name'] = 'Publish events'
129
139
 
130
140
 
131
141
  @responses.activate
132
- def test_publish_update() -> None:
142
+ def test_publish_stream() -> None:
133
143
  responses.get(
134
144
  url=f'{URL}/v3/models/{MODEL_ID}',
135
145
  json=MODEL_API_RESPONSE_200,
136
146
  )
137
147
  model = Model.get(id_=MODEL_ID)
138
148
 
139
- responses.patch(
149
+ responses.post(
140
150
  url=f'{URL}/v3/events',
141
151
  json=STREAM_PUBLISH_202_API_RESPONSE,
142
152
  )
153
+
143
154
  publish_response = model.publish(
144
- source=df, environment=EnvType.PRODUCTION, update=True
155
+ source=df.to_dict('records'),
156
+ environment=EnvType.PRODUCTION,
145
157
  )
158
+
146
159
  assert isinstance(publish_response, list)
147
160
  assert len(publish_response) == df.shape[0]
148
161
 
162
+
163
+ @responses.activate
164
+ def test_publish_update() -> None:
165
+ responses.get(
166
+ url=f'{URL}/v3/models/{MODEL_ID}',
167
+ json=MODEL_API_RESPONSE_200,
168
+ )
169
+ model = Model.get(id_=MODEL_ID)
170
+
149
171
  responses.post(
150
172
  url=f'{URL}/v3/files/upload',
151
173
  json=SINGLE_UPLOAD_200_RESPONSE,
@@ -167,3 +189,8 @@ def test_publish_update() -> None:
167
189
  )
168
190
 
169
191
  assert isinstance(publish_response, Job)
192
+
193
+ publish_response = model.publish(
194
+ source=df, environment=EnvType.PRODUCTION, update=True
195
+ )
196
+ assert isinstance(publish_response, Job)
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: fiddler-client
3
+ Version: 3.0.0.dev14
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).