Ayon-Python-Api 0.1.4__tar.gz → 0.1.6__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.
- {ayon-python-api-0.1.4/ayon_python_api.egg-info → ayon-python-api-0.1.6}/PKG-INFO +1 -1
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/__init__.py +70 -3
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/server.py +239 -17
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/server_api.py +120 -10
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/version.py +1 -1
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6/ayon_python_api.egg-info}/PKG-INFO +1 -1
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/pyproject.toml +1 -1
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/setup.py +1 -1
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/LICENSE +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/README.md +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/constants.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/entity_hub.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/events.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/exceptions.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/graphql.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/graphql_queries.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/operations.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/thumbnails.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/utils.py +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/SOURCES.txt +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/dependency_links.txt +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/requires.txt +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/top_level.txt +0 -0
- {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/setup.cfg +0 -0
|
@@ -7,12 +7,47 @@ from .server_api import (
|
|
|
7
7
|
|
|
8
8
|
get_server_api_connection,
|
|
9
9
|
|
|
10
|
+
raw_get,
|
|
11
|
+
raw_post,
|
|
12
|
+
raw_put,
|
|
13
|
+
raw_patch,
|
|
14
|
+
raw_delete,
|
|
15
|
+
|
|
10
16
|
get,
|
|
11
17
|
post,
|
|
12
18
|
put,
|
|
13
19
|
patch,
|
|
14
20
|
delete,
|
|
15
21
|
|
|
22
|
+
download_file,
|
|
23
|
+
upload_file,
|
|
24
|
+
|
|
25
|
+
query_graphql,
|
|
26
|
+
|
|
27
|
+
get_addons_info,
|
|
28
|
+
|
|
29
|
+
get_dependencies_info,
|
|
30
|
+
update_dependency_info,
|
|
31
|
+
|
|
32
|
+
download_dependency_package,
|
|
33
|
+
upload_dependency_package,
|
|
34
|
+
delete_dependency_package,
|
|
35
|
+
|
|
36
|
+
get_full_production_settings,
|
|
37
|
+
get_production_settings,
|
|
38
|
+
get_full_project_settings,
|
|
39
|
+
get_project_settings,
|
|
40
|
+
get_addon_settings,
|
|
41
|
+
|
|
42
|
+
get_user,
|
|
43
|
+
get_users,
|
|
44
|
+
|
|
45
|
+
get_attributes_for_type,
|
|
46
|
+
get_default_fields_for_type,
|
|
47
|
+
|
|
48
|
+
get_project_anatomy_preset,
|
|
49
|
+
get_project_anatomy_presets,
|
|
50
|
+
|
|
16
51
|
get_projects,
|
|
17
52
|
get_project,
|
|
18
53
|
create_project,
|
|
@@ -47,9 +82,6 @@ from .server_api import (
|
|
|
47
82
|
get_representations_parents,
|
|
48
83
|
get_representation_parents,
|
|
49
84
|
|
|
50
|
-
get_project_settings,
|
|
51
|
-
get_addon_settings,
|
|
52
|
-
|
|
53
85
|
create_thumbnail,
|
|
54
86
|
get_thumbnail,
|
|
55
87
|
get_folder_thumbnail,
|
|
@@ -62,16 +94,50 @@ __all__ = (
|
|
|
62
94
|
"ServerAPIBase",
|
|
63
95
|
|
|
64
96
|
"ServerAPI",
|
|
97
|
+
|
|
65
98
|
"get_server_api_connection",
|
|
99
|
+
|
|
100
|
+
"raw_get",
|
|
101
|
+
"raw_post",
|
|
102
|
+
"raw_put",
|
|
103
|
+
"raw_patch",
|
|
104
|
+
"raw_delete",
|
|
105
|
+
|
|
66
106
|
"get",
|
|
67
107
|
"post",
|
|
68
108
|
"put",
|
|
69
109
|
"patch",
|
|
70
110
|
"delete",
|
|
71
111
|
|
|
112
|
+
"download_file",
|
|
113
|
+
"upload_file",
|
|
114
|
+
|
|
115
|
+
"query_graphql",
|
|
116
|
+
|
|
117
|
+
"get_addons_info",
|
|
118
|
+
|
|
119
|
+
"get_dependencies_info",
|
|
120
|
+
"update_dependency_info",
|
|
121
|
+
|
|
122
|
+
"download_dependency_package",
|
|
123
|
+
"upload_dependency_package",
|
|
124
|
+
"delete_dependency_package",
|
|
125
|
+
|
|
126
|
+
"get_full_production_settings",
|
|
127
|
+
"get_production_settings",
|
|
128
|
+
"get_full_project_settings",
|
|
72
129
|
"get_project_settings",
|
|
73
130
|
"get_addon_settings",
|
|
74
131
|
|
|
132
|
+
"get_user",
|
|
133
|
+
"get_users",
|
|
134
|
+
|
|
135
|
+
"get_attributes_for_type",
|
|
136
|
+
"get_default_fields_for_type",
|
|
137
|
+
|
|
138
|
+
"get_project_anatomy_preset",
|
|
139
|
+
"get_project_anatomy_presets",
|
|
140
|
+
|
|
75
141
|
"get_projects",
|
|
76
142
|
"get_project",
|
|
77
143
|
"create_project",
|
|
@@ -89,6 +155,7 @@ __all__ = (
|
|
|
89
155
|
"get_subset_by_name",
|
|
90
156
|
"get_subsets",
|
|
91
157
|
"get_subset_families",
|
|
158
|
+
|
|
92
159
|
"get_version_by_id",
|
|
93
160
|
"get_version_by_name",
|
|
94
161
|
"version_is_latest",
|
|
@@ -3,6 +3,7 @@ import re
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
import collections
|
|
6
|
+
import platform
|
|
6
7
|
import copy
|
|
7
8
|
from http import HTTPStatus
|
|
8
9
|
|
|
@@ -36,6 +37,7 @@ from .exceptions import (
|
|
|
36
37
|
UnauthorizedError,
|
|
37
38
|
AuthenticationError,
|
|
38
39
|
ServerNotReached,
|
|
40
|
+
ServerError,
|
|
39
41
|
)
|
|
40
42
|
from .utils import (
|
|
41
43
|
logout_from_server,
|
|
@@ -151,10 +153,21 @@ class ServerAPIBase(object):
|
|
|
151
153
|
Login cause that a session is used
|
|
152
154
|
|
|
153
155
|
Args:
|
|
154
|
-
base_url(str): Example: http://localhost:5000
|
|
156
|
+
base_url (str): Example: http://localhost:5000
|
|
157
|
+
token (str): Access token (api key) to server.
|
|
158
|
+
site_id (str): Unique name of site. Should be the same when
|
|
159
|
+
connection is created from the same machine under same user.
|
|
160
|
+
client_version (str): Version of client application (used in
|
|
161
|
+
desktop client application).
|
|
155
162
|
"""
|
|
156
163
|
|
|
157
|
-
def __init__(
|
|
164
|
+
def __init__(
|
|
165
|
+
self,
|
|
166
|
+
base_url,
|
|
167
|
+
token=None,
|
|
168
|
+
site_id=None,
|
|
169
|
+
client_version=None
|
|
170
|
+
):
|
|
158
171
|
if not base_url:
|
|
159
172
|
raise ValueError("Invalid server URL {}".format(str(base_url)))
|
|
160
173
|
|
|
@@ -164,6 +177,8 @@ class ServerAPIBase(object):
|
|
|
164
177
|
self._graphl_url = "{}/graphql".format(base_url)
|
|
165
178
|
self._log = None
|
|
166
179
|
self._access_token = token
|
|
180
|
+
self._site_id = site_id
|
|
181
|
+
self._client_version = client_version
|
|
167
182
|
self._access_token_is_service = None
|
|
168
183
|
self._token_is_valid = None
|
|
169
184
|
self._server_available = None
|
|
@@ -189,6 +204,20 @@ class ServerAPIBase(object):
|
|
|
189
204
|
def access_token(self):
|
|
190
205
|
return self._access_token
|
|
191
206
|
|
|
207
|
+
def get_site_id(self):
|
|
208
|
+
return self._site_id
|
|
209
|
+
|
|
210
|
+
def set_site_id(self, site_id):
|
|
211
|
+
if self._site_id == site_id:
|
|
212
|
+
return
|
|
213
|
+
self._site_id = site_id
|
|
214
|
+
# Recreate session on machine id change
|
|
215
|
+
if self._session is not None:
|
|
216
|
+
self.close_session()
|
|
217
|
+
self.create_session()
|
|
218
|
+
|
|
219
|
+
site_id = property(get_site_id, set_site_id)
|
|
220
|
+
|
|
192
221
|
@property
|
|
193
222
|
def is_server_available(self):
|
|
194
223
|
if self._server_available is None:
|
|
@@ -213,7 +242,11 @@ class ServerAPIBase(object):
|
|
|
213
242
|
|
|
214
243
|
def validate_token(self):
|
|
215
244
|
try:
|
|
216
|
-
|
|
245
|
+
# TODO add other possible validations
|
|
246
|
+
# - existence of 'user' key in info
|
|
247
|
+
# - validate that 'site_id' is in 'sites' in info
|
|
248
|
+
self.get_info()
|
|
249
|
+
self.get_user()
|
|
217
250
|
self._token_is_valid = True
|
|
218
251
|
|
|
219
252
|
except UnauthorizedError:
|
|
@@ -223,7 +256,7 @@ class ServerAPIBase(object):
|
|
|
223
256
|
def set_token(self, token):
|
|
224
257
|
self.reset_token()
|
|
225
258
|
self._access_token = token
|
|
226
|
-
self.
|
|
259
|
+
self.get_user()
|
|
227
260
|
|
|
228
261
|
def reset_token(self):
|
|
229
262
|
self._access_token = None
|
|
@@ -258,6 +291,23 @@ class ServerAPIBase(object):
|
|
|
258
291
|
self._session_functions_mapping = {}
|
|
259
292
|
session.close()
|
|
260
293
|
|
|
294
|
+
def get_info(self):
|
|
295
|
+
"""Get information about current used api key.
|
|
296
|
+
|
|
297
|
+
By default, the 'info' contains only 'uptime' and 'version'. With
|
|
298
|
+
logged user info also contains information about user and machines on
|
|
299
|
+
which was logged in.
|
|
300
|
+
|
|
301
|
+
Todos:
|
|
302
|
+
Use this method for validation of token instead of 'get_user'.
|
|
303
|
+
|
|
304
|
+
Returns:
|
|
305
|
+
Dict[str, Any]: Information from server.
|
|
306
|
+
"""
|
|
307
|
+
|
|
308
|
+
response = self.get("info")
|
|
309
|
+
return response.data
|
|
310
|
+
|
|
261
311
|
def _get_user_info(self):
|
|
262
312
|
if self._access_token is None:
|
|
263
313
|
return None
|
|
@@ -279,11 +329,23 @@ class ServerAPIBase(object):
|
|
|
279
329
|
self._access_token_is_service = None
|
|
280
330
|
return None
|
|
281
331
|
|
|
282
|
-
def
|
|
283
|
-
|
|
284
|
-
|
|
332
|
+
def get_users(self):
|
|
333
|
+
# TODO how to find out if user have permission?
|
|
334
|
+
users = self.get("users")
|
|
335
|
+
return users.data
|
|
336
|
+
|
|
337
|
+
def get_user(self, username=None):
|
|
338
|
+
output = None
|
|
339
|
+
if username is None:
|
|
340
|
+
output = self._get_user_info()
|
|
341
|
+
else:
|
|
342
|
+
response = self.get("users/{}".format(username))
|
|
343
|
+
if response.status == 200:
|
|
344
|
+
output = response.data
|
|
345
|
+
|
|
346
|
+
if output is None:
|
|
285
347
|
raise UnauthorizedError("User is not authorized.")
|
|
286
|
-
return
|
|
348
|
+
return output
|
|
287
349
|
|
|
288
350
|
@property
|
|
289
351
|
def log(self):
|
|
@@ -294,7 +356,18 @@ class ServerAPIBase(object):
|
|
|
294
356
|
def get_headers(self, content_type=None):
|
|
295
357
|
if content_type is None:
|
|
296
358
|
content_type = "application/json"
|
|
297
|
-
|
|
359
|
+
|
|
360
|
+
headers = {
|
|
361
|
+
"Content-Type": content_type,
|
|
362
|
+
"x-ayon-platform": platform.system().lower(),
|
|
363
|
+
"x-ayon-hostname": platform.node(),
|
|
364
|
+
}
|
|
365
|
+
if self._site_id is not None:
|
|
366
|
+
headers["x-ayon-site-id"] = self._site_id
|
|
367
|
+
|
|
368
|
+
if self._client_version is not None:
|
|
369
|
+
headers["x-ayon-version"] = self._client_version
|
|
370
|
+
|
|
298
371
|
if self._access_token:
|
|
299
372
|
if self._access_token_is_service:
|
|
300
373
|
headers["X-Api-Key"] = self._access_token
|
|
@@ -306,7 +379,7 @@ class ServerAPIBase(object):
|
|
|
306
379
|
def login(self, username, password):
|
|
307
380
|
if self.has_valid_token:
|
|
308
381
|
try:
|
|
309
|
-
user_info = self.
|
|
382
|
+
user_info = self.get_user()
|
|
310
383
|
except UnauthorizedError:
|
|
311
384
|
user_info = {}
|
|
312
385
|
|
|
@@ -471,6 +544,23 @@ class ServerAPIBase(object):
|
|
|
471
544
|
def delete(self, entrypoint, **kwargs):
|
|
472
545
|
return self.raw_delete(entrypoint, params=kwargs)
|
|
473
546
|
|
|
547
|
+
def download_file(self, endpoint, filepath, chunk_size=None):
|
|
548
|
+
if not chunk_size:
|
|
549
|
+
# 1 MB chunk by default
|
|
550
|
+
chunk_size = 1024 * 1024
|
|
551
|
+
dst_directory = os.path.dirname(filepath)
|
|
552
|
+
if not os.path.exists(dst_directory):
|
|
553
|
+
os.makedirs(dst_directory)
|
|
554
|
+
|
|
555
|
+
with open(filepath, "wb") as f_stream:
|
|
556
|
+
with self.raw_get(endpoint, stream=True) as response:
|
|
557
|
+
for chunk in response.iter_content(chunk_size=chunk_size):
|
|
558
|
+
f_stream.write(chunk)
|
|
559
|
+
|
|
560
|
+
def upload_file(self, endpoint, filepath):
|
|
561
|
+
with open(filepath, "rb") as stream:
|
|
562
|
+
self.raw_post(endpoint, data=stream)
|
|
563
|
+
|
|
474
564
|
def trigger_server_restart(self):
|
|
475
565
|
result = self.post("system/restart")
|
|
476
566
|
if result.status_code != 204:
|
|
@@ -673,6 +763,118 @@ class ServerAPIBase(object):
|
|
|
673
763
|
}
|
|
674
764
|
)
|
|
675
765
|
|
|
766
|
+
def get_addons_info(self, details=True):
|
|
767
|
+
"""Get information about addons available on server.
|
|
768
|
+
|
|
769
|
+
Args:
|
|
770
|
+
details (bool): Detailed data with information how to get client
|
|
771
|
+
code.
|
|
772
|
+
"""
|
|
773
|
+
|
|
774
|
+
endpoint = "addons"
|
|
775
|
+
if details:
|
|
776
|
+
endpoint += "?details=1"
|
|
777
|
+
response = self.get(endpoint)
|
|
778
|
+
if response.status != 200:
|
|
779
|
+
raise ServerError(response.text)
|
|
780
|
+
return response.data
|
|
781
|
+
|
|
782
|
+
def get_dependencies_info(self):
|
|
783
|
+
result = self.get("dependencies")
|
|
784
|
+
return result.data
|
|
785
|
+
|
|
786
|
+
def update_dependency_info(
|
|
787
|
+
self,
|
|
788
|
+
name,
|
|
789
|
+
platform_name,
|
|
790
|
+
size,
|
|
791
|
+
checksum,
|
|
792
|
+
checksum_algorithm=None,
|
|
793
|
+
supported_addons=None,
|
|
794
|
+
python_modules=None,
|
|
795
|
+
sources=None
|
|
796
|
+
):
|
|
797
|
+
"""Update or create dependency package infor by it's identifiers.
|
|
798
|
+
|
|
799
|
+
The endpoint can be used to create or update dependency package.
|
|
800
|
+
|
|
801
|
+
Args:
|
|
802
|
+
name (str): Name of dependency package.
|
|
803
|
+
platform_name (Literal["windows", "linux", "darwin"]): Platform for
|
|
804
|
+
which is dependency package targeted.
|
|
805
|
+
size (int): Size of dependency package in bytes.
|
|
806
|
+
checksum (str): Checksum of archive file where dependecies are.
|
|
807
|
+
checksum_algorithm (str): Algorithm used to calculate checksum.
|
|
808
|
+
By default, is used 'md5' (defined by server).
|
|
809
|
+
supported_addons (Dict[str, str]): Name of addons for which was the
|
|
810
|
+
package created ('{"<addon name>": "<addon version>", ...}').
|
|
811
|
+
python_modules (Dict[str, str]): Python modules in dependencies
|
|
812
|
+
package ('{"<module name>": "<module version>", ...}').
|
|
813
|
+
sources (List[Dict[str, Any]]): Information about sources where
|
|
814
|
+
dependency package is available.
|
|
815
|
+
"""
|
|
816
|
+
|
|
817
|
+
kwargs = {
|
|
818
|
+
key: value
|
|
819
|
+
for key, value in (
|
|
820
|
+
("checksumAlgorithm", checksum_algorithm),
|
|
821
|
+
("supportedAddons", supported_addons),
|
|
822
|
+
("pythonModules", python_modules),
|
|
823
|
+
("sources", sources),
|
|
824
|
+
)
|
|
825
|
+
if value
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
response = self.put(
|
|
829
|
+
"dependencies",
|
|
830
|
+
name=name,
|
|
831
|
+
platform=platform_name,
|
|
832
|
+
size=size,
|
|
833
|
+
checksum=checksum,
|
|
834
|
+
**kwargs
|
|
835
|
+
)
|
|
836
|
+
if response.status not in (200, 201):
|
|
837
|
+
raise ServerError("Failed to create/update dependency")
|
|
838
|
+
return response.data
|
|
839
|
+
|
|
840
|
+
def download_dependency_package(
|
|
841
|
+
self,
|
|
842
|
+
dst_directory,
|
|
843
|
+
package_name,
|
|
844
|
+
platform_name=None
|
|
845
|
+
):
|
|
846
|
+
if platform_name is None:
|
|
847
|
+
platform_name = platform.system().lower()
|
|
848
|
+
|
|
849
|
+
package_filepath = os.path.join(dst_directory, package_name + ".zip")
|
|
850
|
+
self.download_file(
|
|
851
|
+
"dependencies/{}/{}".format(package_name, platform_name),
|
|
852
|
+
package_filepath
|
|
853
|
+
)
|
|
854
|
+
return package_filepath
|
|
855
|
+
|
|
856
|
+
def upload_dependency_package(
|
|
857
|
+
self, filepath, package_name, platform_name=None
|
|
858
|
+
):
|
|
859
|
+
if platform_name is None:
|
|
860
|
+
platform_name = platform.system().lower()
|
|
861
|
+
|
|
862
|
+
self.upload_file(
|
|
863
|
+
"dependencies/{}/{}".format(package_name, platform_name),
|
|
864
|
+
filepath
|
|
865
|
+
)
|
|
866
|
+
|
|
867
|
+
def delete_dependency_package(self, package_name, platform_name=None):
|
|
868
|
+
if platform_name is None:
|
|
869
|
+
platform_name = platform.system().lower()
|
|
870
|
+
|
|
871
|
+
response = self.delete(
|
|
872
|
+
"dependencies/{}/{}".format(package_name, platform_name),
|
|
873
|
+
)
|
|
874
|
+
if response.status != 200:
|
|
875
|
+
raise ServerError("Failed to delete dependency file")
|
|
876
|
+
return response.data
|
|
877
|
+
|
|
676
878
|
# Anatomy presets
|
|
677
879
|
def get_project_anatomy_presets(self, add_default=True):
|
|
678
880
|
result = self.get("anatomy/presets")
|
|
@@ -713,13 +915,32 @@ class ServerAPIBase(object):
|
|
|
713
915
|
return full_settings
|
|
714
916
|
return full_settings["settings"]
|
|
715
917
|
|
|
716
|
-
def
|
|
918
|
+
def get_addon_studio_settings(self, addon_name, addon_version):
|
|
919
|
+
result = self.get(
|
|
920
|
+
"addons/{}/{}/settings".format(addon_name, addon_version)
|
|
921
|
+
)
|
|
922
|
+
if result.status != 200:
|
|
923
|
+
raise ServerError(result.text)
|
|
924
|
+
return result.data
|
|
925
|
+
|
|
926
|
+
def get_addon_project_settings(
|
|
927
|
+
self, addon_name, addon_version, project_name
|
|
928
|
+
):
|
|
717
929
|
result = self.get(
|
|
718
930
|
"addons/{}/{}/settings/{}".format(
|
|
719
|
-
addon_name, addon_version, project_name
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
931
|
+
addon_name, addon_version, project_name
|
|
932
|
+
)
|
|
933
|
+
)
|
|
934
|
+
if result.status != 200:
|
|
935
|
+
raise ServerError(result.text)
|
|
936
|
+
return result.data
|
|
937
|
+
|
|
938
|
+
def get_addon_settings(self, addon_name, addon_version, project_name=None):
|
|
939
|
+
if project_name is None:
|
|
940
|
+
return self.get_addon_studio_settings(addon_name, addon_version)
|
|
941
|
+
return self.get_addon_project_settings(
|
|
942
|
+
addon_name, addon_version, project_name
|
|
943
|
+
)
|
|
723
944
|
|
|
724
945
|
# Entity getters
|
|
725
946
|
def get_rest_project(self, project_name):
|
|
@@ -1864,6 +2085,7 @@ class ServerAPIBase(object):
|
|
|
1864
2085
|
version_ids=[version_id],
|
|
1865
2086
|
active=None,
|
|
1866
2087
|
fields=fields,
|
|
2088
|
+
own_attributes=own_attributes
|
|
1867
2089
|
)
|
|
1868
2090
|
for representation in representations:
|
|
1869
2091
|
return representation
|
|
@@ -1919,7 +2141,7 @@ class ServerAPIBase(object):
|
|
|
1919
2141
|
fields=None,
|
|
1920
2142
|
own_attributes=False
|
|
1921
2143
|
):
|
|
1922
|
-
filters = {}
|
|
2144
|
+
filters = {"projectName": project_name}
|
|
1923
2145
|
if task_ids is not None:
|
|
1924
2146
|
task_ids = set(task_ids)
|
|
1925
2147
|
if not task_ids:
|
|
@@ -1944,7 +2166,7 @@ class ServerAPIBase(object):
|
|
|
1944
2166
|
if own_attributes:
|
|
1945
2167
|
fields.add("ownAttrib")
|
|
1946
2168
|
|
|
1947
|
-
query = workfiles_info_graphql_query()
|
|
2169
|
+
query = workfiles_info_graphql_query(fields)
|
|
1948
2170
|
|
|
1949
2171
|
for attr, filter_value in filters.items():
|
|
1950
2172
|
query.set_variable_value(attr, filter_value)
|
|
@@ -85,6 +85,31 @@ def get_server_api_connection():
|
|
|
85
85
|
return GlobalContext.get_server_api_connection()
|
|
86
86
|
|
|
87
87
|
|
|
88
|
+
def raw_get(*args, **kwargs):
|
|
89
|
+
con = get_server_api_connection()
|
|
90
|
+
return con.raw_get(*args, **kwargs)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def raw_post(*args, **kwargs):
|
|
94
|
+
con = get_server_api_connection()
|
|
95
|
+
return con.raw_post(*args, **kwargs)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def raw_put(*args, **kwargs):
|
|
99
|
+
con = get_server_api_connection()
|
|
100
|
+
return con.raw_put(*args, **kwargs)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def raw_patch(*args, **kwargs):
|
|
104
|
+
con = get_server_api_connection()
|
|
105
|
+
return con.raw_patch(*args, **kwargs)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def raw_delete(*args, **kwargs):
|
|
109
|
+
con = get_server_api_connection()
|
|
110
|
+
return con.raw_delete(*args, **kwargs)
|
|
111
|
+
|
|
112
|
+
|
|
88
113
|
def get(*args, **kwargs):
|
|
89
114
|
con = get_server_api_connection()
|
|
90
115
|
return con.get(*args, **kwargs)
|
|
@@ -110,6 +135,101 @@ def delete(*args, **kwargs):
|
|
|
110
135
|
return con.delete(*args, **kwargs)
|
|
111
136
|
|
|
112
137
|
|
|
138
|
+
def download_file(*args, **kwargs):
|
|
139
|
+
con = get_server_api_connection()
|
|
140
|
+
return con.download_file(*args, **kwargs)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def upload_file(*args, **kwargs):
|
|
144
|
+
con = get_server_api_connection()
|
|
145
|
+
return con.upload_file(*args, **kwargs)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def query_graphql(*args, **kwargs):
|
|
149
|
+
con = get_server_api_connection()
|
|
150
|
+
return con.query_graphql(*args, **kwargs)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def get_users(*args, **kwargs):
|
|
154
|
+
con = get_server_api_connection()
|
|
155
|
+
return con.get_users(*args, **kwargs)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def get_user(*args, **kwargs):
|
|
159
|
+
con = get_server_api_connection()
|
|
160
|
+
return con.get_user(*args, **kwargs)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def get_attributes_for_type(*args, **kwargs):
|
|
164
|
+
con = get_server_api_connection()
|
|
165
|
+
return con.get_attributes_for_type(*args, **kwargs)
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def get_addons_info(*args, **kwargs):
|
|
169
|
+
con = get_server_api_connection()
|
|
170
|
+
return con.get_addons_info(*args, **kwargs)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def get_dependencies_info(*args, **kwargs):
|
|
174
|
+
con = get_server_api_connection()
|
|
175
|
+
return con.get_dependencies_info(*args, **kwargs)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def update_dependency_info(*args, **kwargs):
|
|
179
|
+
con = get_server_api_connection()
|
|
180
|
+
return con.update_dependency_info(*args, **kwargs)
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def download_dependency_package(*args, **kwargs):
|
|
184
|
+
con = get_server_api_connection()
|
|
185
|
+
return con.download_dependency_package(*args, **kwargs)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def upload_dependency_package(*args, **kwargs):
|
|
189
|
+
con = get_server_api_connection()
|
|
190
|
+
return con.upload_dependency_package(*args, **kwargs)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def delete_dependency_package(*args, **kwargs):
|
|
194
|
+
con = get_server_api_connection()
|
|
195
|
+
return con.delete_dependency_package(*args, **kwargs)
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def get_project_anatomy_presets(*args, **kwargs):
|
|
199
|
+
con = get_server_api_connection()
|
|
200
|
+
return con.get_project_anatomy_presets(*args, **kwargs)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def get_project_anatomy_preset(*args, **kwargs):
|
|
204
|
+
con = get_server_api_connection()
|
|
205
|
+
return con.get_project_anatomy_preset(*args, **kwargs)
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def get_full_production_settings(*args, **kwargs):
|
|
209
|
+
con = get_server_api_connection()
|
|
210
|
+
return con.get_full_production_settings(*args, **kwargs)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
def get_production_settings(*args, **kwargs):
|
|
214
|
+
con = get_server_api_connection()
|
|
215
|
+
return con.get_production_settings(*args, **kwargs)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
def get_full_project_settings(*args, **kwargs):
|
|
219
|
+
con = get_server_api_connection()
|
|
220
|
+
return con.get_full_project_settings(*args, **kwargs)
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def get_project_settings(*args, **kwargs):
|
|
224
|
+
con = get_server_api_connection()
|
|
225
|
+
return con.get_project_settings(*args, **kwargs)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def get_addon_settings(*args, **kwargs):
|
|
229
|
+
con = get_server_api_connection()
|
|
230
|
+
return con.get_addon_settings(*args, **kwargs)
|
|
231
|
+
|
|
232
|
+
|
|
113
233
|
def get_project(*args, **kwargs):
|
|
114
234
|
con = get_server_api_connection()
|
|
115
235
|
return con.get_project(*args, **kwargs)
|
|
@@ -245,16 +365,6 @@ def get_representations_parents(*args, **kwargs):
|
|
|
245
365
|
return con.get_representations_parents(*args, **kwargs)
|
|
246
366
|
|
|
247
367
|
|
|
248
|
-
def get_project_settings(*args, **kwargs):
|
|
249
|
-
con = get_server_api_connection()
|
|
250
|
-
return con.get_project_settings(*args, **kwargs)
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
def get_addon_settings(*args, **kwargs):
|
|
254
|
-
con = get_server_api_connection()
|
|
255
|
-
return con.get_addon_settings(*args, **kwargs)
|
|
256
|
-
|
|
257
|
-
|
|
258
368
|
def create_project(
|
|
259
369
|
project_name,
|
|
260
370
|
project_code,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""Package declaring Python API for Ayon server."""
|
|
2
|
-
__version__ = "0.1.
|
|
2
|
+
__version__ = "0.1.6"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|