fiddler-client 3.0.0.dev4__py3-none-any.whl → 3.0.0.dev5__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.dev4
1
+ 3.0.0.dev5
@@ -11,5 +11,4 @@ CONTENT_TYPE_OCTET_STREAM = 'application/octet-stream'
11
11
  CONTENT_TYPE_OCTET_STREAM_HEADER = {CONTENT_TYPE_HEADER_KEY: CONTENT_TYPE_OCTET_STREAM}
12
12
 
13
13
  # Multi-part upload
14
- MULTI_PART_UPLOAD_SIZE_THRESHOLD = 5 * 1024 * 1024 # 5MB in bytes
15
14
  MULTI_PART_CHUNK_SIZE = 100 * 1024 * 1024 # 100MB in bytes
fiddler/entities/file.py CHANGED
@@ -8,7 +8,6 @@ from typing import Any
8
8
  from uuid import UUID
9
9
 
10
10
  from requests import Response
11
- from requests_toolbelt import MultipartEncoder
12
11
 
13
12
  from fiddler.constants.common import MULTI_PART_CHUNK_SIZE
14
13
  from fiddler.decorators import handle_api_error
@@ -74,14 +73,12 @@ class File(BaseEntity, CreatedByMixin, UpdatedByMixin):
74
73
  @handle_api_error
75
74
  def single_upload(self) -> File:
76
75
  """Single part file upload"""
77
- with open(self.path, 'rb') as f:
78
- multipart_data = MultipartEncoder(fields={'file': (self.name, f)})
79
76
 
80
- response = self._client().post(
81
- url='/v3/files/upload',
82
- data=multipart_data,
83
- headers={'Content-Type': multipart_data.content_type},
84
- )
77
+ response = self._client().post(
78
+ url='/v3/files/upload',
79
+ files={'file': (self.name, open(self.path, 'rb'))},
80
+ headers={'Content-Type': None},
81
+ )
85
82
 
86
83
  self._refresh_from_response(response)
87
84
  return self
@@ -58,25 +58,22 @@ class ModelArtifact(ConnectionMixin):
58
58
  self.model_id,
59
59
  model_dir,
60
60
  )
61
- tar_file_base_name = Path(tmp) / 'model'
62
- tar_file_path = f'{str(tar_file_base_name)}.tar.gz'
63
-
64
- _file_path = shutil.make_archive(
65
- base_name=str(tar_file_base_name),
66
- format='tar',
67
- root_dir=model_dir,
61
+ file_path = shutil.make_archive(
62
+ base_name=str(Path(tmp) / 'files'),
63
+ format='gztar',
64
+ root_dir=str(model_dir),
68
65
  base_dir='.',
69
66
  )
70
- os.rename(src=_file_path, dst=tar_file_path)
71
67
 
72
68
  logger.info(
73
- 'Model[%s] - Model artifact tar file created at %s',
69
+ 'Model[%s] - Model artifact tar file created at %s - %d bytes',
74
70
  self.model_id,
75
- tar_file_path,
71
+ file_path,
72
+ os.path.getsize(file_path),
76
73
  )
77
74
 
78
75
  # Upload file
79
- file = File(path=tar_file_path).upload()
76
+ file = File(path=file_path).upload()
80
77
 
81
78
  # Deploy artifact
82
79
  assert file.id is not None
@@ -7,7 +7,6 @@ from urllib.parse import urljoin
7
7
  import requests
8
8
  import simplejson
9
9
  from requests.adapters import HTTPAdapter
10
- from requests_toolbelt.multipart.encoder import MultipartEncoder
11
10
 
12
11
  from fiddler.constants.common import JSON_CONTENT_TYPE
13
12
  from fiddler.exceptions import ( # pylint: disable=redefined-builtin
@@ -51,7 +50,6 @@ class RequestClient:
51
50
  headers: dict | None = None,
52
51
  data: dict | bytes | None = None,
53
52
  timeout: int | None = None,
54
- files_encoders: dict[str, MultipartEncoder] | None = None,
55
53
  **kwargs: Any,
56
54
  ) -> requests.Response:
57
55
  """
@@ -63,9 +61,6 @@ class RequestClient:
63
61
  :param headers: Request headers
64
62
  :param data: Dict/binary data
65
63
  :param timeout: Request timeout in seconds
66
- :param files_encoders: Dictionary of 'filename': file-like-objects
67
- for multipart encoding upload. Make sure all MultipartEncoder values have
68
- same content_type.
69
64
  """
70
65
  logger.debug('Making %s call to %s', method, url)
71
66
 
@@ -87,31 +82,16 @@ class RequestClient:
87
82
  # So setting that as default here
88
83
  kwargs.setdefault('verify', self.session.verify)
89
84
  try:
90
- if files_encoders:
91
- encoders = list(files_encoders.values())
92
- if encoders:
93
- request_headers['Content-Type'] = encoders[0].content_type
94
- response = self.session.request(
95
- method,
96
- full_url,
97
- params=params,
98
- files=files_encoders,
99
- headers=request_headers,
100
- timeout=timeout,
101
- proxies=self.proxies,
102
- **kwargs,
103
- )
104
- else:
105
- response = self.session.request(
106
- method,
107
- full_url,
108
- params=params,
109
- data=data,
110
- headers=request_headers,
111
- timeout=timeout,
112
- proxies=self.proxies,
113
- **kwargs,
114
- )
85
+ response = self.session.request(
86
+ method,
87
+ full_url,
88
+ params=params,
89
+ data=data,
90
+ headers=request_headers,
91
+ timeout=timeout,
92
+ proxies=self.proxies,
93
+ **kwargs,
94
+ )
115
95
 
116
96
  except requests.Timeout as exc:
117
97
  logger.error('%s call failed with Timeout error for URL %s', method, url)
@@ -173,7 +153,6 @@ class RequestClient:
173
153
  headers: dict | None = None,
174
154
  timeout: int | None = None,
175
155
  data: dict | bytes | None = None,
176
- files_encoders: dict[str, MultipartEncoder] | None = None,
177
156
  **kwargs: dict[str, Any],
178
157
  ) -> requests.Response:
