.*)_(.*)_SHD",
+ title="Validation regex"
+ )
class ValidateAttributesModel(BaseSettingsModel):
- enabled: bool = Field(title="ValidateAttributes")
- attributes: str = Field(
+ enabled: bool = SettingsField(title="ValidateAttributes")
+ attributes: str = SettingsField(
"{}", title="Attributes", widget="textarea")
@validator("attributes")
@@ -184,46 +190,50 @@ class ValidateAttributesModel(BaseSettingsModel):
class ValidateLoadedPluginModel(BaseSettingsModel):
- enabled: bool = Field(title="ValidateLoadedPlugin")
- optional: bool = Field(title="Optional")
- whitelist_native_plugins: bool = Field(
+ enabled: bool = SettingsField(title="ValidateLoadedPlugin")
+ optional: bool = SettingsField(title="Optional")
+ whitelist_native_plugins: bool = SettingsField(
title="Whitelist Maya Native Plugins"
)
- authorized_plugins: list[str] = Field(
+ authorized_plugins: list[str] = SettingsField(
default_factory=list, title="Authorized plugins"
)
class ValidateMayaUnitsModel(BaseSettingsModel):
- enabled: bool = Field(title="ValidateMayaUnits")
- optional: bool = Field(title="Optional")
- validate_linear_units: bool = Field(title="Validate linear units")
- linear_units: str = Field(
+ enabled: bool = SettingsField(title="ValidateMayaUnits")
+ optional: bool = SettingsField(title="Optional")
+ validate_linear_units: bool = SettingsField(title="Validate linear units")
+ linear_units: str = SettingsField(
enum_resolver=linear_unit_enum, title="Linear Units"
)
- validate_angular_units: bool = Field(title="Validate angular units")
- angular_units: str = Field(
+ validate_angular_units: bool = SettingsField(
+ title="Validate angular units"
+ )
+ angular_units: str = SettingsField(
enum_resolver=angular_unit_enum, title="Angular units"
)
- validate_fps: bool = Field(title="Validate fps")
+ validate_fps: bool = SettingsField(title="Validate fps")
class ValidateUnrealStaticMeshNameModel(BaseSettingsModel):
- enabled: bool = Field(title="ValidateUnrealStaticMeshName")
- optional: bool = Field(title="Optional")
- validate_mesh: bool = Field(title="Validate mesh names")
- validate_collision: bool = Field(title="Validate collison names")
+ enabled: bool = SettingsField(title="ValidateUnrealStaticMeshName")
+ optional: bool = SettingsField(title="Optional")
+ validate_mesh: bool = SettingsField(title="Validate mesh names")
+ validate_collision: bool = SettingsField(title="Validate collison names")
class ValidateCycleErrorModel(BaseSettingsModel):
- enabled: bool = Field(title="ValidateCycleError")
- optional: bool = Field(title="Optional")
- families: list[str] = Field(default_factory=list, title="Families")
+ enabled: bool = SettingsField(title="ValidateCycleError")
+ optional: bool = SettingsField(title="Optional")
+ families: list[str] = SettingsField(
+ default_factory=list, title="Families"
+ )
class ValidatePluginPathAttributesAttrModel(BaseSettingsModel):
- name: str = Field(title="Node type")
- value: str = Field(title="Attribute")
+ name: str = SettingsField(title="Node type")
+ value: str = SettingsField(title="Attribute")
class ValidatePluginPathAttributesModel(BaseSettingsModel):
@@ -234,9 +244,9 @@ class ValidatePluginPathAttributesModel(BaseSettingsModel):
"""
enabled: bool = True
- optional: bool = Field(title="Optional")
- active: bool = Field(title="Active")
- attribute: list[ValidatePluginPathAttributesAttrModel] = Field(
+ optional: bool = SettingsField(title="Optional")
+ active: bool = SettingsField(title="Active")
+ attribute: list[ValidatePluginPathAttributesAttrModel] = SettingsField(
default_factory=list,
title="File Attribute"
)
@@ -250,66 +260,68 @@ class ValidatePluginPathAttributesModel(BaseSettingsModel):
# Validate Render Setting
class RendererAttributesModel(BaseSettingsModel):
_layout = "compact"
- type: str = Field(title="Type")
- value: str = Field(title="Value")
+ type: str = SettingsField(title="Type")
+ value: str = SettingsField(title="Value")
class ValidateRenderSettingsModel(BaseSettingsModel):
- arnold_render_attributes: list[RendererAttributesModel] = Field(
+ arnold_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Arnold Render Attributes")
- vray_render_attributes: list[RendererAttributesModel] = Field(
+ vray_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="VRay Render Attributes")
- redshift_render_attributes: list[RendererAttributesModel] = Field(
+ redshift_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Redshift Render Attributes")
- renderman_render_attributes: list[RendererAttributesModel] = Field(
+ renderman_render_attributes: list[RendererAttributesModel] = SettingsField(
default_factory=list, title="Renderman Render Attributes")
class BasicValidateModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- optional: bool = Field(title="Optional")
- active: bool = Field(title="Active")
+ enabled: bool = SettingsField(title="Enabled")
+ optional: bool = SettingsField(title="Optional")
+ active: bool = SettingsField(title="Active")
class ValidateCameraContentsModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- optional: bool = Field(title="Optional")
- validate_shapes: bool = Field(title="Validate presence of shapes")
+ enabled: bool = SettingsField(title="Enabled")
+ optional: bool = SettingsField(title="Optional")
+ validate_shapes: bool = SettingsField(title="Validate presence of shapes")
class ExtractProxyAlembicModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- families: list[str] = Field(
+ enabled: bool = SettingsField(title="Enabled")
+ families: list[str] = SettingsField(
default_factory=list,
title="Families")
class ExtractAlembicModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- families: list[str] = Field(
+ enabled: bool = SettingsField(title="Enabled")
+ families: list[str] = SettingsField(
default_factory=list,
title="Families")
class ExtractObjModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- optional: bool = Field(title="Optional")
+ enabled: bool = SettingsField(title="Enabled")
+ optional: bool = SettingsField(title="Optional")
class ExtractMayaSceneRawModel(BaseSettingsModel):
"""Add loaded instances to those published families:"""
- enabled: bool = Field(title="ExtractMayaSceneRaw")
- add_for_families: list[str] = Field(default_factory=list, title="Families")
+ enabled: bool = SettingsField(title="ExtractMayaSceneRaw")
+ add_for_families: list[str] = SettingsField(
+ default_factory=list, title="Families"
+ )
class ExtractCameraAlembicModel(BaseSettingsModel):
"""
List of attributes that will be added to the baked alembic camera. Needs to be written in python list syntax.
"""
- enabled: bool = Field(title="ExtractCameraAlembic")
- optional: bool = Field(title="Optional")
- active: bool = Field(title="Active")
- bake_attributes: str = Field(
+ enabled: bool = SettingsField(title="ExtractCameraAlembic")
+ optional: bool = SettingsField(title="Optional")
+ active: bool = SettingsField(title="Active")
+ bake_attributes: str = SettingsField(
"[]", title="Base Attributes", widget="textarea"
)
@@ -332,17 +344,19 @@ class ExtractCameraAlembicModel(BaseSettingsModel):
class ExtractGLBModel(BaseSettingsModel):
enabled: bool = True
- active: bool = Field(title="Active")
- ogsfx_path: str = Field(title="GLSL Shader Directory")
+ active: bool = SettingsField(title="Active")
+ ogsfx_path: str = SettingsField(title="GLSL Shader Directory")
class ExtractLookArgsModel(BaseSettingsModel):
- argument: str = Field(title="Argument")
- parameters: list[str] = Field(default_factory=list, title="Parameters")
+ argument: str = SettingsField(title="Argument")
+ parameters: list[str] = SettingsField(
+ default_factory=list, title="Parameters"
+ )
class ExtractLookModel(BaseSettingsModel):
- maketx_arguments: list[ExtractLookArgsModel] = Field(
+ maketx_arguments: list[ExtractLookArgsModel] = SettingsField(
default_factory=list,
title="Extra arguments for maketx command line"
)
@@ -350,423 +364,437 @@ class ExtractLookModel(BaseSettingsModel):
class ExtractGPUCacheModel(BaseSettingsModel):
enabled: bool = True
- families: list[str] = Field(default_factory=list, title="Families")
- step: float = Field(1.0, ge=1.0, title="Step")
- stepSave: int = Field(1, ge=1, title="Step Save")
- optimize: bool = Field(title="Optimize Hierarchy")
- optimizationThreshold: int = Field(1, ge=1, title="Optimization Threshold")
- optimizeAnimationsForMotionBlur: bool = Field(
+ families: list[str] = SettingsField(default_factory=list, title="Families")
+ step: float = SettingsField(1.0, ge=1.0, title="Step")
+ stepSave: int = SettingsField(1, ge=1, title="Step Save")
+ optimize: bool = SettingsField(title="Optimize Hierarchy")
+ optimizationThreshold: int = SettingsField(
+ 1, ge=1, title="Optimization Threshold"
+ )
+ optimizeAnimationsForMotionBlur: bool = SettingsField(
title="Optimize Animations For Motion Blur"
)
- writeMaterials: bool = Field(title="Write Materials")
- useBaseTessellation: bool = Field(title="User Base Tesselation")
+ writeMaterials: bool = SettingsField(title="Write Materials")
+ useBaseTessellation: bool = SettingsField(title="User Base Tesselation")
class PublishersModel(BaseSettingsModel):
- CollectMayaRender: CollectMayaRenderModel = Field(
+ CollectMayaRender: CollectMayaRenderModel = SettingsField(
default_factory=CollectMayaRenderModel,
title="Collect Render Layers",
section="Collectors"
)
- CollectFbxAnimation: CollectFbxAnimationModel = Field(
+ CollectFbxAnimation: CollectFbxAnimationModel = SettingsField(
default_factory=CollectFbxAnimationModel,
title="Collect FBX Animation",
)
- CollectFbxCamera: CollectFbxCameraModel = Field(
+ CollectFbxCamera: CollectFbxCameraModel = SettingsField(
default_factory=CollectFbxCameraModel,
title="Collect Camera for FBX export",
)
- CollectGLTF: CollectGLTFModel = Field(
+ CollectGLTF: CollectGLTFModel = SettingsField(
default_factory=CollectGLTFModel,
title="Collect Assets for GLB/GLTF export"
)
- ValidateInstanceInContext: BasicValidateModel = Field(
+ ValidateInstanceInContext: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Instance In Context",
section="Validators"
)
- ValidateContainers: BasicValidateModel = Field(
+ ValidateContainers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Containers"
)
- ValidateFrameRange: ValidateFrameRangeModel = Field(
+ ValidateFrameRange: ValidateFrameRangeModel = SettingsField(
default_factory=ValidateFrameRangeModel,
title="Validate Frame Range"
)
- ValidateShaderName: ValidateShaderNameModel = Field(
+ ValidateShaderName: ValidateShaderNameModel = SettingsField(
default_factory=ValidateShaderNameModel,
title="Validate Shader Name"
)
- ValidateShadingEngine: BasicValidateModel = Field(
+ ValidateShadingEngine: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Look Shading Engine Naming"
)
- ValidateMayaColorSpace: BasicValidateModel = Field(
+ ValidateMayaColorSpace: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Colorspace"
)
- ValidateAttributes: ValidateAttributesModel = Field(
+ ValidateAttributes: ValidateAttributesModel = SettingsField(
default_factory=ValidateAttributesModel,
title="Validate Attributes"
)
- ValidateLoadedPlugin: ValidateLoadedPluginModel = Field(
+ ValidateLoadedPlugin: ValidateLoadedPluginModel = SettingsField(
default_factory=ValidateLoadedPluginModel,
title="Validate Loaded Plugin"
)
- ValidateMayaUnits: ValidateMayaUnitsModel = Field(
+ ValidateMayaUnits: ValidateMayaUnitsModel = SettingsField(
default_factory=ValidateMayaUnitsModel,
title="Validate Maya Units"
)
- ValidateUnrealStaticMeshName: ValidateUnrealStaticMeshNameModel = Field(
- default_factory=ValidateUnrealStaticMeshNameModel,
- title="Validate Unreal Static Mesh Name"
+ ValidateUnrealStaticMeshName: ValidateUnrealStaticMeshNameModel = (
+ SettingsField(
+ default_factory=ValidateUnrealStaticMeshNameModel,
+ title="Validate Unreal Static Mesh Name"
+ )
)
- ValidateCycleError: ValidateCycleErrorModel = Field(
+ ValidateCycleError: ValidateCycleErrorModel = SettingsField(
default_factory=ValidateCycleErrorModel,
title="Validate Cycle Error"
)
- ValidatePluginPathAttributes: ValidatePluginPathAttributesModel = Field(
- default_factory=ValidatePluginPathAttributesModel,
- title="Plug-in Path Attributes"
+ ValidatePluginPathAttributes: ValidatePluginPathAttributesModel = (
+ SettingsField(
+ default_factory=ValidatePluginPathAttributesModel,
+ title="Plug-in Path Attributes"
+ )
)
- ValidateRenderSettings: ValidateRenderSettingsModel = Field(
+ ValidateRenderSettings: ValidateRenderSettingsModel = SettingsField(
default_factory=ValidateRenderSettingsModel,
title="Validate Render Settings"
)
- ValidateResolution: BasicValidateModel = Field(
+ ValidateResolution: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Resolution Setting"
)
- ValidateCurrentRenderLayerIsRenderable: BasicValidateModel = Field(
- default_factory=BasicValidateModel,
- title="Validate Current Render Layer Has Renderable Camera"
+ ValidateCurrentRenderLayerIsRenderable: BasicValidateModel = (
+ SettingsField(
+ default_factory=BasicValidateModel,
+ title="Validate Current Render Layer Has Renderable Camera"
+ )
)
- ValidateGLSLMaterial: BasicValidateModel = Field(
+ ValidateGLSLMaterial: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate GLSL Material"
)
- ValidateGLSLPlugin: BasicValidateModel = Field(
+ ValidateGLSLPlugin: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate GLSL Plugin"
)
- ValidateRenderImageRule: BasicValidateModel = Field(
+ ValidateRenderImageRule: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Image Rule (Workspace)"
)
- ValidateRenderNoDefaultCameras: BasicValidateModel = Field(
+ ValidateRenderNoDefaultCameras: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Default Cameras Renderable"
)
- ValidateRenderSingleCamera: BasicValidateModel = Field(
+ ValidateRenderSingleCamera: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Single Camera "
)
- ValidateRenderLayerAOVs: BasicValidateModel = Field(
+ ValidateRenderLayerAOVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Render Passes/AOVs Are Registered"
)
- ValidateStepSize: BasicValidateModel = Field(
+ ValidateStepSize: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Step Size"
)
- ValidateVRayDistributedRendering: BasicValidateModel = Field(
+ ValidateVRayDistributedRendering: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Distributed Rendering"
)
- ValidateVrayReferencedAOVs: BasicValidateModel = Field(
+ ValidateVrayReferencedAOVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Referenced AOVs"
)
- ValidateVRayTranslatorEnabled: BasicValidateModel = Field(
+ ValidateVRayTranslatorEnabled: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Translator Settings"
)
- ValidateVrayProxy: BasicValidateModel = Field(
+ ValidateVrayProxy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Proxy Settings"
)
- ValidateVrayProxyMembers: BasicValidateModel = Field(
+ ValidateVrayProxyMembers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="VRay Proxy Members"
)
- ValidateYetiRenderScriptCallbacks: BasicValidateModel = Field(
+ ValidateYetiRenderScriptCallbacks: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Render Script Callbacks"
)
- ValidateYetiRigCacheState: BasicValidateModel = Field(
+ ValidateYetiRigCacheState: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Cache State"
)
- ValidateYetiRigInputShapesInInstance: BasicValidateModel = Field(
+ ValidateYetiRigInputShapesInInstance: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Input Shapes In Instance"
)
- ValidateYetiRigSettings: BasicValidateModel = Field(
+ ValidateYetiRigSettings: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Yeti Rig Settings"
)
# Model - START
- ValidateModelName: ValidateModelNameModel = Field(
+ ValidateModelName: ValidateModelNameModel = SettingsField(
default_factory=ValidateModelNameModel,
title="Validate Model Name",
section="Model",
)
- ValidateModelContent: ValidateModelContentModel = Field(
+ ValidateModelContent: ValidateModelContentModel = SettingsField(
default_factory=ValidateModelContentModel,
title="Validate Model Content",
)
- ValidateTransformNamingSuffix: ValidateTransformNamingSuffixModel = Field(
- default_factory=ValidateTransformNamingSuffixModel,
- title="Validate Transform Naming Suffix",
+ ValidateTransformNamingSuffix: ValidateTransformNamingSuffixModel = (
+ SettingsField(
+ default_factory=ValidateTransformNamingSuffixModel,
+ title="Validate Transform Naming Suffix",
+ )
)
- ValidateColorSets: BasicValidateModel = Field(
+ ValidateColorSets: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Color Sets",
)
- ValidateMeshHasOverlappingUVs: BasicValidateModel = Field(
+ ValidateMeshHasOverlappingUVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Has Overlapping UVs",
)
- ValidateMeshArnoldAttributes: BasicValidateModel = Field(
+ ValidateMeshArnoldAttributes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Arnold Attributes",
)
- ValidateMeshShaderConnections: BasicValidateModel = Field(
+ ValidateMeshShaderConnections: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Shader Connections",
)
- ValidateMeshSingleUVSet: BasicValidateModel = Field(
+ ValidateMeshSingleUVSet: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Single UV Set",
)
- ValidateMeshHasUVs: BasicValidateModel = Field(
+ ValidateMeshHasUVs: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Has UVs",
)
- ValidateMeshLaminaFaces: BasicValidateModel = Field(
+ ValidateMeshLaminaFaces: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Lamina Faces",
)
- ValidateMeshNgons: BasicValidateModel = Field(
+ ValidateMeshNgons: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Ngons",
)
- ValidateMeshNonManifold: BasicValidateModel = Field(
+ ValidateMeshNonManifold: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Non-Manifold",
)
- ValidateMeshNoNegativeScale: BasicValidateModel = Field(
+ ValidateMeshNoNegativeScale: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh No Negative Scale",
)
- ValidateMeshNonZeroEdgeLength: BasicValidateModel = Field(
+ ValidateMeshNonZeroEdgeLength: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Edge Length Non Zero",
)
- ValidateMeshNormalsUnlocked: BasicValidateModel = Field(
+ ValidateMeshNormalsUnlocked: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Normals Unlocked",
)
- ValidateMeshUVSetMap1: ValidateMeshUVSetMap1Model = Field(
+ ValidateMeshUVSetMap1: ValidateMeshUVSetMap1Model = SettingsField(
default_factory=ValidateMeshUVSetMap1Model,
title="Validate Mesh UV Set Map 1",
)
- ValidateMeshVerticesHaveEdges: BasicValidateModel = Field(
+ ValidateMeshVerticesHaveEdges: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Mesh Vertices Have Edges",
)
- ValidateNoAnimation: ValidateNoAnimationModel = Field(
+ ValidateNoAnimation: ValidateNoAnimationModel = SettingsField(
default_factory=ValidateNoAnimationModel,
title="Validate No Animation",
)
- ValidateNoNamespace: BasicValidateModel = Field(
+ ValidateNoNamespace: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Namespace",
)
- ValidateNoNullTransforms: BasicValidateModel = Field(
+ ValidateNoNullTransforms: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Null Transforms",
)
- ValidateNoUnknownNodes: BasicValidateModel = Field(
+ ValidateNoUnknownNodes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Unknown Nodes",
)
- ValidateNodeNoGhosting: BasicValidateModel = Field(
+ ValidateNodeNoGhosting: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Node No Ghosting",
)
- ValidateShapeDefaultNames: BasicValidateModel = Field(
+ ValidateShapeDefaultNames: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Default Names",
)
- ValidateShapeRenderStats: BasicValidateModel = Field(
+ ValidateShapeRenderStats: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Render Stats",
)
- ValidateShapeZero: BasicValidateModel = Field(
+ ValidateShapeZero: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Shape Zero",
)
- ValidateTransformZero: BasicValidateModel = Field(
+ ValidateTransformZero: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Transform Zero",
)
- ValidateUniqueNames: BasicValidateModel = Field(
+ ValidateUniqueNames: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Unique Names",
)
- ValidateNoVRayMesh: BasicValidateModel = Field(
+ ValidateNoVRayMesh: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No V-Ray Proxies (VRayMesh)",
)
- ValidateUnrealMeshTriangulated: BasicValidateModel = Field(
+ ValidateUnrealMeshTriangulated: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate if Mesh is Triangulated",
)
- ValidateAlembicVisibleOnly: BasicValidateModel = Field(
+ ValidateAlembicVisibleOnly: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Alembic Visible Node",
)
- ExtractProxyAlembic: ExtractProxyAlembicModel = Field(
+ ExtractProxyAlembic: ExtractProxyAlembicModel = SettingsField(
default_factory=ExtractProxyAlembicModel,
title="Extract Proxy Alembic",
section="Model Extractors",
)
- ExtractAlembic: ExtractAlembicModel = Field(
+ ExtractAlembic: ExtractAlembicModel = SettingsField(
default_factory=ExtractAlembicModel,
title="Extract Alembic",
)
- ExtractObj: ExtractObjModel = Field(
+ ExtractObj: ExtractObjModel = SettingsField(
default_factory=ExtractObjModel,
title="Extract OBJ"
)
# Model - END
# Rig - START
- ValidateRigContents: BasicValidateModel = Field(
+ ValidateRigContents: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Contents",
section="Rig",
)
- ValidateRigJointsHidden: BasicValidateModel = Field(
+ ValidateRigJointsHidden: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Joints Hidden",
)
- ValidateRigControllers: BasicValidateModel = Field(
+ ValidateRigControllers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Rig Controllers",
)
- ValidateAnimatedReferenceRig: BasicValidateModel = Field(
+ ValidateAnimatedReferenceRig: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animated Reference Rig",
)
- ValidateAnimationContent: BasicValidateModel = Field(
+ ValidateAnimationContent: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animation Content",
)
- ValidateOutRelatedNodeIds: BasicValidateModel = Field(
+ ValidateOutRelatedNodeIds: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Animation Out Set Related Node Ids",
)
- ValidateRigControllersArnoldAttributes: BasicValidateModel = Field(
- default_factory=BasicValidateModel,
- title="Validate Rig Controllers (Arnold Attributes)",
+ ValidateRigControllersArnoldAttributes: BasicValidateModel = (
+ SettingsField(
+ default_factory=BasicValidateModel,
+ title="Validate Rig Controllers (Arnold Attributes)",
+ )
)
- ValidateSkeletalMeshHierarchy: BasicValidateModel = Field(
+ ValidateSkeletalMeshHierarchy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeletal Mesh Top Node",
)
- ValidateSkeletonRigContents: BasicValidateModel = Field(
+ ValidateSkeletonRigContents: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Contents"
)
- ValidateSkeletonRigControllers: BasicValidateModel = Field(
+ ValidateSkeletonRigControllers: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Controllers"
)
- ValidateSkinclusterDeformerSet: BasicValidateModel = Field(
+ ValidateSkinclusterDeformerSet: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skincluster Deformer Relationships",
)
- ValidateSkeletonRigOutputIds: BasicValidateModel = Field(
+ ValidateSkeletonRigOutputIds: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Rig Output Ids"
)
- ValidateSkeletonTopGroupHierarchy: BasicValidateModel = Field(
+ ValidateSkeletonTopGroupHierarchy: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Skeleton Top Group Hierarchy",
)
- ValidateRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = Field(
+ ValidateRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = SettingsField(
default_factory=ValidateRigOutSetNodeIdsModel,
title="Validate Rig Out Set Node Ids",
)
- ValidateSkeletonRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = Field(
- default_factory=ValidateRigOutSetNodeIdsModel,
- title="Validate Skeleton Rig Out Set Node Ids",
+ ValidateSkeletonRigOutSetNodeIds: ValidateRigOutSetNodeIdsModel = (
+ SettingsField(
+ default_factory=ValidateRigOutSetNodeIdsModel,
+ title="Validate Skeleton Rig Out Set Node Ids",
+ )
)
# Rig - END
- ValidateCameraAttributes: BasicValidateModel = Field(
+ ValidateCameraAttributes: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Camera Attributes"
)
- ValidateAssemblyName: BasicValidateModel = Field(
+ ValidateAssemblyName: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Name"
)
- ValidateAssemblyNamespaces: BasicValidateModel = Field(
+ ValidateAssemblyNamespaces: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Namespaces"
)
- ValidateAssemblyModelTransforms: BasicValidateModel = Field(
+ ValidateAssemblyModelTransforms: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Assembly Model Transforms"
)
- ValidateAssRelativePaths: BasicValidateModel = Field(
+ ValidateAssRelativePaths: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Ass Relative Paths"
)
- ValidateInstancerContent: BasicValidateModel = Field(
+ ValidateInstancerContent: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Instancer Content"
)
- ValidateInstancerFrameRanges: BasicValidateModel = Field(
+ ValidateInstancerFrameRanges: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Instancer Cache Frame Ranges"
)
- ValidateNoDefaultCameras: BasicValidateModel = Field(
+ ValidateNoDefaultCameras: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate No Default Cameras"
)
- ValidateUnrealUpAxis: BasicValidateModel = Field(
+ ValidateUnrealUpAxis: BasicValidateModel = SettingsField(
default_factory=BasicValidateModel,
title="Validate Unreal Up-Axis Check"
)
- ValidateCameraContents: ValidateCameraContentsModel = Field(
+ ValidateCameraContents: ValidateCameraContentsModel = SettingsField(
default_factory=ValidateCameraContentsModel,
title="Validate Camera Content"
)
- ExtractPlayblast: ExtractPlayblastSetting = Field(
+ ExtractPlayblast: ExtractPlayblastSetting = SettingsField(
default_factory=ExtractPlayblastSetting,
title="Extract Playblast Settings",
section="Extractors"
)
- ExtractMayaSceneRaw: ExtractMayaSceneRawModel = Field(
+ ExtractMayaSceneRaw: ExtractMayaSceneRawModel = SettingsField(
default_factory=ExtractMayaSceneRawModel,
title="Maya Scene(Raw)"
)
- ExtractCameraAlembic: ExtractCameraAlembicModel = Field(
+ ExtractCameraAlembic: ExtractCameraAlembicModel = SettingsField(
default_factory=ExtractCameraAlembicModel,
title="Extract Camera Alembic"
)
- ExtractGLB: ExtractGLBModel = Field(
+ ExtractGLB: ExtractGLBModel = SettingsField(
default_factory=ExtractGLBModel,
title="Extract GLB"
)
- ExtractLook: ExtractLookModel = Field(
+ ExtractLook: ExtractLookModel = SettingsField(
default_factory=ExtractLookModel,
title="Extract Look"
)
- ExtractGPUCache: ExtractGPUCacheModel = Field(
+ ExtractGPUCache: ExtractGPUCacheModel = SettingsField(
default_factory=ExtractGPUCacheModel,
title="Extract GPU Cache",
)
diff --git a/server_addon/maya/server/settings/render_settings.py b/server_addon/maya/server/settings/render_settings.py
index 75d0994759..577049b42f 100644
--- a/server_addon/maya/server/settings/render_settings.py
+++ b/server_addon/maya/server/settings/render_settings.py
@@ -1,7 +1,5 @@
"""Providing models and values for Maya Render Settings."""
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
def aov_separators_enum():
@@ -278,22 +276,22 @@ class AdditionalOptionsModel(BaseSettingsModel):
"""Additional Option"""
_layout = "compact"
- attribute: str = Field("", title="Attribute name")
- value: str = Field("", title="Value")
+ attribute: str = SettingsField("", title="Attribute name")
+ value: str = SettingsField("", title="Value")
class ArnoldSettingsModel(BaseSettingsModel):
- image_prefix: str = Field(title="Image prefix template")
- image_format: str = Field(
+ image_prefix: str = SettingsField(title="Image prefix template")
+ image_format: str = SettingsField(
enum_resolver=arnold_image_format_enum, title="Output Image Format")
- multilayer_exr: bool = Field(title="Multilayer (exr)")
- tiled: bool = Field(title="Tiled (tif, exr)")
- aov_list: list[str] = Field(
+ multilayer_exr: bool = SettingsField(title="Multilayer (exr)")
+ tiled: bool = SettingsField(title="Tiled (tif, exr)")
+ aov_list: list[str] = SettingsField(
default_factory=list,
enum_resolver=arnold_aov_list_enum,
title="AOVs to create"
)
- additional_options: list[AdditionalOptionsModel] = Field(
+ additional_options: list[AdditionalOptionsModel] = SettingsField(
default_factory=list,
title="Additional Arnold Options",
description=(
@@ -304,25 +302,25 @@ class ArnoldSettingsModel(BaseSettingsModel):
class VraySettingsModel(BaseSettingsModel):
- image_prefix: str = Field(title="Image prefix template")
+ image_prefix: str = SettingsField(title="Image prefix template")
# engine was str because of JSON limitation (key must be string)
- engine: str = Field(
+ engine: str = SettingsField(
enum_resolver=lambda: [
{"label": "V-Ray", "value": "1"},
{"label": "V-Ray GPU", "value": "2"}
],
title="Production Engine"
)
- image_format: str = Field(
+ image_format: str = SettingsField(
enum_resolver=vray_image_output_enum,
title="Output Image Format"
)
- aov_list: list[str] = Field(
+ aov_list: list[str] = SettingsField(
default_factory=list,
enum_resolver=vray_aov_list_enum,
title="AOVs to create"
)
- additional_options: list[AdditionalOptionsModel] = Field(
+ additional_options: list[AdditionalOptionsModel] = SettingsField(
default_factory=list,
title="Additional Vray Options",
description=(
@@ -333,29 +331,29 @@ class VraySettingsModel(BaseSettingsModel):
class RedshiftSettingsModel(BaseSettingsModel):
- image_prefix: str = Field(title="Image prefix template")
+ image_prefix: str = SettingsField(title="Image prefix template")
# both engines are using the same enumerator,
# both were originally str because of JSON limitation.
- primary_gi_engine: str = Field(
+ primary_gi_engine: str = SettingsField(
enum_resolver=redshift_engine_enum,
title="Primary GI Engine"
)
- secondary_gi_engine: str = Field(
+ secondary_gi_engine: str = SettingsField(
enum_resolver=redshift_engine_enum,
title="Secondary GI Engine"
)
- image_format: str = Field(
+ image_format: str = SettingsField(
enum_resolver=redshift_image_output_enum,
title="Output Image Format"
)
- multilayer_exr: bool = Field(title="Multilayer (exr)")
- force_combine: bool = Field(title="Force combine beauty and AOVs")
- aov_list: list[str] = Field(
+ multilayer_exr: bool = SettingsField(title="Multilayer (exr)")
+ force_combine: bool = SettingsField(title="Force combine beauty and AOVs")
+ aov_list: list[str] = SettingsField(
default_factory=list,
enum_resolver=redshift_aov_list_enum,
title="AOVs to create"
)
- additional_options: list[AdditionalOptionsModel] = Field(
+ additional_options: list[AdditionalOptionsModel] = SettingsField(
default_factory=list,
title="Additional Vray Options",
description=(
@@ -397,61 +395,61 @@ def renderman_sample_filters_enum():
class RendermanSettingsModel(BaseSettingsModel):
- image_prefix: str = Field(
+ image_prefix: str = SettingsField(
"", title="Image prefix template")
- image_dir: str = Field(
+ image_dir: str = SettingsField(
"", title="Image Output Directory")
- display_filters: list[str] = Field(
+ display_filters: list[str] = SettingsField(
default_factory=list,
title="Display Filters",
enum_resolver=renderman_display_filters
)
- imageDisplay_dir: str = Field(
+ imageDisplay_dir: str = SettingsField(
"", title="Image Display Filter Directory")
- sample_filters: list[str] = Field(
+ sample_filters: list[str] = SettingsField(
default_factory=list,
title="Sample Filters",
enum_resolver=renderman_sample_filters_enum
)
- cryptomatte_dir: str = Field(
+ cryptomatte_dir: str = SettingsField(
"", title="Cryptomatte Output Directory")
- watermark_dir: str = Field(
+ watermark_dir: str = SettingsField(
"", title="Watermark Filter Directory")
- additional_options: list[AdditionalOptionsModel] = Field(
+ additional_options: list[AdditionalOptionsModel] = SettingsField(
default_factory=list,
title="Additional Renderer Options"
)
class RenderSettingsModel(BaseSettingsModel):
- apply_render_settings: bool = Field(
+ apply_render_settings: bool = SettingsField(
title="Apply Render Settings on creation"
)
- default_render_image_folder: str = Field(
+ default_render_image_folder: str = SettingsField(
title="Default render image folder"
)
- enable_all_lights: bool = Field(
+ enable_all_lights: bool = SettingsField(
title="Include all lights in Render Setup Layers by default"
)
- aov_separator: str = Field(
+ aov_separator: str = SettingsField(
"underscore",
title="AOV Separator character",
enum_resolver=aov_separators_enum
)
- reset_current_frame: bool = Field(
+ reset_current_frame: bool = SettingsField(
title="Reset Current Frame")
- remove_aovs: bool = Field(
+ remove_aovs: bool = SettingsField(
title="Remove existing AOVs")
- arnold_renderer: ArnoldSettingsModel = Field(
+ arnold_renderer: ArnoldSettingsModel = SettingsField(
default_factory=ArnoldSettingsModel,
title="Arnold Renderer")
- vray_renderer: VraySettingsModel = Field(
+ vray_renderer: VraySettingsModel = SettingsField(
default_factory=VraySettingsModel,
title="Vray Renderer")
- redshift_renderer: RedshiftSettingsModel = Field(
+ redshift_renderer: RedshiftSettingsModel = SettingsField(
default_factory=RedshiftSettingsModel,
title="Redshift Renderer")
- renderman_renderer: RendermanSettingsModel = Field(
+ renderman_renderer: RendermanSettingsModel = SettingsField(
default_factory=RendermanSettingsModel,
title="Renderman Renderer")
diff --git a/server_addon/maya/server/settings/scriptsmenu.py b/server_addon/maya/server/settings/scriptsmenu.py
index 4ac2263f7a..d01dff1621 100644
--- a/server_addon/maya/server/settings/scriptsmenu.py
+++ b/server_addon/maya/server/settings/scriptsmenu.py
@@ -1,24 +1,24 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class ScriptsmenuSubmodel(BaseSettingsModel):
"""Item Definition"""
_isGroup = True
- type: str = Field(title="Type")
- command: str = Field(title="Command")
- sourcetype: str = Field(title="Source Type")
- title: str = Field(title="Title")
- tooltip: str = Field(title="Tooltip")
- tags: list[str] = Field(default_factory=list, title="A list of tags")
+ type: str = SettingsField(title="Type")
+ command: str = SettingsField(title="Command")
+ sourcetype: str = SettingsField(title="Source Type")
+ title: str = SettingsField(title="Title")
+ tooltip: str = SettingsField(title="Tooltip")
+ tags: list[str] = SettingsField(
+ default_factory=list, title="A list of tags"
+ )
class ScriptsmenuModel(BaseSettingsModel):
_isGroup = True
- name: str = Field(title="Menu Name")
- definition: list[ScriptsmenuSubmodel] = Field(
+ name: str = SettingsField(title="Menu Name")
+ definition: list[ScriptsmenuSubmodel] = SettingsField(
default_factory=list,
title="Menu Definition",
description="Scriptmenu Items Definition"
diff --git a/server_addon/maya/server/settings/templated_workfile_settings.py b/server_addon/maya/server/settings/templated_workfile_settings.py
index ef81b31a07..1baa2c895c 100644
--- a/server_addon/maya/server/settings/templated_workfile_settings.py
+++ b/server_addon/maya/server/settings/templated_workfile_settings.py
@@ -1,20 +1,25 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel, task_types_enum
+from ayon_server.settings import (
+ BaseSettingsModel,
+ SettingsField,
+ task_types_enum,
+)
class WorkfileBuildProfilesModel(BaseSettingsModel):
_layout = "expanded"
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- task_names: list[str] = Field(default_factory=list, title="Task names")
- path: str = Field("", title="Path to template")
+ task_names: list[str] = SettingsField(
+ default_factory=list, title="Task names"
+ )
+ path: str = SettingsField("", title="Path to template")
class TemplatedProfilesModel(BaseSettingsModel):
- profiles: list[WorkfileBuildProfilesModel] = Field(
+ profiles: list[WorkfileBuildProfilesModel] = SettingsField(
default_factory=list,
title="Profiles"
)
diff --git a/server_addon/maya/server/settings/workfile_build_settings.py b/server_addon/maya/server/settings/workfile_build_settings.py
index 2c7fea85c4..ee0b793405 100644
--- a/server_addon/maya/server/settings/workfile_build_settings.py
+++ b/server_addon/maya/server/settings/workfile_build_settings.py
@@ -1,38 +1,41 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel, task_types_enum
+from ayon_server.settings import (
+ BaseSettingsModel,
+ SettingsField,
+ task_types_enum,
+)
class ContextItemModel(BaseSettingsModel):
_layout = "expanded"
- product_name_filters: list[str] = Field(
+ product_name_filters: list[str] = SettingsField(
default_factory=list, title="Product name Filters")
- product_types: list[str] = Field(
+ product_types: list[str] = SettingsField(
default_factory=list, title="Product types")
- repre_names: list[str] = Field(
+ repre_names: list[str] = SettingsField(
default_factory=list, title="Repre Names")
- loaders: list[str] = Field(
+ loaders: list[str] = SettingsField(
default_factory=list, title="Loaders")
class WorkfileSettingModel(BaseSettingsModel):
_layout = "expanded"
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
enum_resolver=task_types_enum,
title="Task types")
- tasks: list[str] = Field(
+ tasks: list[str] = SettingsField(
default_factory=list,
title="Task names")
- current_context: list[ContextItemModel] = Field(
+ current_context: list[ContextItemModel] = SettingsField(
default_factory=list,
title="Current Context")
- linked_assets: list[ContextItemModel] = Field(
+ linked_assets: list[ContextItemModel] = SettingsField(
default_factory=list,
title="Linked Assets")
class ProfilesModel(BaseSettingsModel):
- profiles: list[WorkfileSettingModel] = Field(
+ profiles: list[WorkfileSettingModel] = SettingsField(
default_factory=list,
title="Profiles"
)
diff --git a/server_addon/muster/server/__init__.py b/server_addon/muster/server/__init__.py
deleted file mode 100644
index 2cb8943554..0000000000
--- a/server_addon/muster/server/__init__.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from typing import Type
-
-from ayon_server.addons import BaseServerAddon
-
-from .version import __version__
-from .settings import MusterSettings, DEFAULT_VALUES
-
-
-class MusterAddon(BaseServerAddon):
- name = "muster"
- version = __version__
- title = "Muster"
- settings_model: Type[MusterSettings] = MusterSettings
-
- async def get_default_settings(self):
- settings_model_cls = self.get_settings_model()
- return settings_model_cls(**DEFAULT_VALUES)
diff --git a/server_addon/muster/server/settings.py b/server_addon/muster/server/settings.py
deleted file mode 100644
index e37c762870..0000000000
--- a/server_addon/muster/server/settings.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
-
-
-class TemplatesMapping(BaseSettingsModel):
- _layout = "compact"
- name: str = Field(title="Name")
- value: int = Field(title="mapping")
-
-
-class MusterSettings(BaseSettingsModel):
- enabled: bool = True
- MUSTER_REST_URL: str = Field(
- "",
- title="Muster Rest URL",
- scope=["studio"],
- )
-
- templates_mapping: list[TemplatesMapping] = Field(
- default_factory=list,
- title="Templates mapping",
- )
-
-
-DEFAULT_VALUES = {
- "enabled": False,
- "MUSTER_REST_URL": "http://127.0.0.1:9890",
- "templates_mapping": [
- {"name": "file_layers", "value": 7},
- {"name": "mentalray", "value": 2},
- {"name": "mentalray_sf", "value": 6},
- {"name": "redshift", "value": 55},
- {"name": "renderman", "value": 29},
- {"name": "software", "value": 1},
- {"name": "software_sf", "value": 5},
- {"name": "turtle", "value": 10},
- {"name": "vector", "value": 4},
- {"name": "vray", "value": 37},
- {"name": "ffmpeg", "value": 48}
- ]
-}
diff --git a/server_addon/muster/server/version.py b/server_addon/muster/server/version.py
deleted file mode 100644
index 485f44ac21..0000000000
--- a/server_addon/muster/server/version.py
+++ /dev/null
@@ -1 +0,0 @@
-__version__ = "0.1.1"
diff --git a/server_addon/nuke/server/settings/common.py b/server_addon/nuke/server/settings/common.py
index 2bc3c9be81..e0ee2b7b3d 100644
--- a/server_addon/nuke/server/settings/common.py
+++ b/server_addon/nuke/server/settings/common.py
@@ -1,7 +1,6 @@
import json
-from pydantic import Field
from ayon_server.exceptions import BadRequestException
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.types import (
ColorRGBA_float,
ColorRGB_uint8
@@ -27,25 +26,25 @@ def validate_json_dict(value):
class Vector2d(BaseSettingsModel):
_layout = "compact"
- x: float = Field(1.0, title="X")
- y: float = Field(1.0, title="Y")
+ x: float = SettingsField(1.0, title="X")
+ y: float = SettingsField(1.0, title="Y")
class Vector3d(BaseSettingsModel):
_layout = "compact"
- x: float = Field(1.0, title="X")
- y: float = Field(1.0, title="Y")
- z: float = Field(1.0, title="Z")
+ x: float = SettingsField(1.0, title="X")
+ y: float = SettingsField(1.0, title="Y")
+ z: float = SettingsField(1.0, title="Z")
class Box(BaseSettingsModel):
_layout = "compact"
- x: float = Field(1.0, title="X")
- y: float = Field(1.0, title="Y")
- r: float = Field(1.0, title="R")
- t: float = Field(1.0, title="T")
+ x: float = SettingsField(1.0, title="X")
+ y: float = SettingsField(1.0, title="Y")
+ r: float = SettingsField(1.0, title="R")
+ t: float = SettingsField(1.0, title="T")
def formatable_knob_type_enum():
@@ -61,12 +60,12 @@ def formatable_knob_type_enum():
class Formatable(BaseSettingsModel):
_layout = "compact"
- template: str = Field(
+ template: str = SettingsField(
"",
placeholder="""{{key}} or {{key}};{{key}}""",
title="Template"
)
- to_type: str = Field(
+ to_type: str = SettingsField(
"Text",
title="To Knob type",
enum_resolver=formatable_knob_type_enum,
@@ -91,46 +90,46 @@ knob_types_enum = [
class KnobModel(BaseSettingsModel):
_layout = "expanded"
- type: str = Field(
+ type: str = SettingsField(
title="Type",
description="Switch between different knob types",
enum_resolver=lambda: knob_types_enum,
conditionalEnum=True
)
- name: str = Field(
+ name: str = SettingsField(
title="Name",
placeholder="Name"
)
- text: str = Field("", title="Value")
- color_gui: ColorRGB_uint8 = Field(
+ text: str = SettingsField("", title="Value")
+ color_gui: ColorRGB_uint8 = SettingsField(
(0, 0, 255),
title="RGB Uint8",
)
- boolean: bool = Field(False, title="Value")
- number: int = Field(0, title="Value")
- decimal_number: float = Field(0.0, title="Value")
- vector_2d: Vector2d = Field(
+ boolean: bool = SettingsField(False, title="Value")
+ number: int = SettingsField(0, title="Value")
+ decimal_number: float = SettingsField(0.0, title="Value")
+ vector_2d: Vector2d = SettingsField(
default_factory=Vector2d,
title="Value"
)
- vector_3d: Vector3d = Field(
+ vector_3d: Vector3d = SettingsField(
default_factory=Vector3d,
title="Value"
)
- color: ColorRGBA_float = Field(
+ color: ColorRGBA_float = SettingsField(
(0.0, 0.0, 1.0, 1.0),
title="RGBA Float"
)
- box: Box = Field(
+ box: Box = SettingsField(
default_factory=Box,
title="Value"
)
- formatable: Formatable = Field(
+ formatable: Formatable = SettingsField(
default_factory=Formatable,
title="Formatable"
)
- expression: str = Field(
+ expression: str = SettingsField(
"",
title="Expression"
)
diff --git a/server_addon/nuke/server/settings/create_plugins.py b/server_addon/nuke/server/settings/create_plugins.py
index 80aec51ae0..378d449b0b 100644
--- a/server_addon/nuke/server/settings/create_plugins.py
+++ b/server_addon/nuke/server/settings/create_plugins.py
@@ -1,6 +1,7 @@
-from pydantic import validator, Field
+from pydantic import validator
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
ensure_unique_names
)
from .common import KnobModel
@@ -16,20 +17,20 @@ def instance_attributes_enum():
class PrenodeModel(BaseSettingsModel):
- name: str = Field(
+ name: str = SettingsField(
title="Node name"
)
- nodeclass: str = Field(
+ nodeclass: str = SettingsField(
"",
title="Node class"
)
- dependent: str = Field(
+ dependent: str = SettingsField(
"",
title="Incoming dependency"
)
- knobs: list[KnobModel] = Field(
+ knobs: list[KnobModel] = SettingsField(
default_factory=list,
title="Knobs",
)
@@ -42,20 +43,20 @@ class PrenodeModel(BaseSettingsModel):
class CreateWriteRenderModel(BaseSettingsModel):
- temp_rendering_path_template: str = Field(
+ temp_rendering_path_template: str = SettingsField(
title="Temporary rendering path template"
)
- default_variants: list[str] = Field(
+ default_variants: list[str] = SettingsField(
title="Default variants",
default_factory=list
)
- instance_attributes: list[str] = Field(
+ instance_attributes: list[str] = SettingsField(
default_factory=list,
enum_resolver=instance_attributes_enum,
title="Instance attributes"
)
- prenodes: list[PrenodeModel] = Field(
+ prenodes: list[PrenodeModel] = SettingsField(
default_factory=list,
title="Preceding nodes",
)
@@ -68,20 +69,20 @@ class CreateWriteRenderModel(BaseSettingsModel):
class CreateWritePrerenderModel(BaseSettingsModel):
- temp_rendering_path_template: str = Field(
+ temp_rendering_path_template: str = SettingsField(
title="Temporary rendering path template"
)
- default_variants: list[str] = Field(
+ default_variants: list[str] = SettingsField(
title="Default variants",
default_factory=list
)
- instance_attributes: list[str] = Field(
+ instance_attributes: list[str] = SettingsField(
default_factory=list,
enum_resolver=instance_attributes_enum,
title="Instance attributes"
)
- prenodes: list[PrenodeModel] = Field(
+ prenodes: list[PrenodeModel] = SettingsField(
default_factory=list,
title="Preceding nodes",
)
@@ -94,20 +95,20 @@ class CreateWritePrerenderModel(BaseSettingsModel):
class CreateWriteImageModel(BaseSettingsModel):
- temp_rendering_path_template: str = Field(
+ temp_rendering_path_template: str = SettingsField(
title="Temporary rendering path template"
)
- default_variants: list[str] = Field(
+ default_variants: list[str] = SettingsField(
title="Default variants",
default_factory=list
)
- instance_attributes: list[str] = Field(
+ instance_attributes: list[str] = SettingsField(
default_factory=list,
enum_resolver=instance_attributes_enum,
title="Instance attributes"
)
- prenodes: list[PrenodeModel] = Field(
+ prenodes: list[PrenodeModel] = SettingsField(
default_factory=list,
title="Preceding nodes",
)
@@ -120,15 +121,15 @@ class CreateWriteImageModel(BaseSettingsModel):
class CreatorPluginsSettings(BaseSettingsModel):
- CreateWriteRender: CreateWriteRenderModel = Field(
+ CreateWriteRender: CreateWriteRenderModel = SettingsField(
default_factory=CreateWriteRenderModel,
title="Create Write Render"
)
- CreateWritePrerender: CreateWritePrerenderModel = Field(
+ CreateWritePrerender: CreateWritePrerenderModel = SettingsField(
default_factory=CreateWritePrerenderModel,
title="Create Write Prerender"
)
- CreateWriteImage: CreateWriteImageModel = Field(
+ CreateWriteImage: CreateWriteImageModel = SettingsField(
default_factory=CreateWriteImageModel,
title="Create Write Image"
)
diff --git a/server_addon/nuke/server/settings/dirmap.py b/server_addon/nuke/server/settings/dirmap.py
index 7e3c443957..3e1bac0739 100644
--- a/server_addon/nuke/server/settings/dirmap.py
+++ b/server_addon/nuke/server/settings/dirmap.py
@@ -1,14 +1,13 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class DirmapPathsSubmodel(BaseSettingsModel):
_layout = "compact"
- source_path: list[str] = Field(
+ source_path: list[str] = SettingsField(
default_factory=list,
title="Source Paths"
)
- destination_path: list[str] = Field(
+ destination_path: list[str] = SettingsField(
default_factory=list,
title="Destination Paths"
)
@@ -18,8 +17,8 @@ class DirmapSettings(BaseSettingsModel):
"""Nuke color management project settings."""
_isGroup: bool = True
- enabled: bool = Field(title="enabled")
- paths: DirmapPathsSubmodel = Field(
+ enabled: bool = SettingsField(title="enabled")
+ paths: DirmapPathsSubmodel = SettingsField(
default_factory=DirmapPathsSubmodel,
title="Dirmap Paths"
)
diff --git a/server_addon/nuke/server/settings/general.py b/server_addon/nuke/server/settings/general.py
index bcbb183952..d54c725dc1 100644
--- a/server_addon/nuke/server/settings/general.py
+++ b/server_addon/nuke/server/settings/general.py
@@ -1,23 +1,22 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class MenuShortcut(BaseSettingsModel):
"""Nuke general project settings."""
- create: str = Field(
+ create: str = SettingsField(
title="Create..."
)
- publish: str = Field(
+ publish: str = SettingsField(
title="Publish..."
)
- load: str = Field(
+ load: str = SettingsField(
title="Load..."
)
- manage: str = Field(
+ manage: str = SettingsField(
title="Manage..."
)
- build_workfile: str = Field(
+ build_workfile: str = SettingsField(
title="Build Workfile..."
)
@@ -25,7 +24,7 @@ class MenuShortcut(BaseSettingsModel):
class GeneralSettings(BaseSettingsModel):
"""Nuke general project settings."""
- menu: MenuShortcut = Field(
+ menu: MenuShortcut = SettingsField(
default_factory=MenuShortcut,
title="Menu Shortcuts",
)
diff --git a/server_addon/nuke/server/settings/gizmo.py b/server_addon/nuke/server/settings/gizmo.py
index 4cdd614da8..ddb56f891c 100644
--- a/server_addon/nuke/server/settings/gizmo.py
+++ b/server_addon/nuke/server/settings/gizmo.py
@@ -1,52 +1,52 @@
-from pydantic import Field
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
MultiplatformPathModel,
MultiplatformPathListModel,
)
class SubGizmoItem(BaseSettingsModel):
- title: str = Field(
+ title: str = SettingsField(
title="Label"
)
- sourcetype: str = Field(
+ sourcetype: str = SettingsField(
title="Type of usage"
)
- command: str = Field(
+ command: str = SettingsField(
title="Python command"
)
- icon: str = Field(
+ icon: str = SettingsField(
title="Icon Path"
)
- shortcut: str = Field(
+ shortcut: str = SettingsField(
title="Hotkey"
)
class GizmoDefinitionItem(BaseSettingsModel):
- gizmo_toolbar_path: str = Field(
+ gizmo_toolbar_path: str = SettingsField(
title="Gizmo Menu"
)
- sub_gizmo_list: list[SubGizmoItem] = Field(
+ sub_gizmo_list: list[SubGizmoItem] = SettingsField(
default_factory=list, title="Sub Gizmo List")
class GizmoItem(BaseSettingsModel):
"""Nuke gizmo item """
- toolbar_menu_name: str = Field(
+ toolbar_menu_name: str = SettingsField(
title="Toolbar Menu Name"
)
- gizmo_source_dir: MultiplatformPathListModel = Field(
+ gizmo_source_dir: MultiplatformPathListModel = SettingsField(
default_factory=MultiplatformPathListModel,
title="Gizmo Directory Path"
)
- toolbar_icon_path: MultiplatformPathModel = Field(
+ toolbar_icon_path: MultiplatformPathModel = SettingsField(
default_factory=MultiplatformPathModel,
title="Toolbar Icon Path"
)
- gizmo_definition: list[GizmoDefinitionItem] = Field(
+ gizmo_definition: list[GizmoDefinitionItem] = SettingsField(
default_factory=list, title="Gizmo Definition")
diff --git a/server_addon/nuke/server/settings/imageio.py b/server_addon/nuke/server/settings/imageio.py
index 19ad5ff24a..1b84457133 100644
--- a/server_addon/nuke/server/settings/imageio.py
+++ b/server_addon/nuke/server/settings/imageio.py
@@ -1,7 +1,8 @@
from typing import Literal
-from pydantic import validator, Field
+from pydantic import validator
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
ensure_unique_names,
)
@@ -10,17 +11,17 @@ from .common import KnobModel
class NodesModel(BaseSettingsModel):
_layout = "expanded"
- plugins: list[str] = Field(
+ plugins: list[str] = SettingsField(
default_factory=list,
title="Used in plugins"
)
- nuke_node_class: str = Field(
+ nuke_node_class: str = SettingsField(
title="Nuke Node Class",
)
class RequiredNodesModel(NodesModel):
- knobs: list[KnobModel] = Field(
+ knobs: list[KnobModel] = SettingsField(
default_factory=list,
title="Knobs",
)
@@ -33,12 +34,12 @@ class RequiredNodesModel(NodesModel):
class OverrideNodesModel(NodesModel):
- subsets: list[str] = Field(
+ subsets: list[str] = SettingsField(
default_factory=list,
title="Subsets"
)
- knobs: list[KnobModel] = Field(
+ knobs: list[KnobModel] = SettingsField(
default_factory=list,
title="Knobs",
)
@@ -51,11 +52,11 @@ class OverrideNodesModel(NodesModel):
class NodesSetting(BaseSettingsModel):
- required_nodes: list[RequiredNodesModel] = Field(
+ required_nodes: list[RequiredNodesModel] = SettingsField(
title="Plugin required",
default_factory=list
)
- override_nodes: list[OverrideNodesModel] = Field(
+ override_nodes: list[OverrideNodesModel] = SettingsField(
title="Plugin's node overrides",
default_factory=list
)
@@ -82,21 +83,21 @@ def ocio_configs_switcher_enum():
class WorkfileColorspaceSettings(BaseSettingsModel):
"""Nuke workfile colorspace preset. """
- color_management: Literal["Nuke", "OCIO"] = Field(
+ color_management: Literal["Nuke", "OCIO"] = SettingsField(
title="Color Management Workflow"
)
- native_ocio_config: str = Field(
+ native_ocio_config: str = SettingsField(
title="Native OpenColorIO Config",
description="Switch between native OCIO configs",
enum_resolver=ocio_configs_switcher_enum,
conditionalEnum=True
)
- working_space: str = Field(
+ working_space: str = SettingsField(
title="Working Space"
)
- thumbnail_space: str = Field(
+ thumbnail_space: str = SettingsField(
title="Thumbnail Space"
)
@@ -104,44 +105,44 @@ class WorkfileColorspaceSettings(BaseSettingsModel):
class ReadColorspaceRulesItems(BaseSettingsModel):
_layout = "expanded"
- regex: str = Field("", title="Regex expression")
- colorspace: str = Field("", title="Colorspace")
+ regex: str = SettingsField("", title="Regex expression")
+ colorspace: str = SettingsField("", title="Colorspace")
class RegexInputsModel(BaseSettingsModel):
- inputs: list[ReadColorspaceRulesItems] = Field(
+ inputs: list[ReadColorspaceRulesItems] = SettingsField(
default_factory=list,
title="Inputs"
)
class ViewProcessModel(BaseSettingsModel):
- viewerProcess: str = Field(
+ viewerProcess: str = SettingsField(
title="Viewer Process Name"
)
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -162,17 +163,17 @@ class ImageIOSettings(BaseSettingsModel):
now: nuke/imageio/viewer/viewerProcess
future: nuke/imageio/viewer
"""
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management")
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
- viewer: ViewProcessModel = Field(
+ viewer: ViewProcessModel = SettingsField(
default_factory=ViewProcessModel,
title="Viewer",
description="""Viewer profile is used during
@@ -185,19 +186,19 @@ class ImageIOSettings(BaseSettingsModel):
now: nuke/imageio/baking/viewerProcess
future: nuke/imageio/baking
"""
- baking: ViewProcessModel = Field(
+ baking: ViewProcessModel = SettingsField(
default_factory=ViewProcessModel,
title="Baking",
description="""Baking profile is used during
publishing baked colorspace data at knob viewerProcess"""
)
- workfile: WorkfileColorspaceSettings = Field(
+ workfile: WorkfileColorspaceSettings = SettingsField(
default_factory=WorkfileColorspaceSettings,
title="Workfile"
)
- nodes: NodesSetting = Field(
+ nodes: NodesSetting = SettingsField(
default_factory=NodesSetting,
title="Nodes"
)
@@ -205,7 +206,7 @@ class ImageIOSettings(BaseSettingsModel):
- [ ] no need for `inputs` middle part. It can stay
directly on `regex_inputs`
"""
- regex_inputs: RegexInputsModel = Field(
+ regex_inputs: RegexInputsModel = SettingsField(
default_factory=RegexInputsModel,
title="Assign colorspace to read nodes via rules"
)
diff --git a/server_addon/nuke/server/settings/loader_plugins.py b/server_addon/nuke/server/settings/loader_plugins.py
index 51e2c2149b..a5c3315fd4 100644
--- a/server_addon/nuke/server/settings/loader_plugins.py
+++ b/server_addon/nuke/server/settings/loader_plugins.py
@@ -1,54 +1,53 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class LoadImageModel(BaseSettingsModel):
- enabled: bool = Field(
+ enabled: bool = SettingsField(
title="Enabled"
)
- representations_include: list[str] = Field(
+ representations_include: list[str] = SettingsField(
default_factory=list,
title="Include representations"
)
- node_name_template: str = Field(
+ node_name_template: str = SettingsField(
title="Read node name template"
)
class LoadClipOptionsModel(BaseSettingsModel):
- start_at_workfile: bool = Field(
+ start_at_workfile: bool = SettingsField(
title="Start at workfile's start frame"
)
- add_retime: bool = Field(
+ add_retime: bool = SettingsField(
title="Add retime"
)
class LoadClipModel(BaseSettingsModel):
- enabled: bool = Field(
+ enabled: bool = SettingsField(
title="Enabled"
)
- representations_include: list[str] = Field(
+ representations_include: list[str] = SettingsField(
default_factory=list,
title="Include representations"
)
- node_name_template: str = Field(
+ node_name_template: str = SettingsField(
title="Read node name template"
)
- options_defaults: LoadClipOptionsModel = Field(
+ options_defaults: LoadClipOptionsModel = SettingsField(
default_factory=LoadClipOptionsModel,
title="Loader option defaults"
)
class LoaderPuginsModel(BaseSettingsModel):
- LoadImage: LoadImageModel = Field(
+ LoadImage: LoadImageModel = SettingsField(
default_factory=LoadImageModel,
title="Load Image"
)
- LoadClip: LoadClipModel = Field(
+ LoadClip: LoadClipModel = SettingsField(
default_factory=LoadClipModel,
title="Load Clip"
)
diff --git a/server_addon/nuke/server/settings/main.py b/server_addon/nuke/server/settings/main.py
index b6729e7c2f..2b269f1fce 100644
--- a/server_addon/nuke/server/settings/main.py
+++ b/server_addon/nuke/server/settings/main.py
@@ -1,7 +1,6 @@
-from pydantic import validator, Field
-
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
ensure_unique_names
)
@@ -49,50 +48,50 @@ from .templated_workfile_build import (
class NukeSettings(BaseSettingsModel):
"""Nuke addon settings."""
- general: GeneralSettings = Field(
+ general: GeneralSettings = SettingsField(
default_factory=GeneralSettings,
title="General",
)
- imageio: ImageIOSettings = Field(
+ imageio: ImageIOSettings = SettingsField(
default_factory=ImageIOSettings,
title="Color Management (imageio)",
)
- dirmap: DirmapSettings = Field(
+ dirmap: DirmapSettings = SettingsField(
default_factory=DirmapSettings,
title="Nuke Directory Mapping",
)
- scriptsmenu: ScriptsmenuSettings = Field(
+ scriptsmenu: ScriptsmenuSettings = SettingsField(
default_factory=ScriptsmenuSettings,
title="Scripts Menu Definition",
)
- gizmo: list[GizmoItem] = Field(
+ gizmo: list[GizmoItem] = SettingsField(
default_factory=list, title="Gizmo Menu")
- create: CreatorPluginsSettings = Field(
+ create: CreatorPluginsSettings = SettingsField(
default_factory=CreatorPluginsSettings,
title="Creator Plugins",
)
- publish: PublishPuginsModel = Field(
+ publish: PublishPuginsModel = SettingsField(
default_factory=PublishPuginsModel,
title="Publish Plugins",
)
- load: LoaderPuginsModel = Field(
+ load: LoaderPuginsModel = SettingsField(
default_factory=LoaderPuginsModel,
title="Loader Plugins",
)
- workfile_builder: WorkfileBuilderModel = Field(
+ workfile_builder: WorkfileBuilderModel = SettingsField(
default_factory=WorkfileBuilderModel,
title="Workfile Builder",
)
- templated_workfile_build: TemplatedWorkfileBuildModel = Field(
+ templated_workfile_build: TemplatedWorkfileBuildModel = SettingsField(
title="Templated Workfile Build",
default_factory=TemplatedWorkfileBuildModel
)
diff --git a/server_addon/nuke/server/settings/publish_plugins.py b/server_addon/nuke/server/settings/publish_plugins.py
index 84457d2484..02ee9b3bab 100644
--- a/server_addon/nuke/server/settings/publish_plugins.py
+++ b/server_addon/nuke/server/settings/publish_plugins.py
@@ -1,6 +1,7 @@
-from pydantic import validator, Field
+from pydantic import validator
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
ensure_unique_names,
task_types_enum
)
@@ -28,18 +29,18 @@ def nuke_product_types_enum():
class NodeModel(BaseSettingsModel):
- name: str = Field(
+ name: str = SettingsField(
title="Node name"
)
- nodeclass: str = Field(
+ nodeclass: str = SettingsField(
"",
title="Node class"
)
- dependent: str = Field(
+ dependent: str = SettingsField(
"",
title="Incoming dependency"
)
- knobs: list[KnobModel] = Field(
+ knobs: list[KnobModel] = SettingsField(
default_factory=list,
title="Knobs",
)
@@ -52,7 +53,7 @@ class NodeModel(BaseSettingsModel):
class CollectInstanceDataModel(BaseSettingsModel):
- sync_workfile_version_on_product_types: list[str] = Field(
+ sync_workfile_version_on_product_types: list[str] = SettingsField(
default_factory=list,
enum_resolver=nuke_product_types_enum,
title="Sync workfile versions for familes"
@@ -60,14 +61,14 @@ class CollectInstanceDataModel(BaseSettingsModel):
class OptionalPluginModel(BaseSettingsModel):
- enabled: bool = Field(True)
- optional: bool = Field(title="Optional")
- active: bool = Field(title="Active")
+ enabled: bool = SettingsField(True)
+ optional: bool = SettingsField(title="Optional")
+ active: bool = SettingsField(title="Active")
class ValidateKnobsModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- knobs: str = Field(
+ enabled: bool = SettingsField(title="Enabled")
+ knobs: str = SettingsField(
"{}",
title="Knobs",
widget="textarea",
@@ -79,31 +80,31 @@ class ValidateKnobsModel(BaseSettingsModel):
class ExtractReviewDataModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
+ enabled: bool = SettingsField(title="Enabled")
class ExtractReviewDataLutModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
+ enabled: bool = SettingsField(title="Enabled")
class BakingStreamFilterModel(BaseSettingsModel):
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- product_types: list[str] = Field(
+ product_types: list[str] = SettingsField(
default_factory=list,
enum_resolver=nuke_render_publish_types_enum,
title="Sync workfile versions for familes"
)
- product_names: list[str] = Field(
+ product_names: list[str] = SettingsField(
default_factory=list, title="Product names")
class ReformatNodesRepositionNodes(BaseSettingsModel):
- node_class: str = Field(title="Node class")
- knobs: list[KnobModel] = Field(
+ node_class: str = SettingsField(title="Node class")
+ knobs: list[KnobModel] = SettingsField(
default_factory=list,
title="Node knobs")
@@ -115,41 +116,41 @@ class ReformatNodesConfigModel(BaseSettingsModel):
Order of reformat nodes is important. First reformat node will
be applied first and last reformat node will be applied last.
"""
- enabled: bool = Field(False)
- reposition_nodes: list[ReformatNodesRepositionNodes] = Field(
+ enabled: bool = SettingsField(False)
+ reposition_nodes: list[ReformatNodesRepositionNodes] = SettingsField(
default_factory=list,
title="Reposition knobs"
)
class IntermediateOutputModel(BaseSettingsModel):
- name: str = Field(title="Output name")
- filter: BakingStreamFilterModel = Field(
+ name: str = SettingsField(title="Output name")
+ filter: BakingStreamFilterModel = SettingsField(
title="Filter", default_factory=BakingStreamFilterModel)
- read_raw: bool = Field(
+ read_raw: bool = SettingsField(
False,
title="Read raw switch"
)
- viewer_process_override: str = Field(
+ viewer_process_override: str = SettingsField(
"",
title="Viewer process override"
)
- bake_viewer_process: bool = Field(
+ bake_viewer_process: bool = SettingsField(
True,
title="Bake viewer process"
)
- bake_viewer_input_process: bool = Field(
+ bake_viewer_input_process: bool = SettingsField(
True,
title="Bake viewer input process node (LUT)"
)
- reformat_nodes_config: ReformatNodesConfigModel = Field(
+ reformat_nodes_config: ReformatNodesConfigModel = SettingsField(
default_factory=ReformatNodesConfigModel,
title="Reformat Nodes")
- extension: str = Field(
+ extension: str = SettingsField(
"mov",
title="File extension"
)
- add_custom_tags: list[str] = Field(
+ add_custom_tags: list[str] = SettingsField(
title="Custom tags", default_factory=list)
@@ -157,123 +158,125 @@ class ExtractReviewDataMovModel(BaseSettingsModel):
"""[deprecated] use Extract Review Data Baking
Streams instead.
"""
- enabled: bool = Field(title="Enabled")
- viewer_lut_raw: bool = Field(title="Viewer lut raw")
- outputs: list[IntermediateOutputModel] = Field(
+ enabled: bool = SettingsField(title="Enabled")
+ viewer_lut_raw: bool = SettingsField(title="Viewer lut raw")
+ outputs: list[IntermediateOutputModel] = SettingsField(
default_factory=list,
title="Baking streams"
)
class ExtractReviewIntermediatesModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- viewer_lut_raw: bool = Field(title="Viewer lut raw")
- outputs: list[IntermediateOutputModel] = Field(
+ enabled: bool = SettingsField(title="Enabled")
+ viewer_lut_raw: bool = SettingsField(title="Viewer lut raw")
+ outputs: list[IntermediateOutputModel] = SettingsField(
default_factory=list,
title="Baking streams"
)
class FSubmissionNoteModel(BaseSettingsModel):
- enabled: bool = Field(title="enabled")
- template: str = Field(title="Template")
+ enabled: bool = SettingsField(title="enabled")
+ template: str = SettingsField(title="Template")
class FSubmistingForModel(BaseSettingsModel):
- enabled: bool = Field(title="enabled")
- template: str = Field(title="Template")
+ enabled: bool = SettingsField(title="enabled")
+ template: str = SettingsField(title="Template")
class FVFXScopeOfWorkModel(BaseSettingsModel):
- enabled: bool = Field(title="enabled")
- template: str = Field(title="Template")
+ enabled: bool = SettingsField(title="enabled")
+ template: str = SettingsField(title="Template")
class ExctractSlateFrameParamModel(BaseSettingsModel):
- f_submission_note: FSubmissionNoteModel = Field(
+ f_submission_note: FSubmissionNoteModel = SettingsField(
title="f_submission_note",
default_factory=FSubmissionNoteModel
)
- f_submitting_for: FSubmistingForModel = Field(
+ f_submitting_for: FSubmistingForModel = SettingsField(
title="f_submitting_for",
default_factory=FSubmistingForModel
)
- f_vfx_scope_of_work: FVFXScopeOfWorkModel = Field(
+ f_vfx_scope_of_work: FVFXScopeOfWorkModel = SettingsField(
title="f_vfx_scope_of_work",
default_factory=FVFXScopeOfWorkModel
)
class ExtractSlateFrameModel(BaseSettingsModel):
- viewer_lut_raw: bool = Field(title="Viewer lut raw")
- key_value_mapping: ExctractSlateFrameParamModel = Field(
+ viewer_lut_raw: bool = SettingsField(title="Viewer lut raw")
+ key_value_mapping: ExctractSlateFrameParamModel = SettingsField(
title="Key value mapping",
default_factory=ExctractSlateFrameParamModel
)
class IncrementScriptVersionModel(BaseSettingsModel):
- enabled: bool = Field(title="Enabled")
- optional: bool = Field(title="Optional")
- active: bool = Field(title="Active")
+ enabled: bool = SettingsField(title="Enabled")
+ optional: bool = SettingsField(title="Optional")
+ active: bool = SettingsField(title="Active")
class PublishPuginsModel(BaseSettingsModel):
- CollectInstanceData: CollectInstanceDataModel = Field(
+ CollectInstanceData: CollectInstanceDataModel = SettingsField(
title="Collect Instance Version",
default_factory=CollectInstanceDataModel,
section="Collectors"
)
- ValidateCorrectAssetContext: OptionalPluginModel = Field(
+ ValidateCorrectAssetContext: OptionalPluginModel = SettingsField(
title="Validate Correct Folder Name",
default_factory=OptionalPluginModel,
section="Validators"
)
- ValidateContainers: OptionalPluginModel = Field(
+ ValidateContainers: OptionalPluginModel = SettingsField(
title="Validate Containers",
default_factory=OptionalPluginModel
)
- ValidateKnobs: ValidateKnobsModel = Field(
+ ValidateKnobs: ValidateKnobsModel = SettingsField(
title="Validate Knobs",
default_factory=ValidateKnobsModel
)
- ValidateOutputResolution: OptionalPluginModel = Field(
+ ValidateOutputResolution: OptionalPluginModel = SettingsField(
title="Validate Output Resolution",
default_factory=OptionalPluginModel
)
- ValidateGizmo: OptionalPluginModel = Field(
+ ValidateGizmo: OptionalPluginModel = SettingsField(
title="Validate Gizmo",
default_factory=OptionalPluginModel
)
- ValidateBackdrop: OptionalPluginModel = Field(
+ ValidateBackdrop: OptionalPluginModel = SettingsField(
title="Validate Backdrop",
default_factory=OptionalPluginModel
)
- ValidateScriptAttributes: OptionalPluginModel = Field(
+ ValidateScriptAttributes: OptionalPluginModel = SettingsField(
title="Validate workfile attributes",
default_factory=OptionalPluginModel
)
- ExtractReviewData: ExtractReviewDataModel = Field(
+ ExtractReviewData: ExtractReviewDataModel = SettingsField(
title="Extract Review Data",
default_factory=ExtractReviewDataModel
)
- ExtractReviewDataLut: ExtractReviewDataLutModel = Field(
+ ExtractReviewDataLut: ExtractReviewDataLutModel = SettingsField(
title="Extract Review Data Lut",
default_factory=ExtractReviewDataLutModel
)
- ExtractReviewDataMov: ExtractReviewDataMovModel = Field(
+ ExtractReviewDataMov: ExtractReviewDataMovModel = SettingsField(
title="Extract Review Data Mov",
default_factory=ExtractReviewDataMovModel
)
- ExtractReviewIntermediates: ExtractReviewIntermediatesModel = Field(
- title="Extract Review Intermediates",
- default_factory=ExtractReviewIntermediatesModel
+ ExtractReviewIntermediates: ExtractReviewIntermediatesModel = (
+ SettingsField(
+ title="Extract Review Intermediates",
+ default_factory=ExtractReviewIntermediatesModel
+ )
)
- ExtractSlateFrame: ExtractSlateFrameModel = Field(
+ ExtractSlateFrame: ExtractSlateFrameModel = SettingsField(
title="Extract Slate Frame",
default_factory=ExtractSlateFrameModel
)
- IncrementScriptVersion: IncrementScriptVersionModel = Field(
+ IncrementScriptVersion: IncrementScriptVersionModel = SettingsField(
title="Increment Workfile Version",
default_factory=IncrementScriptVersionModel,
section="Integrators"
diff --git a/server_addon/nuke/server/settings/scriptsmenu.py b/server_addon/nuke/server/settings/scriptsmenu.py
index 3dd6765920..7ffd6841d5 100644
--- a/server_addon/nuke/server/settings/scriptsmenu.py
+++ b/server_addon/nuke/server/settings/scriptsmenu.py
@@ -1,24 +1,23 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class ScriptsmenuSubmodel(BaseSettingsModel):
"""Item Definition"""
_isGroup = True
- type: str = Field(title="Type")
- command: str = Field(title="Command")
- sourcetype: str = Field(title="Source Type")
- title: str = Field(title="Title")
- tooltip: str = Field(title="Tooltip")
+ type: str = SettingsField(title="Type")
+ command: str = SettingsField(title="Command")
+ sourcetype: str = SettingsField(title="Source Type")
+ title: str = SettingsField(title="Title")
+ tooltip: str = SettingsField(title="Tooltip")
class ScriptsmenuSettings(BaseSettingsModel):
"""Nuke script menu project settings."""
_isGroup = True
- name: str = Field(title="Menu Name")
- definition: list[ScriptsmenuSubmodel] = Field(
+ name: str = SettingsField(title="Menu Name")
+ definition: list[ScriptsmenuSubmodel] = SettingsField(
default_factory=list,
title="Definition",
description="Scriptmenu Items Definition"
diff --git a/server_addon/nuke/server/settings/templated_workfile_build.py b/server_addon/nuke/server/settings/templated_workfile_build.py
index 0899be841e..12ebedf570 100644
--- a/server_addon/nuke/server/settings/templated_workfile_build.py
+++ b/server_addon/nuke/server/settings/templated_workfile_build.py
@@ -1,27 +1,27 @@
-from pydantic import Field
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
task_types_enum,
)
class TemplatedWorkfileProfileModel(BaseSettingsModel):
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- task_names: list[str] = Field(
+ task_names: list[str] = SettingsField(
default_factory=list,
title="Task names"
)
- path: str = Field(
+ path: str = SettingsField(
title="Path to template"
)
- keep_placeholder: bool = Field(
+ keep_placeholder: bool = SettingsField(
False,
title="Keep placeholders")
- create_first_version: bool = Field(
+ create_first_version: bool = SettingsField(
True,
title="Create first version"
)
@@ -29,6 +29,6 @@ class TemplatedWorkfileProfileModel(BaseSettingsModel):
class TemplatedWorkfileBuildModel(BaseSettingsModel):
"""Settings for templated workfile builder."""
- profiles: list[TemplatedWorkfileProfileModel] = Field(
+ profiles: list[TemplatedWorkfileProfileModel] = SettingsField(
default_factory=list
)
diff --git a/server_addon/nuke/server/settings/workfile_builder.py b/server_addon/nuke/server/settings/workfile_builder.py
index 3ae3b08788..97961655f3 100644
--- a/server_addon/nuke/server/settings/workfile_builder.py
+++ b/server_addon/nuke/server/settings/workfile_builder.py
@@ -1,57 +1,57 @@
-from pydantic import Field
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
task_types_enum,
MultiplatformPathModel,
)
class CustomTemplateModel(BaseSettingsModel):
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- path: MultiplatformPathModel = Field(
+ path: MultiplatformPathModel = SettingsField(
default_factory=MultiplatformPathModel,
title="Gizmo Directory Path"
)
class BuilderProfileItemModel(BaseSettingsModel):
- product_name_filters: list[str] = Field(
+ product_name_filters: list[str] = SettingsField(
default_factory=list,
title="Product name"
)
- product_types: list[str] = Field(
+ product_types: list[str] = SettingsField(
default_factory=list,
title="Product types"
)
- repre_names: list[str] = Field(
+ repre_names: list[str] = SettingsField(
default_factory=list,
title="Representations"
)
- loaders: list[str] = Field(
+ loaders: list[str] = SettingsField(
default_factory=list,
title="Loader plugins"
)
class BuilderProfileModel(BaseSettingsModel):
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- tasks: list[str] = Field(
+ tasks: list[str] = SettingsField(
default_factory=list,
title="Task names"
)
- current_context: list[BuilderProfileItemModel] = Field(
+ current_context: list[BuilderProfileItemModel] = SettingsField(
default_factory=list,
title="Current context"
)
- linked_assets: list[BuilderProfileItemModel] = Field(
+ linked_assets: list[BuilderProfileItemModel] = SettingsField(
default_factory=list,
title="Linked assets/shots"
)
@@ -60,17 +60,17 @@ class BuilderProfileModel(BaseSettingsModel):
class WorkfileBuilderModel(BaseSettingsModel):
"""[deprecated] use Template Workfile Build Settings instead.
"""
- create_first_version: bool = Field(
+ create_first_version: bool = SettingsField(
title="Create first workfile")
- custom_templates: list[CustomTemplateModel] = Field(
+ custom_templates: list[CustomTemplateModel] = SettingsField(
default_factory=list,
title="Custom templates"
)
- builder_on_start: bool = Field(
+ builder_on_start: bool = SettingsField(
default=False,
title="Run Builder at first workfile"
)
- profiles: list[BuilderProfileModel] = Field(
+ profiles: list[BuilderProfileModel] = SettingsField(
default_factory=list,
title="Builder profiles"
)
diff --git a/server_addon/photoshop/server/settings/creator_plugins.py b/server_addon/photoshop/server/settings/creator_plugins.py
index 2fe63a7e3a..8acc213866 100644
--- a/server_addon/photoshop/server/settings/creator_plugins.py
+++ b/server_addon/photoshop/server/settings/creator_plugins.py
@@ -1,51 +1,49 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class CreateImagePluginModel(BaseSettingsModel):
- enabled: bool = Field(True, title="Enabled")
- active_on_create: bool = Field(True, title="Active by default")
- mark_for_review: bool = Field(False, title="Review by default")
- default_variants: list[str] = Field(
+ enabled: bool = SettingsField(True, title="Enabled")
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ mark_for_review: bool = SettingsField(False, title="Review by default")
+ default_variants: list[str] = SettingsField(
default_factory=list,
title="Default Variants"
)
class AutoImageCreatorPluginModel(BaseSettingsModel):
- enabled: bool = Field(False, title="Enabled")
- active_on_create: bool = Field(True, title="Active by default")
- mark_for_review: bool = Field(False, title="Review by default")
- default_variant: str = Field("", title="Default Variants")
+ enabled: bool = SettingsField(False, title="Enabled")
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ mark_for_review: bool = SettingsField(False, title="Review by default")
+ default_variant: str = SettingsField("", title="Default Variants")
class CreateReviewPlugin(BaseSettingsModel):
- enabled: bool = Field(True, title="Enabled")
- active_on_create: bool = Field(True, title="Active by default")
- default_variant: str = Field("", title="Default Variants")
+ enabled: bool = SettingsField(True, title="Enabled")
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ default_variant: str = SettingsField("", title="Default Variants")
class CreateWorkfilelugin(BaseSettingsModel):
- enabled: bool = Field(True, title="Enabled")
- active_on_create: bool = Field(True, title="Active by default")
- default_variant: str = Field("", title="Default Variants")
+ enabled: bool = SettingsField(True, title="Enabled")
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ default_variant: str = SettingsField("", title="Default Variants")
class PhotoshopCreatorPlugins(BaseSettingsModel):
- ImageCreator: CreateImagePluginModel = Field(
+ ImageCreator: CreateImagePluginModel = SettingsField(
title="Create Image",
default_factory=CreateImagePluginModel,
)
- AutoImageCreator: AutoImageCreatorPluginModel = Field(
+ AutoImageCreator: AutoImageCreatorPluginModel = SettingsField(
title="Create Flatten Image",
default_factory=AutoImageCreatorPluginModel,
)
- ReviewCreator: CreateReviewPlugin = Field(
+ ReviewCreator: CreateReviewPlugin = SettingsField(
title="Create Review",
default_factory=CreateReviewPlugin,
)
- WorkfileCreator: CreateWorkfilelugin = Field(
+ WorkfileCreator: CreateWorkfilelugin = SettingsField(
title="Create Workfile",
default_factory=CreateWorkfilelugin,
)
diff --git a/server_addon/photoshop/server/settings/imageio.py b/server_addon/photoshop/server/settings/imageio.py
index 56b7f2fa32..9178497c6c 100644
--- a/server_addon/photoshop/server/settings/imageio.py
+++ b/server_addon/photoshop/server/settings/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,30 +35,30 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class ImageIORemappingRulesModel(BaseSettingsModel):
- host_native_name: str = Field(
+ host_native_name: str = SettingsField(
title="Application native colorspace name"
)
- ocio_name: str = Field(title="OCIO colorspace name")
+ ocio_name: str = SettingsField(title="OCIO colorspace name")
class ImageIORemappingModel(BaseSettingsModel):
- rules: list[ImageIORemappingRulesModel] = Field(
+ rules: list[ImageIORemappingRulesModel] = SettingsField(
default_factory=list)
class PhotoshopImageIOModel(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- remapping: ImageIORemappingModel = Field(
+ remapping: ImageIORemappingModel = SettingsField(
title="Remapping colorspace names",
default_factory=ImageIORemappingModel
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/photoshop/server/settings/main.py b/server_addon/photoshop/server/settings/main.py
index ae7705b3db..b6474d6d29 100644
--- a/server_addon/photoshop/server/settings/main.py
+++ b/server_addon/photoshop/server/settings/main.py
@@ -1,5 +1,4 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from .imageio import PhotoshopImageIOModel
from .creator_plugins import PhotoshopCreatorPlugins, DEFAULT_CREATE_SETTINGS
@@ -10,22 +9,22 @@ from .workfile_builder import WorkfileBuilderPlugin
class PhotoshopSettings(BaseSettingsModel):
"""Photoshop Project Settings."""
- imageio: PhotoshopImageIOModel = Field(
+ imageio: PhotoshopImageIOModel = SettingsField(
default_factory=PhotoshopImageIOModel,
title="OCIO config"
)
- create: PhotoshopCreatorPlugins = Field(
+ create: PhotoshopCreatorPlugins = SettingsField(
default_factory=PhotoshopCreatorPlugins,
title="Creator plugins"
)
- publish: PhotoshopPublishPlugins = Field(
+ publish: PhotoshopPublishPlugins = SettingsField(
default_factory=PhotoshopPublishPlugins,
title="Publish plugins"
)
- workfile_builder: WorkfileBuilderPlugin = Field(
+ workfile_builder: WorkfileBuilderPlugin = SettingsField(
default_factory=WorkfileBuilderPlugin,
title="Workfile Builder"
)
diff --git a/server_addon/photoshop/server/settings/publish_plugins.py b/server_addon/photoshop/server/settings/publish_plugins.py
index 21e7d670f0..c4a392d490 100644
--- a/server_addon/photoshop/server/settings/publish_plugins.py
+++ b/server_addon/photoshop/server/settings/publish_plugins.py
@@ -1,6 +1,4 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
create_flatten_image_enum = [
@@ -22,30 +20,30 @@ color_code_enum = [
class ColorCodeMappings(BaseSettingsModel):
- color_code: list[str] = Field(
+ color_code: list[str] = SettingsField(
title="Color codes for layers",
default_factory=list,
enum_resolver=lambda: color_code_enum,
)
- layer_name_regex: list[str] = Field(
+ layer_name_regex: list[str] = SettingsField(
default_factory=list,
title="Layer name regex"
)
- product_type: str = Field(
+ product_type: str = SettingsField(
"",
title="Resulting product type"
)
- product_name_template: str = Field(
+ product_name_template: str = SettingsField(
"",
title="Product name template"
)
class ExtractedOptions(BaseSettingsModel):
- tags: list[str] = Field(
+ tags: list[str] = SettingsField(
title="Tags",
default_factory=list
)
@@ -57,19 +55,19 @@ class CollectColorCodedInstancesPlugin(BaseSettingsModel):
instances.
(Applicable only for remote publishing!)"""
- enabled: bool = Field(True, title="Enabled")
- create_flatten_image: str = Field(
+ enabled: bool = SettingsField(True, title="Enabled")
+ create_flatten_image: str = SettingsField(
"",
title="Create flatten image",
enum_resolver=lambda: create_flatten_image_enum,
)
- flatten_product_type_template: str = Field(
+ flatten_product_type_template: str = SettingsField(
"",
title="Subset template for flatten image"
)
- color_code_mapping: list[ColorCodeMappings] = Field(
+ color_code_mapping: list[ColorCodeMappings] = SettingsField(
title="Color code mappings",
default_factory=ColorCodeMappings,
)
@@ -77,30 +75,30 @@ class CollectColorCodedInstancesPlugin(BaseSettingsModel):
class CollectReviewPlugin(BaseSettingsModel):
"""Should review product be created"""
- enabled: bool = Field(True, title="Enabled")
+ enabled: bool = SettingsField(True, title="Enabled")
class CollectVersionPlugin(BaseSettingsModel):
"""Synchronize version for image and review instances by workfile version""" # noqa
- enabled: bool = Field(True, title="Enabled")
+ enabled: bool = SettingsField(True, title="Enabled")
class ValidateContainersPlugin(BaseSettingsModel):
"""Check that workfile contains latest version of loaded items""" # noqa
_isGroup = True
enabled: bool = True
- optional: bool = Field(False, title="Optional")
- active: bool = Field(True, title="Active")
+ optional: bool = SettingsField(False, title="Optional")
+ active: bool = SettingsField(True, title="Active")
class ValidateNamingPlugin(BaseSettingsModel):
"""Validate naming of products and layers""" # noqa
- invalid_chars: str = Field(
+ invalid_chars: str = SettingsField(
'',
title="Regex pattern of invalid characters"
)
- replace_char: str = Field(
+ replace_char: str = SettingsField(
'',
title="Replacement character"
)
@@ -108,19 +106,19 @@ class ValidateNamingPlugin(BaseSettingsModel):
class ExtractImagePlugin(BaseSettingsModel):
"""Currently only jpg and png are supported"""
- formats: list[str] = Field(
+ formats: list[str] = SettingsField(
title="Extract Formats",
default_factory=list,
)
class ExtractReviewPlugin(BaseSettingsModel):
- make_image_sequence: bool = Field(
+ make_image_sequence: bool = SettingsField(
False,
title="Make an image sequence instead of flatten image"
)
- max_downscale_size: int = Field(
+ max_downscale_size: int = SettingsField(
8192,
title="Maximum size of sources for review",
description="FFMpeg can only handle limited resolution for creation of review and/or thumbnail", # noqa
@@ -128,48 +126,50 @@ class ExtractReviewPlugin(BaseSettingsModel):
le=16384, # less or equal
)
- jpg_options: ExtractedOptions = Field(
+ jpg_options: ExtractedOptions = SettingsField(
title="Extracted jpg Options",
default_factory=ExtractedOptions
)
- mov_options: ExtractedOptions = Field(
+ mov_options: ExtractedOptions = SettingsField(
title="Extracted mov Options",
default_factory=ExtractedOptions
)
class PhotoshopPublishPlugins(BaseSettingsModel):
- CollectColorCodedInstances: CollectColorCodedInstancesPlugin = Field(
- title="Collect Color Coded Instances",
- default_factory=CollectColorCodedInstancesPlugin,
+ CollectColorCodedInstances: CollectColorCodedInstancesPlugin = (
+ SettingsField(
+ title="Collect Color Coded Instances",
+ default_factory=CollectColorCodedInstancesPlugin,
+ )
)
- CollectReview: CollectReviewPlugin = Field(
+ CollectReview: CollectReviewPlugin = SettingsField(
title="Collect Review",
default_factory=CollectReviewPlugin,
)
- CollectVersion: CollectVersionPlugin = Field(
+ CollectVersion: CollectVersionPlugin = SettingsField(
title="Collect Version",
default_factory=CollectVersionPlugin,
)
- ValidateContainers: ValidateContainersPlugin = Field(
+ ValidateContainers: ValidateContainersPlugin = SettingsField(
title="Validate Containers",
default_factory=ValidateContainersPlugin,
)
- ValidateNaming: ValidateNamingPlugin = Field(
+ ValidateNaming: ValidateNamingPlugin = SettingsField(
title="Validate naming of products and layers",
default_factory=ValidateNamingPlugin,
)
- ExtractImage: ExtractImagePlugin = Field(
+ ExtractImage: ExtractImagePlugin = SettingsField(
title="Extract Image",
default_factory=ExtractImagePlugin,
)
- ExtractReview: ExtractReviewPlugin = Field(
+ ExtractReview: ExtractReviewPlugin = SettingsField(
title="Extract Review",
default_factory=ExtractReviewPlugin,
)
diff --git a/server_addon/photoshop/server/settings/workfile_builder.py b/server_addon/photoshop/server/settings/workfile_builder.py
index 68db05270d..4b00b99272 100644
--- a/server_addon/photoshop/server/settings/workfile_builder.py
+++ b/server_addon/photoshop/server/settings/workfile_builder.py
@@ -1,16 +1,18 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel, MultiplatformPathModel
+from ayon_server.settings import (
+ BaseSettingsModel,
+ SettingsField,
+ MultiplatformPathModel,
+)
class CustomBuilderTemplate(BaseSettingsModel):
_layout = "expanded"
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
)
- path: MultiplatformPathModel = Field(
+ path: MultiplatformPathModel = SettingsField(
default_factory=MultiplatformPathModel,
title="Template path"
)
@@ -18,12 +20,12 @@ class CustomBuilderTemplate(BaseSettingsModel):
class WorkfileBuilderPlugin(BaseSettingsModel):
_title = "Workfile Builder"
- create_first_version: bool = Field(
+ create_first_version: bool = SettingsField(
False,
title="Create first workfile"
)
- custom_templates: list[CustomBuilderTemplate] = Field(
+ custom_templates: list[CustomBuilderTemplate] = SettingsField(
default_factory=CustomBuilderTemplate,
title="Template profiles"
)
diff --git a/server_addon/resolve/server/imageio.py b/server_addon/resolve/server/imageio.py
index c2bfcd40d0..9540f5d1d9 100644
--- a/server_addon/resolve/server/imageio.py
+++ b/server_addon/resolve/server/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,30 +35,30 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class ImageIORemappingRulesModel(BaseSettingsModel):
- host_native_name: str = Field(
+ host_native_name: str = SettingsField(
title="Application native colorspace name"
)
- ocio_name: str = Field(title="OCIO colorspace name")
+ ocio_name: str = SettingsField(title="OCIO colorspace name")
class ImageIORemappingModel(BaseSettingsModel):
- rules: list[ImageIORemappingRulesModel] = Field(
+ rules: list[ImageIORemappingRulesModel] = SettingsField(
default_factory=list)
class ResolveImageIOModel(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- remapping: ImageIORemappingModel = Field(
+ remapping: ImageIORemappingModel = SettingsField(
title="Remapping colorspace names",
default_factory=ImageIORemappingModel
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/resolve/server/settings.py b/server_addon/resolve/server/settings.py
index 326f6bea1e..dcdb2f1b27 100644
--- a/server_addon/resolve/server/settings.py
+++ b/server_addon/resolve/server/settings.py
@@ -1,91 +1,90 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from .imageio import ResolveImageIOModel
class CreateShotClipModels(BaseSettingsModel):
- hierarchy: str = Field(
+ hierarchy: str = SettingsField(
"{folder}/{sequence}",
title="Shot parent hierarchy",
section="Shot Hierarchy And Rename Settings"
)
- clipRename: bool = Field(
+ clipRename: bool = SettingsField(
True,
title="Rename clips"
)
- clipName: str = Field(
+ clipName: str = SettingsField(
"{track}{sequence}{shot}",
title="Clip name template"
)
- countFrom: int = Field(
+ countFrom: int = SettingsField(
10,
title="Count sequence from"
)
- countSteps: int = Field(
+ countSteps: int = SettingsField(
10,
title="Stepping number"
)
- folder: str = Field(
+ folder: str = SettingsField(
"shots",
title="{folder}",
section="Shot Template Keywords"
)
- episode: str = Field(
+ episode: str = SettingsField(
"ep01",
title="{episode}"
)
- sequence: str = Field(
+ sequence: str = SettingsField(
"sq01",
title="{sequence}"
)
- track: str = Field(
+ track: str = SettingsField(
"{_track_}",
title="{track}"
)
- shot: str = Field(
+ shot: str = SettingsField(
"sh###",
title="{shot}"
)
- vSyncOn: bool = Field(
+ vSyncOn: bool = SettingsField(
False,
title="Enable Vertical Sync",
section="Vertical Synchronization Of Attributes"
)
- workfileFrameStart: int = Field(
+ workfileFrameStart: int = SettingsField(
1001,
title="Workfiles Start Frame",
section="Shot Attributes"
)
- handleStart: int = Field(
+ handleStart: int = SettingsField(
10,
title="Handle start (head)"
)
- handleEnd: int = Field(
+ handleEnd: int = SettingsField(
10,
title="Handle end (tail)"
)
class CreatorPuginsModel(BaseSettingsModel):
- CreateShotClip: CreateShotClipModels = Field(
+ CreateShotClip: CreateShotClipModels = SettingsField(
default_factory=CreateShotClipModels,
title="Create Shot Clip"
)
class ResolveSettings(BaseSettingsModel):
- launch_openpype_menu_on_start: bool = Field(
+ launch_openpype_menu_on_start: bool = SettingsField(
False, title="Launch OpenPype menu on start of Resolve"
)
- imageio: ResolveImageIOModel = Field(
+ imageio: ResolveImageIOModel = SettingsField(
default_factory=ResolveImageIOModel,
title="Color Management (ImageIO)"
)
- create: CreatorPuginsModel = Field(
+ create: CreatorPuginsModel = SettingsField(
default_factory=CreatorPuginsModel,
title="Creator plugins",
)
diff --git a/server_addon/royal_render/server/settings.py b/server_addon/royal_render/server/settings.py
index 677d7e2671..6e077feb3e 100644
--- a/server_addon/royal_render/server/settings.py
+++ b/server_addon/royal_render/server/settings.py
@@ -1,5 +1,8 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel, MultiplatformPathModel
+from ayon_server.settings import (
+ BaseSettingsModel,
+ SettingsField,
+ MultiplatformPathModel,
+)
class CustomPath(MultiplatformPathModel):
@@ -8,18 +11,20 @@ class CustomPath(MultiplatformPathModel):
class ServerListSubmodel(BaseSettingsModel):
_layout = "expanded"
- name: str = Field("", title="Name")
- value: CustomPath = Field(
+ name: str = SettingsField("", title="Name")
+ value: CustomPath = SettingsField(
default_factory=CustomPath
)
class CollectSequencesFromJobModel(BaseSettingsModel):
- review: bool = Field(True, title="Generate reviews from sequences")
+ review: bool = SettingsField(
+ True, title="Generate reviews from sequences"
+ )
class PublishPluginsModel(BaseSettingsModel):
- CollectSequencesFromJob: CollectSequencesFromJobModel = Field(
+ CollectSequencesFromJob: CollectSequencesFromJobModel = SettingsField(
default_factory=CollectSequencesFromJobModel,
title="Collect Sequences from the Job"
)
@@ -31,19 +36,19 @@ class RoyalRenderSettings(BaseSettingsModel):
# - both system and project settings contained 'rr_path'
# where project settings did choose one of rr_path from system settings
# that is not possible in AYON
- rr_paths: list[ServerListSubmodel] = Field(
+ rr_paths: list[ServerListSubmodel] = SettingsField(
default_factory=list,
title="Royal Render Root Paths",
scope=["studio"],
)
# This was 'rr_paths' in project settings and should be enum of
# 'rr_paths' from system settings, but that's not possible in AYON
- selected_rr_paths: list[str] = Field(
+ selected_rr_paths: list[str] = SettingsField(
default_factory=list,
title="Selected Royal Render Paths",
section="---",
)
- publish: PublishPluginsModel = Field(
+ publish: PublishPluginsModel = SettingsField(
default_factory=PublishPluginsModel,
title="Publish plugins",
)
diff --git a/server_addon/substancepainter/server/settings/imageio.py b/server_addon/substancepainter/server/settings/imageio.py
index e301d3d865..ea685047b0 100644
--- a/server_addon/substancepainter/server/settings/imageio.py
+++ b/server_addon/substancepainter/server/settings/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,14 +35,14 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class ImageIOSettings(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/substancepainter/server/settings/main.py b/server_addon/substancepainter/server/settings/main.py
index f8397c3c08..f80fa9fe1e 100644
--- a/server_addon/substancepainter/server/settings/main.py
+++ b/server_addon/substancepainter/server/settings/main.py
@@ -1,20 +1,19 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from .imageio import ImageIOSettings, DEFAULT_IMAGEIO_SETTINGS
class ShelvesSettingsModel(BaseSettingsModel):
_layout = "compact"
- name: str = Field(title="Name")
- value: str = Field(title="Path")
+ name: str = SettingsField(title="Name")
+ value: str = SettingsField(title="Path")
class SubstancePainterSettings(BaseSettingsModel):
- imageio: ImageIOSettings = Field(
+ imageio: ImageIOSettings = SettingsField(
default_factory=ImageIOSettings,
title="Color Management (ImageIO)"
)
- shelves: list[ShelvesSettingsModel] = Field(
+ shelves: list[ShelvesSettingsModel] = SettingsField(
default_factory=list,
title="Shelves"
)
diff --git a/server_addon/timers_manager/server/settings.py b/server_addon/timers_manager/server/settings.py
index a5c5721a57..774940730c 100644
--- a/server_addon/timers_manager/server/settings.py
+++ b/server_addon/timers_manager/server/settings.py
@@ -1,24 +1,23 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class TimersManagerSettings(BaseSettingsModel):
- auto_stop: bool = Field(
+ auto_stop: bool = SettingsField(
True,
title="Auto stop timer",
scope=["studio"],
)
- full_time: int = Field(
+ full_time: int = SettingsField(
15,
title="Max idle time",
scope=["studio"],
)
- message_time: float = Field(
+ message_time: float = SettingsField(
0.5,
title="When dialog will show",
scope=["studio"],
)
- disregard_publishing: bool = Field(
+ disregard_publishing: bool = SettingsField(
False,
title="Disregard publishing",
scope=["studio"],
diff --git a/server_addon/traypublisher/server/settings/creator_plugins.py b/server_addon/traypublisher/server/settings/creator_plugins.py
index 345cb92e63..bf66d9a088 100644
--- a/server_addon/traypublisher/server/settings/creator_plugins.py
+++ b/server_addon/traypublisher/server/settings/creator_plugins.py
@@ -1,6 +1,4 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class BatchMovieCreatorPlugin(BaseSettingsModel):
@@ -8,24 +6,24 @@ class BatchMovieCreatorPlugin(BaseSettingsModel):
asset is parsed from file names ('asset.mov', 'asset_v001.mov',
'my_asset_to_publish.mov')"""
- default_variants: list[str] = Field(
+ default_variants: list[str] = SettingsField(
title="Default variants",
default_factory=list
)
- default_tasks: list[str] = Field(
+ default_tasks: list[str] = SettingsField(
title="Default tasks",
default_factory=list
)
- extensions: list[str] = Field(
+ extensions: list[str] = SettingsField(
title="Extensions",
default_factory=list
)
class TrayPublisherCreatePluginsModel(BaseSettingsModel):
- BatchMovieCreator: BatchMovieCreatorPlugin = Field(
+ BatchMovieCreator: BatchMovieCreatorPlugin = SettingsField(
title="Batch Movie Creator",
default_factory=BatchMovieCreatorPlugin
)
diff --git a/server_addon/traypublisher/server/settings/editorial_creators.py b/server_addon/traypublisher/server/settings/editorial_creators.py
index ac0ff0afc7..d9f5e302a4 100644
--- a/server_addon/traypublisher/server/settings/editorial_creators.py
+++ b/server_addon/traypublisher/server/settings/editorial_creators.py
@@ -1,18 +1,20 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel, task_types_enum
+from ayon_server.settings import (
+ BaseSettingsModel,
+ SettingsField,
+ task_types_enum,
+)
class ClipNameTokenizerItem(BaseSettingsModel):
_layout = "expanded"
- name: str = Field("", title="Tokenizer name")
- regex: str = Field("", title="Tokenizer regex")
+ name: str = SettingsField("", title="Tokenizer name")
+ regex: str = SettingsField("", title="Tokenizer regex")
class ShotAddTasksItem(BaseSettingsModel):
_layout = "expanded"
- name: str = Field('', title="Key")
- task_type: str = Field(
+ name: str = SettingsField('', title="Key")
+ task_type: str = SettingsField(
title="Task type",
enum_resolver=task_types_enum
)
@@ -20,7 +22,7 @@ class ShotAddTasksItem(BaseSettingsModel):
class ShotRenameSubmodel(BaseSettingsModel):
enabled: bool = True
- shot_rename_template: str = Field(
+ shot_rename_template: str = SettingsField(
"",
title="Shot rename template"
)
@@ -36,16 +38,16 @@ parent_type_enum = [
class TokenToParentConvertorItem(BaseSettingsModel):
# TODO - was 'type' must be renamed in code to `parent_type`
- parent_type: str = Field(
+ parent_type: str = SettingsField(
"Project",
enum_resolver=lambda: parent_type_enum
)
- name: str = Field(
+ name: str = SettingsField(
"",
title="Parent token name",
description="Unique name used in `Parent path template`"
)
- value: str = Field(
+ value: str = SettingsField(
"",
title="Parent token value",
description="Template where any text, Anatomy keys and Tokens could be used" # noqa
@@ -54,12 +56,12 @@ class TokenToParentConvertorItem(BaseSettingsModel):
class ShotHierarchySubmodel(BaseSettingsModel):
enabled: bool = True
- parents_path: str = Field(
+ parents_path: str = SettingsField(
"",
title="Parents path template",
description="Using keys from \"Token to parent convertor\" or tokens directly" # noqa
)
- parents: list[TokenToParentConvertorItem] = Field(
+ parents: list[TokenToParentConvertorItem] = SettingsField(
default_factory=TokenToParentConvertorItem,
title="Token to parent convertor"
)
@@ -73,22 +75,22 @@ output_file_type = [
class ProductTypePresetItem(BaseSettingsModel):
- product_type: str = Field("", title="Product type")
+ product_type: str = SettingsField("", title="Product type")
# TODO add placeholder '< Inherited >'
- variant: str = Field("", title="Variant")
- review: bool = Field(True, title="Review")
- output_file_type: str = Field(
+ variant: str = SettingsField("", title="Variant")
+ review: bool = SettingsField(True, title="Review")
+ output_file_type: str = SettingsField(
".mp4",
enum_resolver=lambda: output_file_type
)
class EditorialSimpleCreatorPlugin(BaseSettingsModel):
- default_variants: list[str] = Field(
+ default_variants: list[str] = SettingsField(
default_factory=list,
title="Default Variants"
)
- clip_name_tokenizer: list[ClipNameTokenizerItem] = Field(
+ clip_name_tokenizer: list[ClipNameTokenizerItem] = SettingsField(
default_factory=ClipNameTokenizerItem,
description=(
"Using Regex expression to create tokens. \nThose can be used"
@@ -96,25 +98,25 @@ class EditorialSimpleCreatorPlugin(BaseSettingsModel):
"\n\nTokens should be decorated with \"_\" on each side"
)
)
- shot_rename: ShotRenameSubmodel = Field(
+ shot_rename: ShotRenameSubmodel = SettingsField(
title="Shot Rename",
default_factory=ShotRenameSubmodel
)
- shot_hierarchy: ShotHierarchySubmodel = Field(
+ shot_hierarchy: ShotHierarchySubmodel = SettingsField(
title="Shot Hierarchy",
default_factory=ShotHierarchySubmodel
)
- shot_add_tasks: list[ShotAddTasksItem] = Field(
+ shot_add_tasks: list[ShotAddTasksItem] = SettingsField(
title="Add tasks to shot",
default_factory=ShotAddTasksItem
)
- product_type_presets: list[ProductTypePresetItem] = Field(
+ product_type_presets: list[ProductTypePresetItem] = SettingsField(
default_factory=list
)
class TraypublisherEditorialCreatorPlugins(BaseSettingsModel):
- editorial_simple: EditorialSimpleCreatorPlugin = Field(
+ editorial_simple: EditorialSimpleCreatorPlugin = SettingsField(
title="Editorial simple creator",
default_factory=EditorialSimpleCreatorPlugin,
)
diff --git a/server_addon/traypublisher/server/settings/imageio.py b/server_addon/traypublisher/server/settings/imageio.py
index 3df0d2f2fb..06a18a39ca 100644
--- a/server_addon/traypublisher/server/settings/imageio.py
+++ b/server_addon/traypublisher/server/settings/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,14 +35,14 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class TrayPublisherImageIOModel(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/traypublisher/server/settings/main.py b/server_addon/traypublisher/server/settings/main.py
index fad96bef2f..760c529f49 100644
--- a/server_addon/traypublisher/server/settings/main.py
+++ b/server_addon/traypublisher/server/settings/main.py
@@ -1,5 +1,4 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from .imageio import TrayPublisherImageIOModel
from .simple_creators import (
@@ -22,23 +21,23 @@ from .publish_plugins import (
class TraypublisherSettings(BaseSettingsModel):
"""Traypublisher Project Settings."""
- imageio: TrayPublisherImageIOModel = Field(
+ imageio: TrayPublisherImageIOModel = SettingsField(
default_factory=TrayPublisherImageIOModel,
title="Color Management (ImageIO)"
)
- simple_creators: list[SimpleCreatorPlugin] = Field(
+ simple_creators: list[SimpleCreatorPlugin] = SettingsField(
title="Simple Create Plugins",
default_factory=SimpleCreatorPlugin,
)
- editorial_creators: TraypublisherEditorialCreatorPlugins = Field(
+ editorial_creators: TraypublisherEditorialCreatorPlugins = SettingsField(
title="Editorial Creators",
default_factory=TraypublisherEditorialCreatorPlugins,
)
- create: TrayPublisherCreatePluginsModel = Field(
+ create: TrayPublisherCreatePluginsModel = SettingsField(
title="Create",
default_factory=TrayPublisherCreatePluginsModel
)
- publish: TrayPublisherPublishPlugins = Field(
+ publish: TrayPublisherPublishPlugins = SettingsField(
title="Publish Plugins",
default_factory=TrayPublisherPublishPlugins
)
diff --git a/server_addon/traypublisher/server/settings/publish_plugins.py b/server_addon/traypublisher/server/settings/publish_plugins.py
index 8c844f29f2..f413c86227 100644
--- a/server_addon/traypublisher/server/settings/publish_plugins.py
+++ b/server_addon/traypublisher/server/settings/publish_plugins.py
@@ -1,13 +1,11 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class ValidatePluginModel(BaseSettingsModel):
_isGroup = True
enabled: bool = True
- optional: bool = Field(True, title="Optional")
- active: bool = Field(True, title="Active")
+ optional: bool = SettingsField(True, title="Optional")
+ active: bool = SettingsField(True, title="Active")
class ValidateFrameRangeModel(ValidatePluginModel):
@@ -17,15 +15,15 @@ class ValidateFrameRangeModel(ValidatePluginModel):
class TrayPublisherPublishPlugins(BaseSettingsModel):
- CollectFrameDataFromAssetEntity: ValidatePluginModel = Field(
+ CollectFrameDataFromAssetEntity: ValidatePluginModel = SettingsField(
default_factory=ValidatePluginModel,
title="Collect Frame Data From Folder Entity",
)
- ValidateFrameRange: ValidateFrameRangeModel = Field(
+ ValidateFrameRange: ValidateFrameRangeModel = SettingsField(
title="Validate Frame Range",
default_factory=ValidateFrameRangeModel,
)
- ValidateExistingVersion: ValidatePluginModel = Field(
+ ValidateExistingVersion: ValidatePluginModel = SettingsField(
title="Validate Existing Version",
default_factory=ValidatePluginModel,
)
diff --git a/server_addon/traypublisher/server/settings/simple_creators.py b/server_addon/traypublisher/server/settings/simple_creators.py
index 8335b9d34e..924eeedd23 100644
--- a/server_addon/traypublisher/server/settings/simple_creators.py
+++ b/server_addon/traypublisher/server/settings/simple_creators.py
@@ -1,42 +1,40 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class SimpleCreatorPlugin(BaseSettingsModel):
_layout = "expanded"
- product_type: str = Field("", title="Product type")
+ product_type: str = SettingsField("", title="Product type")
# TODO add placeholder
- identifier: str = Field("", title="Identifier")
- label: str = Field("", title="Label")
- icon: str = Field("", title="Icon")
- default_variants: list[str] = Field(
+ identifier: str = SettingsField("", title="Identifier")
+ label: str = SettingsField("", title="Label")
+ icon: str = SettingsField("", title="Icon")
+ default_variants: list[str] = SettingsField(
default_factory=list,
title="Default Variants"
)
- description: str = Field(
+ description: str = SettingsField(
"",
title="Description",
widget="textarea"
)
- detailed_description: str = Field(
+ detailed_description: str = SettingsField(
"",
title="Detailed Description",
widget="textarea"
)
- allow_sequences: bool = Field(
+ allow_sequences: bool = SettingsField(
False,
title="Allow sequences"
)
- allow_multiple_items: bool = Field(
+ allow_multiple_items: bool = SettingsField(
False,
title="Allow multiple items"
)
- allow_version_control: bool = Field(
+ allow_version_control: bool = SettingsField(
False,
title="Allow version control"
)
- extensions: list[str] = Field(
+ extensions: list[str] = SettingsField(
default_factory=list,
title="Extensions"
)
diff --git a/server_addon/tvpaint/server/settings/create_plugins.py b/server_addon/tvpaint/server/settings/create_plugins.py
index 349bfdd288..b3351dca28 100644
--- a/server_addon/tvpaint/server/settings/create_plugins.py
+++ b/server_addon/tvpaint/server/settings/create_plugins.py
@@ -1,44 +1,43 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class CreateWorkfileModel(BaseSettingsModel):
- enabled: bool = Field(True)
- default_variant: str = Field(title="Default variant")
- default_variants: list[str] = Field(
+ enabled: bool = SettingsField(True)
+ default_variant: str = SettingsField(title="Default variant")
+ default_variants: list[str] = SettingsField(
default_factory=list, title="Default variants")
class CreateReviewModel(BaseSettingsModel):
- enabled: bool = Field(True)
- active_on_create: bool = Field(True, title="Active by default")
- default_variant: str = Field(title="Default variant")
- default_variants: list[str] = Field(
+ enabled: bool = SettingsField(True)
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ default_variant: str = SettingsField(title="Default variant")
+ default_variants: list[str] = SettingsField(
default_factory=list, title="Default variants")
class CreateRenderSceneModel(BaseSettingsModel):
- enabled: bool = Field(True)
- active_on_create: bool = Field(True, title="Active by default")
- mark_for_review: bool = Field(True, title="Review by default")
- default_pass_name: str = Field(title="Default beauty pass")
- default_variant: str = Field(title="Default variant")
- default_variants: list[str] = Field(
+ enabled: bool = SettingsField(True)
+ active_on_create: bool = SettingsField(True, title="Active by default")
+ mark_for_review: bool = SettingsField(True, title="Review by default")
+ default_pass_name: str = SettingsField(title="Default beauty pass")
+ default_variant: str = SettingsField(title="Default variant")
+ default_variants: list[str] = SettingsField(
default_factory=list, title="Default variants")
class CreateRenderLayerModel(BaseSettingsModel):
- mark_for_review: bool = Field(True, title="Review by default")
- default_pass_name: str = Field(title="Default beauty pass")
- default_variant: str = Field(title="Default variant")
- default_variants: list[str] = Field(
+ mark_for_review: bool = SettingsField(True, title="Review by default")
+ default_pass_name: str = SettingsField(title="Default beauty pass")
+ default_variant: str = SettingsField(title="Default variant")
+ default_variants: list[str] = SettingsField(
default_factory=list, title="Default variants")
class CreateRenderPassModel(BaseSettingsModel):
- mark_for_review: bool = Field(True, title="Review by default")
- default_variant: str = Field(title="Default variant")
- default_variants: list[str] = Field(
+ mark_for_review: bool = SettingsField(True, title="Review by default")
+ default_variant: str = SettingsField(title="Default variant")
+ default_variants: list[str] = SettingsField(
default_factory=list, title="Default variants")
@@ -58,35 +57,39 @@ class AutoDetectCreateRenderModel(BaseSettingsModel):
Would create group names "L010", "L020", ...
"""
- enabled: bool = Field(True)
- allow_group_rename: bool = Field(title="Allow group rename")
- group_name_template: str = Field(title="Group name template")
- group_idx_offset: int = Field(1, title="Group index Offset", ge=1)
- group_idx_padding: int = Field(4, title="Group index Padding", ge=1)
+ enabled: bool = SettingsField(True)
+ allow_group_rename: bool = SettingsField(title="Allow group rename")
+ group_name_template: str = SettingsField(title="Group name template")
+ group_idx_offset: int = SettingsField(
+ 1, title="Group index Offset", ge=1
+ )
+ group_idx_padding: int = SettingsField(
+ 4, title="Group index Padding", ge=1
+ )
class CreatePluginsModel(BaseSettingsModel):
- create_workfile: CreateWorkfileModel = Field(
+ create_workfile: CreateWorkfileModel = SettingsField(
default_factory=CreateWorkfileModel,
title="Create Workfile"
)
- create_review: CreateReviewModel = Field(
+ create_review: CreateReviewModel = SettingsField(
default_factory=CreateReviewModel,
title="Create Review"
)
- create_render_scene: CreateRenderSceneModel = Field(
+ create_render_scene: CreateRenderSceneModel = SettingsField(
default_factory=CreateReviewModel,
title="Create Render Scene"
)
- create_render_layer: CreateRenderLayerModel= Field(
+ create_render_layer: CreateRenderLayerModel = SettingsField(
default_factory=CreateRenderLayerModel,
title="Create Render Layer"
)
- create_render_pass: CreateRenderPassModel = Field(
+ create_render_pass: CreateRenderPassModel = SettingsField(
default_factory=CreateRenderPassModel,
title="Create Render Pass"
)
- auto_detect_render: AutoDetectCreateRenderModel = Field(
+ auto_detect_render: AutoDetectCreateRenderModel = SettingsField(
default_factory=AutoDetectCreateRenderModel,
title="Auto-Detect Create Render",
)
diff --git a/server_addon/tvpaint/server/settings/filters.py b/server_addon/tvpaint/server/settings/filters.py
index 009febae06..9720e82281 100644
--- a/server_addon/tvpaint/server/settings/filters.py
+++ b/server_addon/tvpaint/server/settings/filters.py
@@ -1,12 +1,10 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
class FiltersSubmodel(BaseSettingsModel):
_layout = "compact"
- name: str = Field(title="Name")
- value: str = Field(
+ name: str = SettingsField(title="Name")
+ value: str = SettingsField(
"",
title="Textarea",
widget="textarea",
@@ -14,6 +12,6 @@ class FiltersSubmodel(BaseSettingsModel):
class PublishFiltersModel(BaseSettingsModel):
- env_search_replace_values: list[FiltersSubmodel] = Field(
+ env_search_replace_values: list[FiltersSubmodel] = SettingsField(
default_factory=list
)
diff --git a/server_addon/tvpaint/server/settings/imageio.py b/server_addon/tvpaint/server/settings/imageio.py
index 50f8b7eef4..aaf3fbf34e 100644
--- a/server_addon/tvpaint/server/settings/imageio.py
+++ b/server_addon/tvpaint/server/settings/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,14 +35,14 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class TVPaintImageIOModel(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/tvpaint/server/settings/main.py b/server_addon/tvpaint/server/settings/main.py
index 102acfaf3d..c6b6c9ab12 100644
--- a/server_addon/tvpaint/server/settings/main.py
+++ b/server_addon/tvpaint/server/settings/main.py
@@ -1,6 +1,6 @@
-from pydantic import Field
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
ensure_unique_names,
)
@@ -15,23 +15,23 @@ from .publish_plugins import (
class TvpaintSettings(BaseSettingsModel):
- imageio: TVPaintImageIOModel = Field(
+ imageio: TVPaintImageIOModel = SettingsField(
default_factory=TVPaintImageIOModel,
title="Color Management (ImageIO)"
)
- stop_timer_on_application_exit: bool = Field(
+ stop_timer_on_application_exit: bool = SettingsField(
title="Stop timer on application exit")
- create: CreatePluginsModel = Field(
+ create: CreatePluginsModel = SettingsField(
default_factory=CreatePluginsModel,
title="Create plugins"
)
- publish: PublishPluginsModel = Field(
+ publish: PublishPluginsModel = SettingsField(
default_factory=PublishPluginsModel,
title="Publish plugins")
- load: LoadPluginsModel = Field(
+ load: LoadPluginsModel = SettingsField(
default_factory=LoadPluginsModel,
title="Load plugins")
- workfile_builder: WorkfileBuilderPlugin = Field(
+ workfile_builder: WorkfileBuilderPlugin = SettingsField(
default_factory=WorkfileBuilderPlugin,
title="Workfile Builder"
)
diff --git a/server_addon/tvpaint/server/settings/publish_plugins.py b/server_addon/tvpaint/server/settings/publish_plugins.py
index 76c7eaac01..0623524c92 100644
--- a/server_addon/tvpaint/server/settings/publish_plugins.py
+++ b/server_addon/tvpaint/server/settings/publish_plugins.py
@@ -1,11 +1,9 @@
-from pydantic import Field
-
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.types import ColorRGBA_uint8
class CollectRenderInstancesModel(BaseSettingsModel):
- ignore_render_pass_transparency: bool = Field(
+ ignore_render_pass_transparency: bool = SettingsField(
title="Ignore Render Pass opacity"
)
@@ -13,15 +11,15 @@ class CollectRenderInstancesModel(BaseSettingsModel):
class ExtractSequenceModel(BaseSettingsModel):
"""Review BG color is used for whole scene review and for thumbnails."""
# TODO Use alpha color
- review_bg: ColorRGBA_uint8 = Field(
+ review_bg: ColorRGBA_uint8 = SettingsField(
(255, 255, 255, 1.0),
title="Review BG color")
class ValidatePluginModel(BaseSettingsModel):
enabled: bool = True
- optional: bool = Field(True, title="Optional")
- active: bool = Field(True, title="Active")
+ optional: bool = SettingsField(True, title="Optional")
+ active: bool = SettingsField(True, title="Active")
def compression_enum():
@@ -44,7 +42,7 @@ class ExtractConvertToEXRModel(BaseSettingsModel):
enabled: bool = False
replace_pngs: bool = True
- exr_compression: str = Field(
+ exr_compression: str = SettingsField(
"ZIP",
enum_resolver=compression_enum,
title="EXR Compression"
@@ -53,46 +51,46 @@ class ExtractConvertToEXRModel(BaseSettingsModel):
class LoadImageDefaultModel(BaseSettingsModel):
_layout = "expanded"
- stretch: bool = Field(title="Stretch")
- timestretch: bool = Field(title="TimeStretch")
- preload: bool = Field(title="Preload")
+ stretch: bool = SettingsField(title="Stretch")
+ timestretch: bool = SettingsField(title="TimeStretch")
+ preload: bool = SettingsField(title="Preload")
class LoadImageModel(BaseSettingsModel):
- defaults: LoadImageDefaultModel = Field(
+ defaults: LoadImageDefaultModel = SettingsField(
default_factory=LoadImageDefaultModel
)
class PublishPluginsModel(BaseSettingsModel):
- CollectRenderInstances: CollectRenderInstancesModel = Field(
+ CollectRenderInstances: CollectRenderInstancesModel = SettingsField(
default_factory=CollectRenderInstancesModel,
title="Collect Render Instances")
- ExtractSequence: ExtractSequenceModel = Field(
+ ExtractSequence: ExtractSequenceModel = SettingsField(
default_factory=ExtractSequenceModel,
title="Extract Sequence")
- ValidateProjectSettings: ValidatePluginModel = Field(
+ ValidateProjectSettings: ValidatePluginModel = SettingsField(
default_factory=ValidatePluginModel,
title="Validate Project Settings")
- ValidateMarks: ValidatePluginModel = Field(
+ ValidateMarks: ValidatePluginModel = SettingsField(
default_factory=ValidatePluginModel,
title="Validate MarkIn/Out")
- ValidateStartFrame: ValidatePluginModel = Field(
+ ValidateStartFrame: ValidatePluginModel = SettingsField(
default_factory=ValidatePluginModel,
title="Validate Scene Start Frame")
- ValidateAssetName: ValidatePluginModel = Field(
+ ValidateAssetName: ValidatePluginModel = SettingsField(
default_factory=ValidatePluginModel,
title="Validate Folder Name")
- ExtractConvertToEXR: ExtractConvertToEXRModel = Field(
+ ExtractConvertToEXR: ExtractConvertToEXRModel = SettingsField(
default_factory=ExtractConvertToEXRModel,
title="Extract Convert To EXR")
class LoadPluginsModel(BaseSettingsModel):
- LoadImage: LoadImageModel = Field(
+ LoadImage: LoadImageModel = SettingsField(
default_factory=LoadImageModel,
title="Load Image")
- ImportImage: LoadImageModel = Field(
+ ImportImage: LoadImageModel = SettingsField(
default_factory=LoadImageModel,
title="Import Image")
diff --git a/server_addon/tvpaint/server/settings/workfile_builder.py b/server_addon/tvpaint/server/settings/workfile_builder.py
index e0aba5da7e..0799497bf9 100644
--- a/server_addon/tvpaint/server/settings/workfile_builder.py
+++ b/server_addon/tvpaint/server/settings/workfile_builder.py
@@ -1,30 +1,29 @@
-from pydantic import Field
-
from ayon_server.settings import (
BaseSettingsModel,
+ SettingsField,
MultiplatformPathModel,
task_types_enum,
)
class CustomBuilderTemplate(BaseSettingsModel):
- task_types: list[str] = Field(
+ task_types: list[str] = SettingsField(
default_factory=list,
title="Task types",
enum_resolver=task_types_enum
)
- template_path: MultiplatformPathModel = Field(
+ template_path: MultiplatformPathModel = SettingsField(
default_factory=MultiplatformPathModel
)
class WorkfileBuilderPlugin(BaseSettingsModel):
_title = "Workfile Builder"
- create_first_version: bool = Field(
+ create_first_version: bool = SettingsField(
False,
title="Create first workfile"
)
- custom_templates: list[CustomBuilderTemplate] = Field(
+ custom_templates: list[CustomBuilderTemplate] = SettingsField(
default_factory=CustomBuilderTemplate
)
diff --git a/server_addon/unreal/server/imageio.py b/server_addon/unreal/server/imageio.py
index dde042ba47..853d476587 100644
--- a/server_addon/unreal/server/imageio.py
+++ b/server_addon/unreal/server/imageio.py
@@ -1,29 +1,29 @@
-from pydantic import Field, validator
-from ayon_server.settings import BaseSettingsModel
+from pydantic import validator
+from ayon_server.settings import BaseSettingsModel, SettingsField
from ayon_server.settings.validators import ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
- override_global_config: bool = Field(
+ override_global_config: bool = SettingsField(
False,
title="Override global OCIO config"
)
- filepath: list[str] = Field(
+ filepath: list[str] = SettingsField(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
- name: str = Field("", title="Rule name")
- pattern: str = Field("", title="Regex pattern")
- colorspace: str = Field("", title="Colorspace name")
- ext: str = Field("", title="File extension")
+ name: str = SettingsField("", title="Rule name")
+ pattern: str = SettingsField("", title="Regex pattern")
+ colorspace: str = SettingsField("", title="Colorspace name")
+ ext: str = SettingsField("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
- activate_host_rules: bool = Field(False)
- rules: list[ImageIOFileRuleModel] = Field(
+ activate_host_rules: bool = SettingsField(False)
+ rules: list[ImageIOFileRuleModel] = SettingsField(
default_factory=list,
title="Rules"
)
@@ -35,14 +35,14 @@ class ImageIOFileRulesModel(BaseSettingsModel):
class UnrealImageIOModel(BaseSettingsModel):
- activate_host_color_management: bool = Field(
+ activate_host_color_management: bool = SettingsField(
True, title="Enable Color Management"
)
- ocio_config: ImageIOConfigModel = Field(
+ ocio_config: ImageIOConfigModel = SettingsField(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
- file_rules: ImageIOFileRulesModel = Field(
+ file_rules: ImageIOFileRulesModel = SettingsField(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
diff --git a/server_addon/unreal/server/settings.py b/server_addon/unreal/server/settings.py
index 110ccc563a..5f54fb6c75 100644
--- a/server_addon/unreal/server/settings.py
+++ b/server_addon/unreal/server/settings.py
@@ -1,11 +1,10 @@
-from pydantic import Field
-from ayon_server.settings import BaseSettingsModel
+from ayon_server.settings import BaseSettingsModel, SettingsField
from .imageio import UnrealImageIOModel
class ProjectSetup(BaseSettingsModel):
- dev_mode: bool = Field(
+ dev_mode: bool = SettingsField(
False,
title="Dev mode"
)
@@ -21,32 +20,32 @@ def _render_format_enum():
class UnrealSettings(BaseSettingsModel):
- imageio: UnrealImageIOModel = Field(
+ imageio: UnrealImageIOModel = SettingsField(
default_factory=UnrealImageIOModel,
title="Color Management (ImageIO)"
)
- level_sequences_for_layouts: bool = Field(
+ level_sequences_for_layouts: bool = SettingsField(
False,
title="Generate level sequences when loading layouts"
)
- delete_unmatched_assets: bool = Field(
+ delete_unmatched_assets: bool = SettingsField(
False,
title="Delete assets that are not matched"
)
- render_config_path: str = Field(
+ render_config_path: str = SettingsField(
"",
title="Render Config Path"
)
- preroll_frames: int = Field(
+ preroll_frames: int = SettingsField(
0,
title="Pre-roll frames"
)
- render_format: str = Field(
+ render_format: str = SettingsField(
"png",
title="Render format",
enum_resolver=_render_format_enum
)
- project_setup: ProjectSetup = Field(
+ project_setup: ProjectSetup = SettingsField(
default_factory=ProjectSetup,
title="Project Setup",
)
diff --git a/start.py b/start.py
index 54a252ccf3..e4ada05822 100644
--- a/start.py
+++ b/start.py
@@ -1186,10 +1186,6 @@ def get_info(use_staging=None) -> list:
inf.append(("Using Deadline webservice at",
os.environ.get("DEADLINE_REST_URL")))
- if os.environ.get('MUSTER_REST_URL'):
- inf.append(("Using Muster at",
- os.environ.get("MUSTER_REST_URL")))
-
# Reinitialize
Logger.initialize()
diff --git a/website/docs/admin_settings_system.md b/website/docs/admin_settings_system.md
index 8abcefd24d..aefeaf893a 100644
--- a/website/docs/admin_settings_system.md
+++ b/website/docs/admin_settings_system.md
@@ -95,13 +95,6 @@ Disable/Enable Standalone Publisher option
**`Deadline Rest URL`** - URL to deadline webservice that. This URL must be reachable from every
workstation that should be submitting render jobs to deadline via OpenPype.
-### Muster
-
-**`Muster Rest URL`** - URL to Muster webservice that. This URL must be reachable from every
-workstation that should be submitting render jobs to muster via OpenPype.
-
-**`templates mapping`** - you can customize Muster templates to match your existing setup here.
-
### Royal Render
**`Royal Render Root Paths`** - multi platform paths to Royal Render installation.
diff --git a/website/docs/artist_hosts_maya.md b/website/docs/artist_hosts_maya.md
index e36ccb77d2..364461f4b6 100644
--- a/website/docs/artist_hosts_maya.md
+++ b/website/docs/artist_hosts_maya.md
@@ -386,14 +386,11 @@ models you've put into layout.
OpenPype in Maya can be used for submitting renders to render farm and for their
subsequent publishing. Right now OpenPype support [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline)
-and [Virtual Vertex Muster](https://www.vvertex.com/overview/).
+and [Royal Render](https://www.royalrender.de/).
-* For setting up Muster support see [admin section](module_muster.md)
+* For setting up Royal Render support see [admin section](module_royalrender.md)
* For setting up Deadline support see [here](module_deadline.md)
-:::note Muster login
-Muster is now configured so every user must log in to get authentication support. If OpenPype founds out this token is missing or expired, it will ask again for credentials.
-:::
### Creating basic render setup
@@ -436,12 +433,7 @@ checked **Use selection** it will use your current Render Layers (if you have th
if no render layers is present in scene, it will create one for you named **Main** and under it
default collection with `*` selector.
-No matter if you use *Deadline* or *Muster*, OpenPype will try to connect to render farm and
-fetch machine pool list.
-
-:::note Muster login
-This might fail on *Muster* in the event that you have expired authentication token. In that case, you'll be presented with login window. Nothing will be created in the scene until you log in again and do create **Render** again.
-:::
+OpenPype will try to connect to render farm and fetch machine pool list.
So now my scene now looks like this:
diff --git a/website/docs/dev_settings.md b/website/docs/dev_settings.md
index 1010169a5f..831536c460 100644
--- a/website/docs/dev_settings.md
+++ b/website/docs/dev_settings.md
@@ -34,7 +34,7 @@ As was mentioned schema items define output type of values, how they are stored
- `"is_file"` - this key is used when defaults values are stored in the file. Its value matches the filename where values are stored
- key is validated, must be unique in hierarchy otherwise it won't be possible to store default values
- make sense to fill it only if it's value if `true`
-
+
- `"is_group"` - define that all values under a key in settings hierarchy will be overridden if any value is modified
- this key is not allowed for all inputs as they may not have technical ability to handle it
- key is validated, must be unique in hierarchy and is automatically filled on last possible item if is not defined in schemas
@@ -710,7 +710,7 @@ How output of the schema could look like on save:
"object_type": "text",
"is_group": true,
"key": "templates_mapping",
- "label": "Muster - Templates mapping",
+ "label": "Deadline - Templates mapping",
"is_file": true
}
```
@@ -726,7 +726,7 @@ How output of the schema could look like on save:
},
"is_group": true,
"key": "templates_mapping",
- "label": "Muster - Templates mapping",
+ "label": "Deadline - Templates mapping",
"is_file": true
}
```
diff --git a/website/docs/features.md b/website/docs/features.md
index fd6196f71f..43fd522346 100644
--- a/website/docs/features.md
+++ b/website/docs/features.md
@@ -238,17 +238,11 @@ Create preview quicktimes from rendered frames
publish rendered outputs to Avalon and Ftrack
- ## Muster
-
-Publish to deadline from
-
+## Royal Render
+Publish to Royal Render from
Maya
-
Nuke
-Create preview quicktimes from rendered frames
-
-publish rendered outputs to Avalon and Ftrack
## Clockify
diff --git a/website/docs/module_muster.md b/website/docs/module_muster.md
deleted file mode 100644
index 28c4b33aa8..0000000000
--- a/website/docs/module_muster.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: module_muster
-title: Muster Administration
-sidebar_label: Muster
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-
diff --git a/website/docs/pype2/admin_hosts.md b/website/docs/pype2/admin_hosts.md
index 24efef7f05..f7aa5bd54a 100644
--- a/website/docs/pype2/admin_hosts.md
+++ b/website/docs/pype2/admin_hosts.md
@@ -157,6 +157,10 @@ machine setup on farm. If there is no mix of windows/linux machines on farm, the
## Virtual Vertex Muster
+:::warning
+Support for Muster was removed from OpenPype and AYON.
+:::
+
Pype supports rendering with [Muster](https://www.vvertex.com/). To enable it:
1. Add `muster` to **init_env** to your `deploy.json`
file:
diff --git a/website/sidebars.js b/website/sidebars.js
index b885181fb6..0d151433ea 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -110,7 +110,6 @@ module.exports = {
"module_kitsu",
"module_site_sync",
"module_deadline",
- "module_muster",
"module_royalrender",
"module_clockify",
"module_slack"
diff --git a/website/src/pages/index.js b/website/src/pages/index.js
index 52302ec285..92ed404c35 100644
--- a/website/src/pages/index.js
+++ b/website/src/pages/index.js
@@ -29,7 +29,7 @@ const services = [
title: <>Extensible>,
description: (
<>
- Project needs differ, clients differ and studios differ. OpenPype is designed to fit into your workflow and bend to your will. If a feature is missing, it can most probably be added.
+ Project needs differ, clients differ and studios differ. OpenPype is designed to fit into your workflow and bend to your will. If a feature is missing, it can most probably be added.
>
),
},
@@ -310,7 +310,7 @@ function Home() {
Why choose openPype?
- Pipeline is the technical backbone of your production. It means, that whatever solution you use, it will cause vendor-lock to some extend.
+ Pipeline is the technical backbone of your production. It means, that whatever solution you use, it will cause vendor-lock to some extend.
You can mitigate this risk by developing purely in-house tools, however, that just shifts the problem from a software vendor to your developers. Sooner or later, you'll hit the limits of such solution. In-house tools tend to be undocumented, narrow focused and heavily dependent on a very few or even a single developer.
@@ -332,7 +332,7 @@ function Home() {
Maya
-
+
Flame
@@ -422,7 +422,7 @@ function Home() {
Deadline
-
+
Royal Render
@@ -443,17 +443,12 @@ function Home() {
Planned or in development by us and OpenPype community.