brynq-sdk-sharepoint 2.0.1__tar.gz → 3.0.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_sharepoint
3
- Version: 2.0.1
3
+ Version: 3.0.0
4
4
  Summary: Sharepoint wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -1,6 +1,6 @@
1
1
  from brynq_sdk_brynq import BrynQ
2
2
  import os
3
- from typing import List, Union
3
+ from typing import List, Union, Literal, Optional
4
4
  import requests
5
5
  import json
6
6
  from io import BytesIO
@@ -8,7 +8,7 @@ import typing
8
8
 
9
9
 
10
10
  class Sharepoint(BrynQ):
11
- def __init__(self, label: Union[str, List], site: str = None, site_id: str = None, json_subset: int = None, site_name: str = None, debug: bool = False):
11
+ def __init__(self, system_type: Optional[Literal['source', 'target']] = None, site: str = None, site_id: str = None, json_subset: int = None, site_name: str = None, debug: bool = False):
12
12
  """
13
13
  :param label: label of the sharepoint system in BrynQ
14
14
  :param site: base url of the sharepoint site
@@ -17,12 +17,14 @@ class Sharepoint(BrynQ):
17
17
  :param debug: set to True to enable debug logging
18
18
  """
19
19
  super().__init__()
20
- credentials = self.get_system_credential(system='sharepoint', label=label)
20
+ self.system_type = system_type
21
+ credentials = self.interfaces.credentials.get(system="sharepoint", system_type=system_type)
22
+ credentials = credentials.get('data')
21
23
  self.debug = debug
24
+ self.timeout = 3600
22
25
  if self.debug:
23
26
  print(f"credentials: {credentials}")
24
- self.access_token = credentials['auth']['access_token']
25
- self.brynq_system_id = credentials['id']
27
+ self.access_token = credentials['access_token']
26
28
  if site_name is not None:
27
29
  self.json_subset = 0 if json_subset is None else json_subset
28
30
  self.site_id = self.get_site_id(site_name=site_name)
@@ -32,11 +34,16 @@ class Sharepoint(BrynQ):
32
34
  else:
33
35
  raise KeyError('Either site_name or site_id, site and json_subset must be provided')
34
36
  if self.debug:
35
- print(f"site_id: {self.site_id}, json_subset: {self.json_subset}, credentials: {credentials}, brynq_system_id: {self.brynq_system_id}")
37
+ print(f"site_id: {self.site_id}, json_subset: {self.json_subset}, credentials: {credentials}")
38
+
39
+ def _refresh_credentials(self):
40
+ credentials = self.interfaces.credentials.get(system="sharepoint", system_type=self.system_type)
41
+ credentials = credentials.get('data')
42
+ self.access_token = credentials['access_token']
36
43
 
37
44
  def _get_sharepoint_headers(self):
38
- access_token = self.refresh_system_credential(system='sharepoint', system_id=self.brynq_system_id)['access_token']
39
- headers = {'Authorization': f'Bearer {access_token}'}
45
+ self._refresh_credentials()
46
+ headers = {'Authorization': f'Bearer {self.access_token}'}
40
47
  if self.debug:
41
48
  print(headers)
42
49
 
@@ -51,7 +58,7 @@ class Sharepoint(BrynQ):
51
58
  url = f'https://graph.microsoft.com/v1.0/sites?search={site_name}'
52
59
  if self.debug:
53
60
  print(f"url: {url}")
54
- response = requests.get(url=url, headers=self._get_sharepoint_headers())
61
+ response = requests.get(url=url, headers=self._get_sharepoint_headers(), timeout=self.timeout)
55
62
  response.raise_for_status()
56
63
  site_id = response.json()['value'][0]['id']
57
64
  if self.debug:
@@ -67,7 +74,7 @@ class Sharepoint(BrynQ):
67
74
  url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives'
68
75
  if self.debug:
69
76
  print(f"url: {url}")
70
- response = requests.get(url, headers=self._get_sharepoint_headers())
77
+ response = requests.get(url, headers=self._get_sharepoint_headers(), timeout=self.timeout)
71
78
  response.raise_for_status()
72
79
  drive_id = response.json()['value'][self.json_subset]['id']
73
80
  if self.debug:
@@ -86,7 +93,7 @@ class Sharepoint(BrynQ):
86
93
  if self.debug:
87
94
  print(f"url: {url}")
88
95
  headers = self._get_sharepoint_headers()
89
- response = requests.post(url, headers=headers)
96
+ response = requests.post(url, headers=headers, timeout=self.timeout)
90
97
  response.raise_for_status()
91
98
  upload_url = response.json()['uploadUrl']
92
99
  if self.debug:
@@ -96,7 +103,7 @@ class Sharepoint(BrynQ):
96
103
  headers_upload = {'Content-Type': 'application/json',
97
104
  'Content-Length': f'{file_bytes}',
98
105
  'Content-Range': f'bytes 0-{file_bytes - 1}/{file_bytes}'}
