Merge branch 'develop' into enhancement/AY-4911_Move-Celaction-client-code

This commit is contained in:
Jakub Trllo 2024-05-30 11:45:06 +02:00 committed by GitHub
commit 491e0f6bd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
82 changed files with 147 additions and 98 deletions

View file

@ -15,11 +15,11 @@ from ayon_core.pipeline.publish.lib import (
replace_with_published_scene_path
)
from ayon_core.pipeline.publish import KnownPublishError
from ayon_core.hosts.max.api.lib import (
from ayon_max.api.lib import (
get_current_renderer,
get_multipass_setting
)
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_rendersettings import RenderSettings
from openpype_modules.deadline import abstract_submit_deadline
from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo
@ -205,11 +205,11 @@ class MaxSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline,
def _use_published_name(self, data, project_settings):
# Not all hosts can import these modules.
from ayon_core.hosts.max.api.lib import (
from ayon_max.api.lib import (
get_current_renderer,
get_multipass_setting
)
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_rendersettings import RenderSettings
instance = self._instance
job_info = copy.deepcopy(self.job_info)

View file

@ -558,7 +558,7 @@ class ExtractBurninProfile(BaseSettingsModel):
_layout = "expanded"
product_types: list[str] = SettingsField(
default_factory=list,
title="Produt types"
title="Product types"
)
hosts: list[str] = SettingsField(
default_factory=list,

View file

@ -20,7 +20,7 @@ from pymxs import runtime as rt
JSON_PREFIX = "JSON::"
log = logging.getLogger("ayon_core.hosts.max")
log = logging.getLogger("ayon_max")
def get_main_window():

View file

@ -6,7 +6,7 @@ import os
from pymxs import runtime as rt
from ayon_core.hosts.max.api.lib import get_current_renderer
from ayon_max.api.lib import get_current_renderer
from ayon_core.pipeline import get_current_project_name
from ayon_core.settings import get_project_settings

View file

@ -5,7 +5,7 @@ from ayon_core.settings import get_project_settings
from ayon_core.pipeline import get_current_project_name
from ayon_core.pipeline.context_tools import get_current_folder_entity
from ayon_core.hosts.max.api.lib import (
from ayon_max.api.lib import (
set_render_frame_range,
get_current_renderer,
get_default_render_folder

View file

@ -5,7 +5,7 @@ from qtpy import QtWidgets, QtCore
from pymxs import runtime as rt
from ayon_core.tools.utils import host_tools
from ayon_core.hosts.max.api import lib
from ayon_max.api import lib
class AYONMenu(object):

View file

@ -14,14 +14,14 @@ from ayon_core.pipeline import (
AVALON_CONTAINER_ID,
AYON_CONTAINER_ID,
)
from ayon_core.hosts.max.api.menu import AYONMenu
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.plugin import MS_CUSTOM_ATTRIB
from ayon_core.hosts.max import MAX_HOST_DIR
from ayon_max.api.menu import AYONMenu
from ayon_max.api import lib
from ayon_max.api.plugin import MS_CUSTOM_ATTRIB
from ayon_max import MAX_HOST_DIR
from pymxs import runtime as rt # noqa
log = logging.getLogger("ayon_core.hosts.max")
log = logging.getLogger("ayon_max")
PLUGINS_DIR = os.path.join(MAX_HOST_DIR, "plugins")
PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish")

View file

@ -3,7 +3,7 @@ import contextlib
from pymxs import runtime as rt
from .lib import get_max_version, render_resolution
log = logging.getLogger("ayon_core.hosts.max")
log = logging.getLogger("ayon_max")
@contextlib.contextmanager

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
"""Pre-launch to force 3ds max startup script."""
import os
from ayon_core.hosts.max import MAX_HOST_DIR
from ayon_max import MAX_HOST_DIR
from ayon_applications import PreLaunchHook, LaunchTypes

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating camera."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreateCamera(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreateCamera(plugin.MaxCreator):
label = "Camera"
product_type = "camera"
icon = "gear"
settings_category = "max"

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating raw max scene."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreateMaxScene(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreateMaxScene(plugin.MaxCreator):
label = "Max Scene"
product_type = "maxScene"
icon = "gear"
settings_category = "max"

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for model."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreateModel(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreateModel(plugin.MaxCreator):
label = "Model"
product_type = "model"
icon = "gear"
settings_category = "max"

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating pointcache alembics."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreatePointCache(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreatePointCache(plugin.MaxCreator):
label = "Point Cache"
product_type = "pointcache"
icon = "gear"
settings_category = "max"

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating point cloud."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreatePointCloud(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreatePointCloud(plugin.MaxCreator):
label = "Point Cloud"
product_type = "pointcloud"
icon = "gear"
settings_category = "max"

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating camera."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreateRedshiftProxy(plugin.MaxCreator):
@ -8,3 +8,5 @@ class CreateRedshiftProxy(plugin.MaxCreator):
label = "Redshift Proxy"
product_type = "redshiftproxy"
icon = "gear"
settings_category = "max"

View file

@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating camera."""
import os
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
from ayon_core.lib import BoolDef
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_rendersettings import RenderSettings
class CreateRender(plugin.MaxCreator):
@ -13,6 +13,8 @@ class CreateRender(plugin.MaxCreator):
product_type = "maxrender"
icon = "gear"
settings_category = "max"
def create(self, product_name, instance_data, pre_create_data):
from pymxs import runtime as rt
file = rt.maxFileName

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating review in Max."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
from ayon_core.lib import BoolDef, EnumDef, NumberDef
@ -12,6 +12,8 @@ class CreateReview(plugin.MaxCreator):
product_type = "review"
icon = "video-camera"
settings_category = "max"
review_width = 1920
review_height = 1080
percentSize = 100

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating TyCache."""
from ayon_core.hosts.max.api import plugin
from ayon_max.api import plugin
class CreateTyCache(plugin.MaxCreator):
@ -9,3 +9,5 @@ class CreateTyCache(plugin.MaxCreator):
label = "TyCache"
product_type = "tycache"
icon = "gear"
settings_category = "max"

View file

@ -3,8 +3,8 @@
import ayon_api
from ayon_core.pipeline import CreatedInstance, AutoCreator
from ayon_core.hosts.max.api import plugin
from ayon_core.hosts.max.api.lib import read, imprint
from ayon_max.api import plugin
from ayon_max.api.lib import read, imprint
from pymxs import runtime as rt
@ -17,6 +17,8 @@ class CreateWorkfile(plugin.MaxCreatorBase, AutoCreator):
default_variant = "Main"
settings_category = "max"
def create(self):
variant = self.default_variant
current_instance = next(

View file

@ -1,12 +1,12 @@
import os
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
object_transform_set
)
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,

View file

@ -1,14 +1,14 @@
import os
from qtpy import QtWidgets, QtCore
from ayon_core.lib.attribute_definitions import EnumDef
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
object_transform_set,
is_headless
)
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise, get_previous_loaded_object,
update_custom_attribute_data,
remove_container_data

View file

@ -1,12 +1,12 @@
import os
from ayon_core.pipeline import load, get_representation_path
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
remove_container_data
)
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
maintained_selection, unique_namespace
)

View file

@ -1,17 +1,17 @@
import os
from ayon_core.pipeline import load, get_representation_path
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise, get_previous_loaded_object,
update_custom_attribute_data,
remove_container_data
)
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
object_transform_set
)
from ayon_core.hosts.max.api.lib import maintained_selection
from ayon_max.api.lib import maintained_selection
class FbxModelLoader(load.LoaderPlugin):

