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.
Files changed (24) hide show
  1. {ayon-python-api-0.1.4/ayon_python_api.egg-info → ayon-python-api-0.1.6}/PKG-INFO +1 -1
  2. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/__init__.py +70 -3
  3. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/server.py +239 -17
  4. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/server_api.py +120 -10
  5. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/version.py +1 -1
  6. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6/ayon_python_api.egg-info}/PKG-INFO +1 -1
  7. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/pyproject.toml +1 -1
  8. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/setup.py +1 -1
  9. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/LICENSE +0 -0
  10. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/README.md +0 -0
  11. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/constants.py +0 -0
  12. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/entity_hub.py +0 -0
  13. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/events.py +0 -0
  14. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/exceptions.py +0 -0
  15. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/graphql.py +0 -0
  16. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/graphql_queries.py +0 -0
  17. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/operations.py +0 -0
  18. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/thumbnails.py +0 -0
  19. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_api/utils.py +0 -0
  20. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/SOURCES.txt +0 -0
  21. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/dependency_links.txt +0 -0
  22. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/requires.txt +0 -0
  23. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/ayon_python_api.egg-info/top_level.txt +0 -0
  24. {ayon-python-api-0.1.4 → ayon-python-api-0.1.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ayon-python-api
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: AYON Python API
5
5
  Home-page: https://github.com/ynput/ayon-python-api
6
6
  Author: ynput.io
@@ -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__(self, base_url, token=None):
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
- self.get_user_info()
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.get_user_info()
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 get_user_info(self):
283
- user_info = self._get_user_info()
284
- if user_info is None:
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 user_info
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
- headers = {"Content-Type": content_type}
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.get_user_info()
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 get_addon_settings(self, addon_name, addon_version, project_name):
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
- if result.status == 200:
721
- return result.data
722
- return None
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.4"
2
+ __version__ = "0.1.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ayon-python-api
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: AYON Python API
5
5
  Home-page: https://github.com/ynput/ayon-python-api
6
6
  Author: ynput.io
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ayon_api"
3
- version = "0.1.4"
3
+ version = "0.1.6"
4
4
  description = "Python api for AYON server"
5
5
  authors = ["ynput.io <info@ynput.io>"]
6
6
 
@@ -34,5 +34,5 @@ setup(
34
34
  dependency_links=[
35
35
  "appdirs @ git+https://github.com/ActiveState/appdirs.git@master"
36
36
  ],
37
- keywords=["AYON", "ynput", "OpenPype", "vfx"]
37
+ keywords=["AYON", "ynput", "OpenPype", "vfx"],
38
38
  )
File without changes