Merge branch 'develop' into bugfix/maya-arnold-global-aov-mode

This commit is contained in:
Kayla Man 2024-04-26 17:54:31 +08:00 committed by GitHub
commit 7e53b9d4fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
74 changed files with 331 additions and 216 deletions

View file

@ -811,6 +811,43 @@ def get_current_context_template_data_with_folder_attrs():
return template_data
def set_review_color_space(opengl_node, review_color_space="", log=None):
"""Set ociocolorspace parameter for the given OpenGL node.
Set `ociocolorspace` parameter of the given OpenGl node
to to the given review_color_space value.
If review_color_space is empty, a default colorspace corresponding to
the display & view of the current Houdini session will be used.
Args:
opengl_node (hou.Node): ROP node to set its ociocolorspace parm.
review_color_space (str): Colorspace value for ociocolorspace parm.
log (logging.Logger): Logger to log to.
"""
if log is None:
log = self.log
# Set Color Correction parameter to OpenColorIO
colorcorrect_parm = opengl_node.parm("colorcorrect")
if colorcorrect_parm.eval() != 2:
colorcorrect_parm.set(2)
log.debug(
"'Color Correction' parm on '{}' has been set to"
" 'OpenColorIO'".format(opengl_node.path())
)
opengl_node.setParms(
{"ociocolorspace": review_color_space}
)
log.debug(
"'OCIO Colorspace' parm on '{}' has been set to "
"the view color space '{}'"
.format(opengl_node, review_color_space)
)
def get_context_var_changes():
"""get context var changes."""

View file

