create new enum entities used to determine openpype version

This commit is contained in:
iLLiCiTiT 2021-12-03 16:05:36 +01:00
parent 88218caf28
commit 2bfdc5c3e9
2 changed files with 57 additions and 1 deletions

View file

@ -106,7 +106,9 @@ from .enum_entity import (
ToolsEnumEntity,
TaskTypeEnumEntity,
DeadlineUrlEnumEntity,
AnatomyTemplatesEnumEntity
AnatomyTemplatesEnumEntity,
ProductionVersionsEnumEntity,
StagingVersionsEnumEntity
)
from .list_entity import ListEntity
@ -169,6 +171,8 @@ __all__ = (
"TaskTypeEnumEntity",
"DeadlineUrlEnumEntity",
"AnatomyTemplatesEnumEntity",
"ProductionVersionsEnumEntity",
"StagingVersionsEnumEntity",
"ListEntity",

View file

@ -1,4 +1,5 @@
import copy
import sys
from .input_entities import InputEntity
from .exceptions import EntitySchemaError
from .lib import (
@ -564,3 +565,54 @@ class AnatomyTemplatesEnumEntity(BaseEnumEntity):
self.enum_items, self.valid_keys = self._get_enum_values()
if self._current_value not in self.valid_keys:
self._current_value = self.value_on_not_set
class _OpenPypeVersionEnum(BaseEnumEntity):
def _item_initialization(self):
self.multiselection = False
self.valid_value_types = (STRING_TYPE, )
self.value_on_not_set = ""
items = [
{"": "Latest"}
]
items.extend(self._get_openpype_versions())
self.enum_items = items
self.valid_keys = {
tuple(item.keys())[0]
for item in items
}
def _get_openpype_versions(self):
return []
class ProductionVersionsEnumEntity(_OpenPypeVersionEnum):
schema_types = ["production-versions-enum"]
def _get_openpype_versions(self):
items = []
if "OpenPypeVersion" in sys.modules:
OpenPypeVersion = sys.modules["OpenPypeVersion"]
versions = OpenPypeVersion.get_available_versions(
staging=False, local=False
)
for item in versions:
items.append({item: item})
return items
class StagingVersionsEnumEntity(_OpenPypeVersionEnum):
schema_types = ["staging-versions-enum"]
def _get_openpype_versions(self):
items = []
if "OpenPypeVersion" in sys.modules:
OpenPypeVersion = sys.modules["OpenPypeVersion"]
versions = OpenPypeVersion.get_available_versions(
staging=False, local=False
)
for item in versions:
items.append({item: item})
return items