ayon-python-api 1.2.19__tar.gz → 1.2.20__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 (49) hide show
  1. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/PKG-INFO +1 -1
  2. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/projects.py +1 -0
  3. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/constants.py +3 -4
  4. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/entity_hub.py +16 -7
  5. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/typing.py +1 -0
  6. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/version.py +1 -1
  7. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_python_api.egg-info/PKG-INFO +1 -1
  8. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/pyproject.toml +2 -2
  9. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/LICENSE +0 -0
  10. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/README.md +0 -0
  11. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/__init__.py +0 -0
  12. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api.py +0 -0
  13. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/__init__.py +0 -0
  14. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/actions.py +0 -0
  15. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/activities.py +0 -0
  16. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/attributes.py +0 -0
  17. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/base.py +0 -0
  18. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/bundles_addons.py +0 -0
  19. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/dependency_packages.py +0 -0
  20. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/events.py +0 -0
  21. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/folders.py +0 -0
  22. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/installers.py +0 -0
  23. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/links.py +0 -0
  24. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/lists.py +0 -0
  25. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/products.py +0 -0
  26. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/representations.py +0 -0
  27. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/secrets.py +0 -0
  28. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/tasks.py +0 -0
  29. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/thumbnails.py +0 -0
  30. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/versions.py +0 -0
  31. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/_api_helpers/workfiles.py +0 -0
  32. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/events.py +0 -0
  33. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/exceptions.py +0 -0
  34. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/graphql.py +0 -0
  35. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/graphql_queries.py +0 -0
  36. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/operations.py +0 -0
  37. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/server_api.py +0 -0
  38. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_api/utils.py +0 -0
  39. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_python_api.egg-info/SOURCES.txt +0 -0
  40. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_python_api.egg-info/dependency_links.txt +0 -0
  41. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_python_api.egg-info/requires.txt +0 -0
  42. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/ayon_python_api.egg-info/top_level.txt +0 -0
  43. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/setup.cfg +0 -0
  44. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/setup.py +0 -0
  45. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/tests/test_entity_hub.py +0 -0
  46. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/tests/test_folder_hierarchy.py +0 -0
  47. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/tests/test_get_events.py +0 -0
  48. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/tests/test_graphql_queries.py +0 -0
  49. {ayon_python_api-1.2.19 → ayon_python_api-1.2.20}/tests/test_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ayon_python_api
3
- Version: 1.2.19
3
+ Version: 1.2.20
4
4
  Summary: AYON Python API
5
5
  Home-page: https://github.com/ynput/ayon-python-api
6
6
  Author: ynput.io