@ -0,0 +1,58 @@
from ayon_applications import PreLaunchHook, LaunchTypes
class SetDefaultDisplayView(PreLaunchHook):
"""Set default view and default display for houdini via OpenColorIO.
Houdini's defaultDisplay and defaultView are set by
setting 'OCIO_ACTIVE_DISPLAYS' and 'OCIO_ACTIVE_VIEWS'
environment variables respectively.
More info: https://www.sidefx.com/docs/houdini/io/ocio.html#set-up
"""
app_groups = {"houdini"}
launch_types = {LaunchTypes.local}
def execute(self):
OCIO = self.launch_context.env.get("OCIO")
# This is a cheap way to skip this hook if either global color
# management or houdini color management was disabled because the
# OCIO var would be set by the global OCIOEnvHook
if not OCIO:
return
houdini_color_settings = \
self.data["project_settings"]["houdini"]["imageio"]["workfile"]
if not houdini_color_settings["enabled"]:
self.log.info(
"Houdini workfile color management is disabled."
)
return
# 'OCIO_ACTIVE_DISPLAYS', 'OCIO_ACTIVE_VIEWS' are checked
# as Admins can add them in Ayon env vars or Ayon tools.
default_display = houdini_color_settings["default_display"]
if default_display:
# get 'OCIO_ACTIVE_DISPLAYS' value if exists.
self._set_context_env("OCIO_ACTIVE_DISPLAYS", default_display)
default_view = houdini_color_settings["default_view"]
if default_view:
# get 'OCIO_ACTIVE_VIEWS' value if exists.
self._set_context_env("OCIO_ACTIVE_VIEWS", default_view)
def _set_context_env(self, env_var, default_value):
env_value = self.launch_context.env.get(env_var, "")
new_value = ":".join(
key for key in [default_value, env_value] if key
)
self.log.info(
"Setting {} environment to: {}"
.format(env_var, new_value)
)
self.launch_context.env[env_var] = new_value

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating openGL reviews."""
from ayon_core.hosts.houdini.api import plugin
from ayon_core.hosts.houdini.api import lib, plugin
from ayon_core.lib import EnumDef, BoolDef, NumberDef
import os
@ -14,6 +14,13 @@ class CreateReview(plugin.HoudiniCreator):
label = "Review"
product_type = "review"
icon = "video-camera"
review_color_space = ""
def apply_settings(self, project_settings):
super(CreateReview, self).apply_settings(project_settings)
color_settings = project_settings["houdini"]["imageio"]["workfile"]
if color_settings["enabled"]:
self.review_color_space = color_settings.get("review_color_space")
def create(self, product_name, instance_data, pre_create_data):
@ -85,10 +92,20 @@ class CreateReview(plugin.HoudiniCreator):
instance_node.setParms(parms)
# Set OCIO Colorspace to the default output colorspace
# Set OCIO Colorspace to the default colorspace
# if there's OCIO
if os.getenv("OCIO"):
self.set_colorcorrect_to_default_view_space(instance_node)
# Fall to the default value if cls.review_color_space is empty.
if not self.review_color_space:
# cls.review_color_space is an empty string
# when the imageio/workfile setting is disabled or
# when the Review colorspace setting is empty.
from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
self.review_color_space = get_default_display_view_colorspace()
lib.set_review_color_space(instance_node,
self.review_color_space,
self.log)
to_lock = ["id", "productType"]
@ -131,23 +148,3 @@ class CreateReview(plugin.HoudiniCreator):
minimum=0.0001,
decimals=3)
]
def set_colorcorrect_to_default_view_space(self,
instance_node):
"""Set ociocolorspace to the default output space."""
from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
# set Color Correction parameter to OpenColorIO
instance_node.setParms({"colorcorrect": 2})
# Get default view space for ociocolorspace parm.
default_view_space = get_default_display_view_colorspace()
instance_node.setParms(
{"ociocolorspace": default_view_space}
)
self.log.debug(
"'OCIO Colorspace' parm on '{}' has been set to "
"the default view color space '{}'"
.format(instance_node, default_view_space)
)

View file

@ -7,7 +7,8 @@ from ayon_core.hosts.houdini.api.lib import render_rop, splitext
import hou
class ExtractComposite(publish.Extractor):
class ExtractComposite(publish.Extractor,
publish.ColormanagedPyblishPluginMixin):
order = pyblish.api.ExtractorOrder
label = "Extract Composite (Image Sequence)"
@ -45,8 +46,14 @@ class ExtractComposite(publish.Extractor):
"frameEnd": instance.data["frameEndHandle"],
}
from pprint import pformat
self.log.info(pformat(representation))
if ext.lower() == "exr":
# Inject colorspace with 'scene_linear' as that's the
# default Houdini working colorspace and all extracted
# OpenEXR images should be in that colorspace.
# https://www.sidefx.com/docs/houdini/render/linear.html#image-formats
self.set_representation_colorspace(
representation, instance.context,
colorspace="scene_linear"
)
instance.data["representations"].append(representation)

View file

@ -8,7 +8,8 @@ from ayon_core.hosts.houdini.api.lib import render_rop
import hou
class ExtractOpenGL(publish.Extractor):
class ExtractOpenGL(publish.Extractor,
publish.ColormanagedPyblishPluginMixin):
order = pyblish.api.ExtractorOrder - 0.01
label = "Extract OpenGL"
@ -46,6 +47,14 @@ class ExtractOpenGL(publish.Extractor):
"camera_name": instance.data.get("review_camera")
}
if ropnode.evalParm("colorcorrect") == 2: # OpenColorIO enabled
colorspace = ropnode.evalParm("ociocolorspace")
# inject colorspace data
self.set_representation_colorspace(
representation, instance.context,
colorspace=colorspace
)
if "representations" not in instance.data:
instance.data["representations"] = []
instance.data["representations"].append(representation)

View file

@ -4,15 +4,19 @@ from ayon_core.pipeline import (
PublishValidationError,
OptionalPyblishPluginMixin
)
from ayon_core.pipeline.publish import RepairAction
from ayon_core.pipeline.publish import (
RepairAction,
get_plugin_settings,
apply_plugin_settings_automatically
)
from ayon_core.hosts.houdini.api.action import SelectROPAction
import os
import hou
class SetDefaultViewSpaceAction(RepairAction):
label = "Set default view colorspace"
class ResetViewSpaceAction(RepairAction):
label = "Reset OCIO colorspace parm"
icon = "mdi.monitor"
@ -27,9 +31,25 @@ class ValidateReviewColorspace(pyblish.api.InstancePlugin,
families = ["review"]
hosts = ["houdini"]
label = "Validate Review Colorspace"
actions = [SetDefaultViewSpaceAction, SelectROPAction]
actions = [ResetViewSpaceAction, SelectROPAction]
optional = True
review_color_space = ""
@classmethod
def apply_settings(cls, project_settings):
# Preserve automatic settings applying logic
settings = get_plugin_settings(plugin=cls,
project_settings=project_settings,
log=cls.log,
category="houdini")
apply_plugin_settings_automatically(cls, settings, logger=cls.log)
# Add review color settings
color_settings = project_settings["houdini"]["imageio"]["workfile"]
if color_settings["enabled"]:
cls.review_color_space = color_settings.get("review_color_space")
def process(self, instance):
@ -52,39 +72,54 @@ class ValidateReviewColorspace(pyblish.api.InstancePlugin,
" 'OpenColorIO'".format(rop_node.path())
)
if rop_node.evalParm("ociocolorspace") not in \
hou.Color.ocio_spaces():
current_color_space = rop_node.evalParm("ociocolorspace")
if current_color_space not in hou.Color.ocio_spaces():
raise PublishValidationError(
"Invalid value: Colorspace name doesn't exist.\n"
"Check 'OCIO Colorspace' parameter on '{}' ROP"
.format(rop_node.path())
)
@classmethod
def repair(cls, instance):
"""Set Default View Space Action.
# if houdini/imageio/workfile is enabled and
# Review colorspace setting is empty then this check should
# actually check if the current_color_space setting equals
# the default colorspace value.
# However, it will make the black cmd screen show up more often
# which is very annoying.
if self.review_color_space and \
self.review_color_space != current_color_space:
It is a helper action more than a repair action,
used to set colorspace on opengl node to the default view.
"""
from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
rop_node = hou.node(instance.data["instance_node"])
if rop_node.evalParm("colorcorrect") != 2:
rop_node.setParms({"colorcorrect": 2})
cls.log.debug(
"'Color Correction' parm on '{}' has been set to"
" 'OpenColorIO'".format(rop_node.path())
raise PublishValidationError(
"Invalid value: Colorspace name doesn't match"
"the Colorspace specified in settings."
)
# Get default view colorspace name
default_view_space = get_default_display_view_colorspace()
@classmethod
def repair(cls, instance):
"""Reset view colorspace.
rop_node.setParms({"ociocolorspace": default_view_space})
cls.log.info(
"'OCIO Colorspace' parm on '{}' has been set to "
"the default view color space '{}'"
.format(rop_node, default_view_space)
)
It is used to set colorspace on opengl node.
It uses the colorspace value specified in the Houdini addon settings.
If the value in the Houdini addon settings is empty,
it will fall to the default colorspace.
Note:
This repair action assumes that OCIO is enabled.
As if OCIO is disabled the whole validation is skipped
and this repair action won't show up.
"""
from ayon_core.hosts.houdini.api.lib import set_review_color_space
# Fall to the default value if cls.review_color_space is empty.
if not cls.review_color_space:
# cls.review_color_space is an empty string
# when the imageio/workfile setting is disabled or
# when the Review colorspace setting is empty.
from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
cls.review_color_space = get_default_display_view_colorspace()
rop_node = hou.node(instance.data["instance_node"])
set_review_color_space(rop_node,
cls.review_color_space,
cls.log)

View file

@ -53,6 +53,7 @@ class ExtractAlembic(publish.Extractor,
hosts = ["max"]
families = ["pointcache"]
optional = True
active = True
def process(self, instance):
if not self.is_active(instance.data):
@ -102,24 +103,27 @@ class ExtractAlembic(publish.Extractor,
@classmethod
def get_attribute_defs(cls):
return [
defs = super(ExtractAlembic, cls).get_attribute_defs()
defs.extend([
BoolDef("custom_attrs",
label="Custom Attributes",
default=False),
]
])
return defs
class ExtractCameraAlembic(ExtractAlembic):
"""Extract Camera with AlembicExport."""
label = "Extract Alembic Camera"
families = ["camera"]
optional = True
class ExtractModel(ExtractAlembic):
class ExtractModelAlembic(ExtractAlembic):
"""Extract Geometry in Alembic Format"""
label = "Extract Geometry (Alembic)"
families = ["model"]
optional = True
def _set_abc_attributes(self, instance):
attr_values = self.get_attr_values_from_data(instance.data)

View file

@ -0,0 +1,3 @@
name = "aftereffects"
title = "AfterEffects"
version = "0.1.3"

View file

@ -1,14 +1,9 @@
from ayon_server.addons import BaseServerAddon
from .settings import AfterEffectsSettings, DEFAULT_AFTEREFFECTS_SETTING
from .version import __version__
class AfterEffects(BaseServerAddon):
name = "aftereffects"
title = "AfterEffects"
version = __version__
settings_model = AfterEffectsSettings
async def get_default_settings(self):

View file

@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Package declaring addon version."""
__version__ = "0.1.3"