View file

@ -1,13 +1,13 @@
import os
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
maintained_selection,
object_transform_set
)
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,

View file

@ -2,15 +2,15 @@ import os
from pymxs import runtime as rt
from ayon_core.pipeline.load import LoadError
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
object_transform_set,
get_plugins
)
from ayon_core.hosts.max.api.lib import maintained_selection
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.lib import maintained_selection
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,

View file

@ -6,9 +6,9 @@ Because of limited api, alembics can be only loaded, but not easily updated.
"""
import os
from ayon_core.pipeline import load, get_representation_path
from ayon_core.hosts.max.api import lib, maintained_selection
from ayon_core.hosts.max.api.lib import unique_namespace
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api import lib, maintained_selection
from ayon_max.api.lib import unique_namespace
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
remove_container_data

View file

@ -1,20 +1,20 @@
import os
from ayon_core.pipeline import load, get_representation_path
from ayon_core.pipeline.load import LoadError
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,
remove_container_data
)
from ayon_core.hosts.max.api.lib import (
from ayon_max.api.lib import (
unique_namespace,
get_namespace,
object_transform_set,
get_plugins
)
from ayon_core.hosts.max.api import lib
from ayon_max.api import lib
from pymxs import runtime as rt

View file

@ -1,11 +1,11 @@
import os
from ayon_core.hosts.max.api import lib, maintained_selection
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib, maintained_selection
from ayon_max.api.lib import (
unique_namespace,
)
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,

View file

@ -6,14 +6,14 @@ from ayon_core.pipeline import (
get_representation_path
)
from ayon_core.pipeline.load import LoadError
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
update_custom_attribute_data,
get_previous_loaded_object,
remove_container_data
)
from ayon_core.hosts.max.api import lib
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib
from ayon_max.api.lib import (
unique_namespace,
get_plugins
)

View file

@ -1,10 +1,10 @@
import os
from ayon_core.hosts.max.api import lib, maintained_selection
from ayon_core.hosts.max.api.lib import (
from ayon_max.api import lib, maintained_selection
from ayon_max.api.lib import (
unique_namespace,
)
from ayon_core.hosts.max.api.pipeline import (
from ayon_max.api.pipeline import (
containerise,
get_previous_loaded_object,
update_custom_attribute_data,

View file

@ -5,10 +5,10 @@ import pyblish.api
from pymxs import runtime as rt
from ayon_core.pipeline.publish import KnownPublishError
from ayon_core.hosts.max.api import colorspace
from ayon_core.hosts.max.api.lib import get_max_version, get_current_renderer
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_core.hosts.max.api.lib_renderproducts import RenderProducts
from ayon_max.api import colorspace
from ayon_max.api.lib import get_max_version, get_current_renderer
from ayon_max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_renderproducts import RenderProducts
class CollectRender(pyblish.api.InstancePlugin):

View file

@ -4,7 +4,7 @@ import pyblish.api
from pymxs import runtime as rt
from ayon_core.lib import BoolDef
from ayon_core.hosts.max.api.lib import get_max_version
from ayon_max.api.lib import get_max_version
from ayon_core.pipeline.publish import (
AYONPyblishPluginMixin,
KnownPublishError

View file

@ -41,8 +41,8 @@ import os
import pyblish.api
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_core.hosts.max.api.lib import suspended_refresh
from ayon_max.api import maintained_selection
from ayon_max.api.lib import suspended_refresh
from ayon_core.lib import BoolDef

View file

@ -2,8 +2,8 @@ import os
import pyblish.api
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_core.hosts.max.api.lib import convert_unit_scale
from ayon_max.api import maintained_selection
from ayon_max.api.lib import convert_unit_scale
class ExtractModelFbx(publish.Extractor, OptionalPyblishPluginMixin):

View file

@ -15,6 +15,8 @@ class ExtractMaxSceneRaw(publish.Extractor, OptionalPyblishPluginMixin):
families = ["camera", "maxScene", "model"]
optional = True
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
return

View file

@ -2,8 +2,8 @@ import os
import pyblish.api
from ayon_core.pipeline import publish, OptionalPyblishPluginMixin
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_core.hosts.max.api.lib import suspended_refresh
from ayon_max.api import maintained_selection
from ayon_max.api.lib import suspended_refresh
from ayon_core.pipeline.publish import KnownPublishError
@ -18,6 +18,8 @@ class ExtractModelObj(publish.Extractor, OptionalPyblishPluginMixin):
families = ["model"]
optional = True
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
return

View file

@ -3,7 +3,7 @@ import os
import pyblish.api
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_max.api import maintained_selection
from ayon_core.pipeline import OptionalPyblishPluginMixin, publish
@ -17,6 +17,8 @@ class ExtractModelUSD(publish.Extractor,
families = ["model"]
optional = True
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
return

View file

@ -3,7 +3,7 @@ import os
import pyblish.api
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_max.api import maintained_selection
from ayon_core.pipeline import publish

View file

@ -2,7 +2,7 @@ import os
import pyblish.api
from ayon_core.pipeline import publish
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_max.api import maintained_selection
class ExtractRedshiftProxy(publish.Extractor):

View file

@ -1,7 +1,7 @@
import os
import pyblish.api
from ayon_core.pipeline import publish
from ayon_core.hosts.max.api.preview_animation import (
from ayon_max.api.preview_animation import (
render_preview_animation
)

View file

@ -1,7 +1,7 @@
import os
import pyblish.api
from ayon_core.pipeline import publish
from ayon_core.hosts.max.api.preview_animation import render_preview_animation
from ayon_max.api.preview_animation import render_preview_animation
class ExtractThumbnail(publish.Extractor):

View file

@ -3,7 +3,7 @@ import os
import pyblish.api
from pymxs import runtime as rt
from ayon_core.hosts.max.api import maintained_selection
from ayon_max.api import maintained_selection
from ayon_core.pipeline import publish

View file

@ -5,8 +5,8 @@ import tempfile
from pymxs import runtime as rt
from ayon_core.lib import run_subprocess
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_core.hosts.max.api.lib_renderproducts import RenderProducts
from ayon_max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_renderproducts import RenderProducts
class SaveScenesForCamera(pyblish.api.InstancePlugin):

View file

@ -61,6 +61,8 @@ class ValidateAttributes(OptionalPyblishPluginMixin,
actions = [RepairContextAction]
optional = True
settings_category = "max"
@classmethod
def get_invalid(cls, context):
attributes = json.loads(

View file

@ -6,7 +6,7 @@ from ayon_core.pipeline.publish import (
OptionalPyblishPluginMixin,
PublishValidationError
)
from ayon_core.hosts.max.api.action import SelectInvalidAction
from ayon_max.api.action import SelectInvalidAction
class ValidateCameraAttributes(OptionalPyblishPluginMixin,
@ -23,6 +23,8 @@ class ValidateCameraAttributes(OptionalPyblishPluginMixin,
actions = [SelectInvalidAction, RepairAction]
optional = True
settings_category = "max"
DEFAULTS = ["fov", "nearrange", "farrange",
"nearclip", "farclip"]
CAM_TYPE = ["Freecamera", "Targetcamera",

View file

@ -10,7 +10,7 @@ from ayon_core.pipeline.publish import (
PublishValidationError,
KnownPublishError
)
from ayon_core.hosts.max.api.lib import get_frame_range, set_timeline
from ayon_max.api.lib import get_frame_range, set_timeline
class ValidateFrameRange(pyblish.api.InstancePlugin,
@ -36,6 +36,8 @@ class ValidateFrameRange(pyblish.api.InstancePlugin,
optional = True
actions = [RepairAction]
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
self.log.debug("Skipping Validate Frame Range...")

View file

@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
PublishValidationError,
OptionalPyblishPluginMixin
)
from ayon_core.hosts.max.api.action import SelectInvalidAction
from ayon_max.api.action import SelectInvalidAction
from pymxs import runtime as rt
@ -27,6 +27,8 @@ class ValidateInstanceInContext(pyblish.api.InstancePlugin,
hosts = ["max"]
actions = [SelectInvalidAction, RepairAction]
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
return

View file

@ -9,7 +9,7 @@ from ayon_core.pipeline.publish import (
OptionalPyblishPluginMixin,
PublishValidationError
)
from ayon_core.hosts.max.api.lib import get_plugins
from ayon_max.api.lib import get_plugins
class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
@ -25,6 +25,8 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
optional = True
actions = [RepairAction]
settings_category = "max"
family_plugins_mapping = []
@classmethod

View file

@ -1,6 +1,6 @@
import pyblish.api
from ayon_core.hosts.max.api.action import SelectInvalidAction
from ayon_max.api.action import SelectInvalidAction
from ayon_core.pipeline.publish import (
ValidateMeshOrder,
OptionalPyblishPluginMixin,
@ -30,6 +30,8 @@ class ValidateMeshHasUVs(pyblish.api.InstancePlugin,
actions = [SelectInvalidAction]
optional = True
settings_category = "max"
@classmethod
def get_invalid(cls, instance):
meshes = [member for member in instance.data["members"]

View file

@ -4,7 +4,7 @@ import re
import pyblish.api
from ayon_core.hosts.max.api.action import SelectInvalidAction
from ayon_max.api.action import SelectInvalidAction
from ayon_core.pipeline.publish import (
OptionalPyblishPluginMixin,
@ -39,6 +39,9 @@ class ValidateModelName(pyblish.api.InstancePlugin,
families = ["model"]
label = "Validate Model Name"
actions = [SelectInvalidAction]
settings_category = "max"
# defined by settings
regex = r"(.*)_(?P<subset>.*)_(GEO)"
# cache

View file

@ -5,7 +5,7 @@ from ayon_core.pipeline import (
PublishValidationError,
OptionalPyblishPluginMixin
)
from ayon_core.hosts.max.api.action import SelectInvalidAction
from ayon_max.api.action import SelectInvalidAction
def get_invalid_keys(obj):
@ -39,6 +39,8 @@ class ValidateNoAnimation(pyblish.api.InstancePlugin,
label = "Validate No Animation"
actions = [SelectInvalidAction]
settings_category = "max"
def process(self, instance):
if not self.is_active(instance.data):
return

View file

@ -4,7 +4,7 @@ from ayon_core.pipeline import (
PublishValidationError,
OptionalPyblishPluginMixin)
from ayon_core.pipeline.publish import RepairAction
from ayon_core.hosts.max.api.lib import get_current_renderer
from ayon_max.api.lib import get_current_renderer
from pymxs import runtime as rt

View file

@ -3,7 +3,7 @@ import pyblish.api
from ayon_core.pipeline import PublishValidationError
from pymxs import runtime as rt
from ayon_core.pipeline.publish import RepairAction
from ayon_core.hosts.max.api.lib import get_current_renderer
from ayon_max.api.lib import get_current_renderer
class ValidateRendererRedshiftProxy(pyblish.api.InstancePlugin):

View file

@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
PublishValidationError,
OptionalPyblishPluginMixin
)
from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
from ayon_max.api.lib_rendersettings import RenderSettings
class ValidateRenderPasses(OptionalPyblishPluginMixin,
@ -21,6 +21,8 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
label = "Validate Render Passes"
actions = [RepairAction]
settings_category = "max"
def process(self, instance):
invalid = self.get_invalid(instance)
if invalid:

View file

@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import (
RepairAction,
PublishValidationError
)
from ayon_core.hosts.max.api.lib import (
from ayon_max.api.lib import (
reset_scene_resolution,
imprint
)

View file

@ -1,15 +1,13 @@
# -*- coding: utf-8 -*-
import os
import sys
from ayon_max.api import MaxHost
from ayon_core.pipeline import install_host
# this might happen in some 3dsmax version where PYTHONPATH isn't added
# to sys.path automatically
for path in os.environ["PYTHONPATH"].split(os.pathsep):
if path and path not in sys.path:
sys.path.append(path)
from ayon_core.hosts.max.api import MaxHost
from ayon_core.pipeline import install_host
host = MaxHost()
install_host(host)

View file

@ -1,3 +1,9 @@
name = "max"
title = "Max"
version = "0.1.7"
version = "0.2.0"
client_dir = "ayon_max"
ayon_required_addons = {
"core": ">0.3.2",
}
ayon_compatible_addons = {}