179
158
  """Construct a post request instance."""
@@ -184,7 +163,6 @@ class RequestClient:
184
163
  headers=headers,
185
164
  timeout=timeout,
186
165
  data=data,
187
- files_encoders=files_encoders,
188
166
  **kwargs,
189
167
  )
190
168
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiddler-client
3
- Version: 3.0.0.dev4
3
+ Version: 3.0.0.dev5
4
4
  Summary: Python client for Fiddler Platform
5
5
  Home-page: https://fiddler.ai
6
6
  Author: Fiddler Labs
@@ -1,6 +1,5 @@
1
- fiddler/VERSION,sha256=VgDxBOh248Q0kqVJVmQ1SbmY6ukeyeEwRVuHHpFqauU,11
1
+ fiddler/VERSION,sha256=UQ3IJpH6gZGP-vWjehD7g68w-idDM4WCOAjN3EGl-xk,11
2
2
  fiddler/__init__.py,sha256=VCfPx51-NUioKq0OZSKmQTq0Qd20G088BcZt4CIzmG0,3378
3
- fiddler/_version.py,sha256=K7PSOxsEF8o1sOiOqRYXX-SPQRva9fUCeDPddjcVZAc,27
4
3
  fiddler/configs.py,sha256=s8nKw_2gCEKYk8dnmRxd92J8rCl08V4vPcH0xATT4Lw,258
5
4
  fiddler/connection.py,sha256=pYaOyyJytsljofaMyRPV-Vs_i4wHKO48BxIJMqEBxHg,5760
6
5
  fiddler/decorators.py,sha256=tWZliQQeUGwY0rU52FO9JXuOBueQXVEJywEbrgUEw1U,1820
@@ -9,7 +8,7 @@ fiddler/version.py,sha256=8fyg3UhFpqghMpxbtYIwNcB1lhCG6yTkPBbDS7IrwxY,140
9
8
  fiddler/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
9
  fiddler/constants/alert_rule.py,sha256=cmFq-VKAlQbRKEkTtMmVNdD5R52uMI2zJai6TESFwfs,512
11
10
  fiddler/constants/baseline.py,sha256=NhmiGf73gy2IHKKpbm64HCE4eJfbxkAPy3uk_Z-6qSo,321
12
- fiddler/constants/common.py,sha256=4C14p_Kdng3canYWDyT244ikhFH6jo8oAfoYkZaq5vw,610
11
+ fiddler/constants/common.py,sha256=pfUe_aA3GCDJcnXxOQXyv8TEBoHePbh8nJz0GTaSDCs,543
13
12
  fiddler/constants/dataset.py,sha256=ZxPmzycSlrKpUYShpfTDqfmz8LAebzyBtIV_dBy-pRI,126
14
13
  fiddler/constants/events.py,sha256=3SgjNo4IS-_Nod8wbj98di4B4GctF9R414MZxfQ4MkU,114
15
14
  fiddler/constants/job.py,sha256=tMT0vr3x3IiCTQcifP2s1-VWC5gskflKexfU_VfDIzA,233
@@ -24,10 +23,10 @@ fiddler/entities/baseline.py,sha256=1y2bFIapzlDSBd4EUfNy6e-Q8fm3t0AGAZTdiz97hXQ,
24
23
  fiddler/entities/custom_metric.py,sha256=Oxcnx-o1D4WowDIa5nclGDbw5eYwpemlIyhDhjyq0Ow,6802
25
24
  fiddler/entities/dataset.py,sha256=dmOWae2IxwoIbIRX62fCtjr6uNrht3mSuFw_QTnvZwI,4712