@@ -364,6 +364,7 @@ class ProjectsAPI(BaseServerAPI):
364
364
  graphql_project = next(self._get_graphql_projects(
365
365
  None,
366
366
  None,
367
+ include_skeleton=True,
367
368
  project_name=project_name,
368
369
  fields=graphql_fields,
369
370
  own_attributes=own_attributes,
@@ -75,15 +75,14 @@ DEFAULT_PROJECT_LINK_TYPES_FIELDS = {
75
75
  # --- Product types ---
76
76
  DEFAULT_PRODUCT_TYPE_FIELDS = {
77
77
  "name",
78
- "icon",
79
- "color",
80
78
  }
81
79
 
82
80
  # --- Product base type ---
83
81
  DEFAULT_PRODUCT_BASE_TYPE_FIELDS = {
84
- # Ignore 'icon' and 'color'
85
- # - current server implementation always returns 'null'
82
+ # TODO add 'icon' and 'color' when server supports it
86
83
  "name",
84
+ # "icon",
85
+ # "color",
87
86
  }
88
87
 
89
88
  # --- Project ---
@@ -56,6 +56,15 @@ if typing.TYPE_CHECKING:
56
56
  scope: NotRequired[Optional[StatusEntityType]]
57
57
 
58
58
 
59
+ class Assignees(set):
60
+ """Helper class for task assignees.
61
+
62
+ Assignees used to be a list and 'append' is being used a lot.
63
+ """
64
+ def append(self, item: str) -> None:
65
+ self.add(item)
66
+
67
+
59
68
  class _CustomNone:
60
69
  def __init__(self, name: Optional[str] = None) -> None:
61
70
  self._name = name or "CustomNone"
@@ -3430,9 +3439,9 @@ class TaskEntity(BaseEntity):
3430
3439
  entity_hub=entity_hub,
3431
3440
  )
3432
3441
  if assignees is None:
3433
- assignees = []
3442
+ assignees = Assignees()
3434
3443
  else:
3435
- assignees = list(assignees)
3444
+ assignees = Assignees(assignees)
3436
3445
 
3437
3446
  self._task_type = task_type
3438
3447
  self._assignees = assignees
@@ -3463,11 +3472,11 @@ class TaskEntity(BaseEntity):
3463
3472
 
3464
3473
  task_type = property(get_task_type, set_task_type)
3465
3474
 
3466
- def get_assignees(self) -> list[str]:
3475
+ def get_assignees(self) -> Assignees[str]:
3467
3476
  """Task assignees.
3468
3477
 
3469
3478
  Returns:
3470
- list[str]: Task assignees.
3479
+ Assignees[str]: Task assignees.
3471
3480
 
3472
3481
  """
3473
3482
  return self._assignees
@@ -3479,7 +3488,7 @@ class TaskEntity(BaseEntity):
3479
3488
  assignees (Iterable[str]): assignees.
3480
3489
 
3481
3490
  """
3482
- self._assignees = list(assignees)
3491
+ self._assignees = Assignees(assignees)
3483
3492
 
3484
3493
  assignees = property(get_assignees, set_assignees)
3485
3494
 
@@ -3497,7 +3506,7 @@ class TaskEntity(BaseEntity):
3497
3506
  changes["taskType"] = self._task_type
3498
3507
 
3499
3508
  if self._orig_assignees != self._assignees:
3500
- changes["assignees"] = self._assignees
3509
+ changes["assignees"] = list(self._assignees)
3501
3510
 
3502
3511
  return changes
3503
3512
 
@@ -3549,7 +3558,7 @@ class TaskEntity(BaseEntity):
3549
3558
  output["tags"] = self.tags
3550
3559
 
3551
3560
  if self.assignees:
3552
- output["assignees"] = self.assignees
3561
+ output["assignees"] = list(self.assignees)
3553
3562
 
3554
3563
  if self._data is not UNKNOWN_VALUE:
3555
3564
  output["data"] = self._data.get_new_entity_value()
@@ -235,6 +235,7 @@ class BundleInfoDict(TypedDict):
235
235
  class BundlesInfoDict(TypedDict):
236
236
  bundles: list[BundleInfoDict]
237
237
  productionBundle: str
238
+ stagingBundle: str
238
239
  devBundles: list[str]
239
240
 
240
241
 
@@ -1,2 +1,2 @@
1
1
  """Package declaring Python API for AYON server."""
2
- __version__ = "1.2.19"
2
+ __version__ = "1.2.20"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ayon_python_api
3
- Version: 1.2.19
3
+ Version: 1.2.20
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
  [project]
2
2
  name = "ayon_python_api"
3
- version = "1.2.19"
3
+ version = "1.2.20"
4
4
  description = "AYON Python API"
5
5
  license = {file = "LICENSE"}
6
6
  readme = {file = "README.md", content-type = "text/markdown"}
@@ -28,7 +28,7 @@ build-backend = "poetry.core.masonry.api"
28
28
 
29
29
  [tool.poetry]
30
30
  name = "ayon_python_api"
31
- version = "1.2.19"
31
+ version = "1.2.20"
32
32
  description = "AYON Python API"
33
33
  authors = [
34
34
  "ynput.io <info@ynput.io>"