View file

@ -0,0 +1,3 @@
name = "blender"
title = "Blender"
version = "0.1.8"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import BlenderSettings, DEFAULT_VALUES
class BlenderAddon(BaseServerAddon):
name = "blender"
title = "Blender"
version = __version__
settings_model: Type[BlenderSettings] = BlenderSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.8"

View file

@ -0,0 +1,3 @@
name = "celaction"
title = "CelAction"
version = "0.1.0"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import CelActionSettings, DEFAULT_VALUES
class CelActionAddon(BaseServerAddon):
name = "celaction"
title = "CelAction"
version = __version__
settings_model: Type[CelActionSettings] = CelActionSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.0"

View file

@ -0,0 +1,3 @@
name = "clockify"
title = "Clockify"
version = "0.1.1"

View file

@ -2,14 +2,8 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import ClockifySettings
class ClockifyAddon(BaseServerAddon):
name = "clockify"
title = "Clockify"
version = __version__
settings_model: Type[ClockifySettings] = ClockifySettings
frontend_scopes = {}
services = {}

View file

@ -1 +0,0 @@
__version__ = "0.1.1"

View file

@ -245,12 +245,8 @@ def create_addon_package(
keep_source: bool,
):
src_package_py = addon_dir / "package.py"
package = None
if src_package_py.exists():
package = import_filepath(src_package_py)
addon_version = package.version
else:
addon_version = get_addon_version(addon_dir)
package = import_filepath(src_package_py)
addon_version = package.version
addon_output_dir = output_dir / addon_dir.name / addon_version
if addon_output_dir.exists():
@ -259,18 +255,7 @@ def create_addon_package(
# Copy server content
dst_package_py = addon_output_dir / "package.py"
if package is not None:
shutil.copy(src_package_py, dst_package_py)
else:
addon_name = addon_dir.name
if addon_name == "royal_render":
addon_name = "royalrender"
package_py_content = PACKAGE_PY_TEMPLATE.format(
addon_name=addon_name, addon_version=addon_version
)
with open(dst_package_py, "w+") as pkg_py:
pkg_py.write(package_py_content)
shutil.copy(src_package_py, dst_package_py)
server_dir = addon_dir / "server"
shutil.copytree(

View file

@ -0,0 +1,3 @@
name = "deadline"
title = "Deadline"
version = "0.1.10"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import DeadlineSettings, DEFAULT_VALUES
class Deadline(BaseServerAddon):
name = "deadline"
title = "Deadline"
version = __version__
settings_model: Type[DeadlineSettings] = DeadlineSettings
async def get_default_settings(self):

View file

@ -1 +0,0 @@
__version__ = "0.1.10"

View file

@ -0,0 +1,3 @@
name = "flame"
title = "Flame"
version = "0.1.0"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import FlameSettings, DEFAULT_VALUES
class FlameAddon(BaseServerAddon):
name = "flame"
title = "Flame"
version = __version__
settings_model: Type[FlameSettings] = FlameSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.0"

View file

@ -0,0 +1,3 @@
name = "fusion"
title = "Fusion"
version = "0.1.5"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import FusionSettings, DEFAULT_VALUES
class FusionAddon(BaseServerAddon):
name = "fusion"
title = "Fusion"
version = __version__
settings_model: Type[FusionSettings] = FusionSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.5"

View file

@ -0,0 +1,3 @@
name = "harmony"
title = "Harmony"
version = "0.1.2"

View file

@ -1,14 +1,9 @@
from ayon_server.addons import BaseServerAddon
from .settings import HarmonySettings, DEFAULT_HARMONY_SETTING
from .version import __version__
class Harmony(BaseServerAddon):
name = "harmony"
title = "Harmony"
version = __version__
settings_model = HarmonySettings
async def get_default_settings(self):

View file

@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Package declaring addon version."""
__version__ = "0.1.2"

View file

@ -0,0 +1,3 @@
name = "hiero"
title = "Hiero"
version = "0.1.2"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import HieroSettings, DEFAULT_VALUES
class HieroAddon(BaseServerAddon):
name = "hiero"
title = "Hiero"
version = __version__
settings_model: Type[HieroSettings] = HieroSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.2"

View file

@ -0,0 +1,3 @@
name = "houdini"
title = "Houdini"
version = "0.2.13"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import HoudiniSettings, DEFAULT_VALUES
class Houdini(BaseServerAddon):
name = "houdini"
title = "Houdini"
version = __version__
settings_model: Type[HoudiniSettings] = HoudiniSettings
async def get_default_settings(self):

View file

@ -34,6 +34,34 @@ class ImageIOFileRulesModel(BaseSettingsModel):
return value
class WorkfileImageIOModel(BaseSettingsModel):
"""Workfile settings help.
Empty values will be skipped, allowing any existing env vars to
pass through as defined.
Note: The render space in Houdini is
always set to the 'scene_linear' role."""
enabled: bool = SettingsField(False, title="Enabled")
default_display: str = SettingsField(
title="Default active displays",
description="It behaves like the 'OCIO_ACTIVE_DISPLAYS' env var,"
" Colon-separated list of displays, e.g ACES:P3"
)
default_view: str = SettingsField(
title="Default active views",
description="It behaves like the 'OCIO_ACTIVE_VIEWS' env var,"
" Colon-separated list of views, e.g sRGB:DCDM"
)
review_color_space: str = SettingsField(
title="Review colorspace",
description="It exposes OCIO Colorspace parameter in opengl nodes."
"if left empty, Ayon will figure out the default "
"colorspace using your default display and default view."
)
class HoudiniImageIOModel(BaseSettingsModel):
activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
@ -46,3 +74,26 @@ class HoudiniImageIOModel(BaseSettingsModel):
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
workfile: WorkfileImageIOModel = SettingsField(
default_factory=WorkfileImageIOModel,
title="Workfile"
)
DEFAULT_IMAGEIO_SETTINGS = {
"activate_host_color_management": False,
"ocio_config": {
"override_global_config": False,
"filepath": []
},
"file_rules": {
"activate_host_rules": False,
"rules": []
},
"workfile": {
"enabled": False,
"default_display": "ACES",
"default_view": "sRGB",
"review_color_space": ""
}
}

View file

@ -3,7 +3,10 @@ from .general import (
GeneralSettingsModel,
DEFAULT_GENERAL_SETTINGS
)
from .imageio import HoudiniImageIOModel
from .imageio import (
HoudiniImageIOModel,
DEFAULT_IMAGEIO_SETTINGS
)
from .shelves import ShelvesModel
from .create import (
CreatePluginsModel,
@ -40,6 +43,7 @@ class HoudiniSettings(BaseSettingsModel):
DEFAULT_VALUES = {
"general": DEFAULT_GENERAL_SETTINGS,
"imageio": DEFAULT_IMAGEIO_SETTINGS,
"shelves": [],
"create": DEFAULT_HOUDINI_CREATE_SETTINGS,
"publish": DEFAULT_HOUDINI_PUBLISH_SETTINGS

View file

@ -1 +0,0 @@
__version__ = "0.2.12"

View file

@ -0,0 +1,3 @@
name = "max"
title = "Max"
version = "0.1.7"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import MaxSettings, DEFAULT_VALUES
class MaxAddon(BaseServerAddon):
name = "max"
title = "Max"
version = __version__
settings_model: Type[MaxSettings] = MaxSettings
async def get_default_settings(self):

View file

@ -1 +0,0 @@
__version__ = "0.1.7"

View file

@ -0,0 +1,3 @@
name = "maya"
title = "Maya"
version = "0.1.16"

View file

@ -2,13 +2,9 @@
from ayon_server.addons import BaseServerAddon
from .settings.main import MayaSettings, DEFAULT_MAYA_SETTING
from .version import __version__
class MayaAddon(BaseServerAddon):
name = "maya"
title = "Maya"
version = __version__
settings_model = MayaSettings
async def get_default_settings(self):

View file

@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Package declaring addon version."""
__version__ = "0.1.16"

View file

@ -0,0 +1,3 @@
name = "nuke"
title = "Nuke"
version = "0.1.10"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import NukeSettings, DEFAULT_VALUES
class NukeAddon(BaseServerAddon):
name = "nuke"
title = "Nuke"
version = __version__
settings_model: Type[NukeSettings] = NukeSettings
async def get_default_settings(self):

View file

@ -1 +0,0 @@
__version__ = "0.1.10"

View file

@ -0,0 +1,3 @@
name = "photoshop"
title = "Photoshop"
version = "0.1.2"

View file

@ -1,14 +1,9 @@
from ayon_server.addons import BaseServerAddon
from .settings import PhotoshopSettings, DEFAULT_PHOTOSHOP_SETTING
from .version import __version__
class Photoshop(BaseServerAddon):
name = "photoshop"
title = "Photoshop"
version = __version__
settings_model = PhotoshopSettings
async def get_default_settings(self):

View file

@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Package declaring addon version."""
__version__ = "0.1.2"

View file

@ -0,0 +1,3 @@
name = "resolve"
title = "DaVinci Resolve"
version = "0.1.0"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import ResolveSettings, DEFAULT_VALUES
class ResolveAddon(BaseServerAddon):
name = "resolve"
title = "DaVinci Resolve"
version = __version__
settings_model: Type[ResolveSettings] = ResolveSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.0"

View file

@ -1 +0,0 @@
__version__ = "0.1.1"

View file

@ -0,0 +1,3 @@
name = "royalrender"
title = "Royal Render"
version = "0.1.1"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import RoyalRenderSettings, DEFAULT_VALUES
class RoyalRenderAddon(BaseServerAddon):
name = "royalrender"
version = __version__
title = "Royal Render"
settings_model: Type[RoyalRenderSettings] = RoyalRenderSettings
async def get_default_settings(self):

View file

@ -0,0 +1,3 @@
name = "substancepainter"
title = "Substance Painter"
version = "0.1.1"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import SubstancePainterSettings, DEFAULT_SPAINTER_SETTINGS
class SubstancePainterAddon(BaseServerAddon):
name = "substancepainter"
title = "Substance Painter"
version = __version__
settings_model: Type[SubstancePainterSettings] = SubstancePainterSettings
async def get_default_settings(self):

View file

@ -1 +0,0 @@
__version__ = "0.1.1"

View file

@ -0,0 +1,3 @@
name = "timers_manager"
title = "Timers Manager"
version = "0.1.1"

View file

@ -2,12 +2,8 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import TimersManagerSettings
class TimersManagerAddon(BaseServerAddon):
name = "timers_manager"
version = __version__
title = "Timers Manager"
settings_model: Type[TimersManagerSettings] = TimersManagerSettings

View file

@ -1 +0,0 @@
__version__ = "0.1.1"

View file

@ -0,0 +1,3 @@
name = "traypublisher"
title = "TrayPublisher"
version = "0.1.4"

View file

@ -1,14 +1,9 @@
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import TraypublisherSettings, DEFAULT_TRAYPUBLISHER_SETTING
class Traypublisher(BaseServerAddon):
name = "traypublisher"
title = "TrayPublisher"
version = __version__
settings_model = TraypublisherSettings
async def get_default_settings(self):

View file

@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
"""Package declaring addon version."""
__version__ = "0.1.4"

View file

@ -0,0 +1,3 @@
name = "tvpaint"
title = "TVPaint"
version = "0.1.2"

View file

@ -2,14 +2,10 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import TvpaintSettings, DEFAULT_VALUES
class TvpaintAddon(BaseServerAddon):
name = "tvpaint"
title = "TVPaint"
version = __version__
settings_model: Type[TvpaintSettings] = TvpaintSettings
async def get_default_settings(self):

View file

@ -1 +0,0 @@
__version__ = "0.1.2"

View file

@ -0,0 +1,3 @@
name = "unreal"
title = "Unreal"
version = "0.1.0"

View file

@ -2,17 +2,11 @@ from typing import Type
from ayon_server.addons import BaseServerAddon
from .version import __version__
from .settings import UnrealSettings, DEFAULT_VALUES
class UnrealAddon(BaseServerAddon):
name = "unreal"
title = "Unreal"
version = __version__
settings_model: Type[UnrealSettings] = UnrealSettings
frontend_scopes = {}
services = {}
async def get_default_settings(self):
settings_model_cls = self.get_settings_model()

View file

@ -1 +0,0 @@
__version__ = "0.1.0"