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.
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/PKG-INFO +1 -1
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint/sharepoint.py +28 -21
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/PKG-INFO +1 -1
- brynq_sdk_sharepoint-3.0.0/brynq_sdk_sharepoint.egg-info/requires.txt +2 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/setup.py +2 -2
- brynq_sdk_sharepoint-2.0.1/brynq_sdk_sharepoint.egg-info/requires.txt +0 -2
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint/__init__.py +0 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/SOURCES.txt +0 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/dependency_links.txt +0 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/not-zip-safe +0 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/top_level.txt +0 -0
- {brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/setup.cfg +0 -0
{brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint/sharepoint.py
RENAMED
|
@@ -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,
|
|
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
|
-
|
|
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['
|
|
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}
|
|
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
|
-
|
|
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
|
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name='brynq_sdk_sharepoint',
|
|
5
|
-
version='
|
|
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>=
|
|
13
|
+
'brynq-sdk-brynq>=4,<5',
|
|
14
14
|
'requests>=2,<=3'
|
|
15
15
|
],
|
|
16
16
|
zip_safe=False,
|
|
File without changes
|
{brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_sharepoint-2.0.1 → brynq_sdk_sharepoint-3.0.0}/brynq_sdk_sharepoint.egg-info/not-zip-safe
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|