99
- response_upload = requests.put(url=upload_url, headers=headers_upload, data=file_input)
106
+ response_upload = requests.put(url=upload_url, headers=headers_upload, data=file_input, timeout=self.timeout)
100
107
  response_upload.raise_for_status()
101
108
 
102
109
  return response_upload
@@ -112,12 +119,12 @@ class Sharepoint(BrynQ):
112
119
  if self.debug:
113
120
  print(f"url: {url}")
114
121
  headers = self._get_sharepoint_headers()
115
- response = requests.get(url=url, headers=headers)
122
+ response = requests.get(url=url, headers=headers, timeout=self.timeout)
116
123
  response.raise_for_status()
117
124
  download_url = response.json()['@microsoft.graph.downloadUrl']
118
125
  if self.debug:
119
126
  print(f"download_url: {download_url}")
120
- response_download = requests.get(url=download_url, headers=headers)
127
+ response_download = requests.get(url=download_url, headers=headers, timeout=self.timeout)
121
128
  response_download.raise_for_status()
122
129
 
123
130
  return response_download.content
@@ -131,10 +138,10 @@ class Sharepoint(BrynQ):
131
138
  driveid = self.get_driveid()
132
139
  url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{driveid}/root:/{remote_file_path}'
133
140
  headers = self._get_sharepoint_headers()
134
- response = requests.get(url=url, headers=headers)
141
+ response = requests.get(url=url, headers=headers, timeout=self.timeout)
135
142
  response.raise_for_status()
136
143
  download_url = response.json()['@microsoft.graph.downloadUrl']
137
- response_download = requests.get(url=download_url, headers=headers)
144
+ response_download = requests.get(url=download_url, headers=headers, timeout=self.timeout)
138
145
  response_download.raise_for_status()
139
146
  with open(file=f'{local_file_path}', mode='wb') as f:
140
147
  f.write(BytesIO(response_download.content).read())
@@ -161,10 +168,10 @@ class Sharepoint(BrynQ):
161
168
  if self.debug:
162
169
  print(f"url: {url}")
163
170
  headers = self._get_sharepoint_headers()
164
- response = requests.get(url=url, headers=headers)
171
+ response = requests.get(url=url, headers=headers, timeout=self.timeout)
165
172
  response.raise_for_status()
166
173
  download_url = response.json()['@microsoft.graph.downloadUrl']
167
- response_download = requests.get(url=download_url, headers=headers)
174
+ response_download = requests.get(url=download_url, headers=headers, timeout=self.timeout)
168
175
  with open(file=f'{local_folder_path}{file["name"]}', mode='wb') as f:
169
176
  f.write(BytesIO(response_download.content).read())
170
177
  filecount += 1
@@ -211,7 +218,7 @@ class Sharepoint(BrynQ):
211
218
  url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_file_path}'
212
219
  if self.debug:
213
220
  print(f"url: {url}")
214
- response = requests.delete(url=url, headers=self._get_sharepoint_headers())
221
+ response = requests.delete(url=url, headers=self._get_sharepoint_headers(), timeout=self.timeout)
215
222
  response.raise_for_status()
216
223
 
217
224
  return response
@@ -228,7 +235,7 @@ class Sharepoint(BrynQ):
228
235
  url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_folder_path}{file["name"]}'
229
236
  if self.debug:
230
237
  print(f"url: {url}")
231
- response = requests.delete(url=url, headers=self._get_sharepoint_headers())
238
+ response = requests.delete(url=url, headers=self._get_sharepoint_headers(), timeout=self.timeout)
232
239
  response.raise_for_status()
233
240
  responses.append(response)
234
241
 
@@ -243,7 +250,7 @@ class Sharepoint(BrynQ):
243
250
  url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/items/{folder_id}'
244
251
  if self.debug:
245
252
  print(f"url: {url}")
246
- response = requests.delete(url=url, headers=self._get_sharepoint_headers())
253
+ response = requests.delete(url=url, headers=self._get_sharepoint_headers(), timeout=self.timeout)
247
254
  response.raise_for_status()
248
255
 
249
256
  return response
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-sharepoint
3
- Version: 2.0.1
3
+ Version: 3.0.0
4
4
  Summary: Sharepoint wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -0,0 +1,2 @@
1
+ brynq-sdk-brynq<5,>=4
2
+ requests<=3,>=2
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
 
3
3
  setup(
4
4
  name='brynq_sdk_sharepoint',
5
- version='2.0.1',
5
+ version='3.0.0',
6
6
  description='Sharepoint wrapper from BrynQ',
7
7
  long_description='Sharepoint wrapper from BrynQ',
8
8
  author='BrynQ',
@@ -10,7 +10,7 @@ setup(
10
10
  packages=find_namespace_packages(include=['brynq_sdk*']),
11
11
  license='BrynQ License',
12
12
  install_requires=[
13
- 'brynq-sdk-brynq>=2',
13
+ 'brynq-sdk-brynq>=4,<5',
14
14
  'requests>=2,<=3'
15
15
  ],
16
16
  zip_safe=False,
@@ -1,2 +0,0 @@
1
- brynq-sdk-brynq>=2
2
- requests<=3,>=2