26
25
  fiddler/entities/events.py,sha256=usFxs8Cq0ds1MIrOjZT5jVt3XDXMdGYakOoNFnTFQ8Y,4370
27
- fiddler/entities/file.py,sha256=14DzU3Cs86IWEgXsfGggPlmsGBpiCsO8qareimc6p34,4846
26
+ fiddler/entities/file.py,sha256=U8IlMYl2iOdGwRWSCYmVbvFlx3rVJM-Xxr0soqLux0U,4667
28
27
  fiddler/entities/job.py,sha256=Feiqo6ns4bRcp2uaV-kuGYAKs90-aYXvzqqi1yLivYE,5220
29
28
  fiddler/entities/model.py,sha256=TiI-n6TfFP8gdML_kbrowBotFIsRqb2UmiClkyzXn3c,16499
30
- fiddler/entities/model_artifact.py,sha256=taVXg1gIy1mNpasteKclEDvmOomX7kp-N5tZBs-siQA,5635
29
+ fiddler/entities/model_artifact.py,sha256=ktyFkg-nUPtdpSUGNXHfLOwSMiBaaRkdU0s9DQ67lLs,5514
31
30
  fiddler/entities/model_deployment.py,sha256=JefFd7uUgPaxWhtVTJZqTMCLWz_18DM8o2zZmY_Hn6c,3757
32
31
  fiddler/entities/organization.py,sha256=XvUAdBUOYXzdmblxIs4hi0mAg45NtAwy5DBaMiqi47o,1074
33
32
  fiddler/entities/project.py,sha256=_ONa4srk6zrDl6o6-BznmjiINn7TDabYSsWxve7BZxw,4595
@@ -36,7 +35,7 @@ fiddler/entities/user.py,sha256=ev_Xx9QHAdEHYzNDafzQihXOcD8ME5XkpKgc8MiqCnw,1243
36
35
  fiddler/entities/webhook.py,sha256=I-mcl92Tg2-oUUqNMOeDPBe0XawVYhNcTGXHBway7_A,3798
37
36
  fiddler/entities/xai.py,sha256=t5LOOWRtr0KnNJHOPfdhrH1WdNT6MBpAZoQ8Teiu9a8,20232
38
37
  fiddler/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- fiddler/libs/http_client.py,sha256=NvENXPm5w713OH9l6yq_KcJmXm4N1AsetYRIHY4oNBQ,7072
38
+ fiddler/libs/http_client.py,sha256=bl2V-q66NoPHm950CiDqOoF-kCPztYWUYNy9hVUsbqg,6027
40
39
  fiddler/libs/json_encoder.py,sha256=brsrWySvtZdaBArIkqKM5WwJUbvZf6ZbKozn1CewjOc,512
41
40
  fiddler/libs/semver.py,sha256=3HbXG1S-ABIxL3E0FHSm5OR_YrhYtCB2Q3XJ8-tywts,15995
42
41
  fiddler/packtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -101,8 +100,8 @@ fiddler/utils/logger.py,sha256=FdJ3LkS9dbRjWsw5oJmNNsd7q0XRVEIvx5-TWys7L0k,669
101
100
  fiddler/utils/model_generator.py,sha256=TwQMQDpy-0gcq6HyL68s37N-sk_nGPq33mmppK6i7hI,2203
102
101
  fiddler/utils/validations.py,sha256=i8NtgrpCsitq6BPa5lygpKDh07oaOXu7PAlCIcMvqzY,408
103
102
  fiddler/utils/version.py,sha256=iC8Ry7UFl9EJW_xU1WbzO_l4yK6V7eQ6U5exB3xT864,531
104
- fiddler_client-3.0.0.dev4.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
105
- fiddler_client-3.0.0.dev4.dist-info/METADATA,sha256=r1pCGGOu-jLgVxJO3SoVM3ECy-J8qgoMUizqs0-JFWw,20679
106
- fiddler_client-3.0.0.dev4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
107
- fiddler_client-3.0.0.dev4.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
108
- fiddler_client-3.0.0.dev4.dist-info/RECORD,,
103
+ fiddler_client-3.0.0.dev5.dist-info/LICENSE.txt,sha256=w8-LUAb_VLBWSsCNmih0pAqLIicJfGu8OJXpDjkIg_o,559
104
+ fiddler_client-3.0.0.dev5.dist-info/METADATA,sha256=iyTcPoK3ebTms6F_Tmm3csGfUcmxgy-Ced_ASIAg4s4,20679
105
+ fiddler_client-3.0.0.dev5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
106
+ fiddler_client-3.0.0.dev5.dist-info/top_level.txt,sha256=ndC6LqvKmrTTs8czRlBOYdYgSqZbHuMf0zHt_HWpzzk,8
107
+ fiddler_client-3.0.0.dev5.dist-info/RECORD,,
fiddler/_version.py DELETED
@@ -1 +0,0 @@
1
- __version__ = '3.0.0.dev4'