mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge branch 'develop' into enhancement/remove-python-2-vendor
This commit is contained in:
commit
fa42d0217b
53 changed files with 97 additions and 41 deletions
|
|
@ -35,14 +35,14 @@ AYON addons should contain separated logic of specific kind of implementation, s
|
|||
- addon has more logic when used in a tray
|
||||
- it is possible that addon can be used only in the tray
|
||||
- abstract methods
|
||||
- `tray_init` - initialization triggered after `initialize` when used in `TrayModulesManager` and before `connect_with_addons`
|
||||
- `tray_init` - initialization triggered after `initialize` when used in `TrayAddonsManager` and before `connect_with_addons`
|
||||
- `tray_menu` - add actions to tray widget's menu that represent the addon
|
||||
- `tray_start` - start of addon's login in tray
|
||||
- addon is initialized and connected with other addons
|
||||
- `tray_exit` - addon's cleanup like stop and join threads etc.
|
||||
- order of calling is based on implementation this order is how it works with `TrayModulesManager`
|
||||
- order of calling is based on implementation this order is how it works with `TrayAddonsManager`
|
||||
- it is recommended to import and use GUI implementation only in these methods
|
||||
- has attribute `tray_initialized` (bool) which is set to False by default and is set by `TrayModulesManager` to True after `tray_init`
|
||||
- has attribute `tray_initialized` (bool) which is set to False by default and is set by `TrayAddonsManager` to True after `tray_init`
|
||||
- if addon has logic only in tray or for both then should be checking for `tray_initialized` attribute to decide how should handle situations
|
||||
|
||||
### ITrayService
|
||||
|
|
|
|||
|
|
@ -37,14 +37,7 @@ IGNORED_DEFAULT_FILENAMES = (
|
|||
"base.py",
|
||||
"interfaces.py",
|
||||
"click_wrap.py",
|
||||
"example_addons",
|
||||
"default_modules",
|
||||
)
|
||||
IGNORED_HOSTS_IN_AYON = {
|
||||
"flame",
|
||||
"harmony",
|
||||
}
|
||||
IGNORED_MODULES_IN_AYON = set()
|
||||
|
||||
# When addon was moved from ayon-core codebase
|
||||
# - this is used to log the missing addon
|
||||
|
|
@ -61,6 +54,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = {
|
|||
"hiero": VersionInfo(0, 2, 0),
|
||||
"max": VersionInfo(0, 2, 0),
|
||||
"photoshop": VersionInfo(0, 2, 0),
|
||||
"timers_manager": VersionInfo(0, 2, 0),
|
||||
"traypublisher": VersionInfo(0, 2, 0),
|
||||
"tvpaint": VersionInfo(0, 2, 0),
|
||||
"maya": VersionInfo(0, 2, 0),
|
||||
|
|
@ -419,12 +413,6 @@ def _load_addons_in_core(
|
|||
hosts_dir = os.path.join(AYON_CORE_ROOT, "hosts")
|
||||
modules_dir = os.path.join(AYON_CORE_ROOT, "modules")
|
||||
|
||||
ignored_host_names = set(IGNORED_HOSTS_IN_AYON)
|
||||
ignored_module_dir_filenames = (
|
||||
set(IGNORED_DEFAULT_FILENAMES)
|
||||
| IGNORED_MODULES_IN_AYON
|
||||
)
|
||||
|
||||
for dirpath in {hosts_dir, modules_dir}:
|
||||
if not os.path.exists(dirpath):
|
||||
log.warning((
|
||||
|
|
@ -433,10 +421,9 @@ def _load_addons_in_core(
|
|||
continue
|
||||
|
||||
is_in_modules_dir = dirpath == modules_dir
|
||||
ignored_filenames = set()
|
||||
if is_in_modules_dir:
|
||||
ignored_filenames = ignored_module_dir_filenames
|
||||
else:
|
||||
ignored_filenames = ignored_host_names
|
||||
ignored_filenames = set(IGNORED_DEFAULT_FILENAMES)
|
||||
|
||||
for filename in os.listdir(dirpath):
|
||||
# Ignore filenames
|
||||
|
|
@ -502,9 +489,6 @@ def _load_addons_in_core(
|
|||
|
||||
|
||||
def _load_addons():
|
||||
# Support to use 'openpype' imports
|
||||
sys.modules["openpype"] = sys.modules["ayon_core"]
|
||||
|
||||
# Key under which will be modules imported in `sys.modules`
|
||||
modules_key = "openpype_modules"
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
__version__ = "0.1.1"
|
||||
|
|
@ -13,9 +13,7 @@ qtawesome = "0.7.3"
|
|||
|
||||
[ayon.runtimeDependencies]
|
||||
aiohttp-middlewares = "^2.0.0"
|
||||
wsrpc_aiohttp = "^3.1.1" # websocket server
|
||||
Click = "^8"
|
||||
OpenTimelineIO = "0.16.0"
|
||||
opencolorio = "2.2.1"
|
||||
Pillow = "9.5.0"
|
||||
pynput = "^1.7.2" # Timers manager - TODO remove
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .constants import (
|
||||
APPLICATIONS_ADDON_ROOT,
|
||||
DEFAULT_ENV_SUBGROUP,
|
||||
|
|
@ -31,6 +32,8 @@ from .addon import ApplicationsAddon
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"APPLICATIONS_ADDON_ROOT",
|
||||
"DEFAULT_ENV_SUBGROUP",
|
||||
"PLATFORM_NAMES",
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import json
|
|||
|
||||
from ayon_core.addon import AYONAddon, IPluginPaths, click_wrap
|
||||
|
||||
from .version import __version__
|
||||
from .constants import APPLICATIONS_ADDON_ROOT
|
||||
from .defs import LaunchTypes
|
||||
from .manager import ApplicationManager
|
||||
|
|
@ -10,6 +11,7 @@ from .manager import ApplicationManager
|
|||
|
||||
class ApplicationsAddon(AYONAddon, IPluginPaths):
|
||||
name = "applications"
|
||||
version = __version__
|
||||
|
||||
def initialize(self, settings):
|
||||
# TODO remove when addon is removed from ayon-core
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
name = "applications"
|
||||
title = "Applications"
|
||||
version = "0.2.2"
|
||||
version = "0.2.3"
|
||||
|
||||
client_dir = "ayon_applications"
|
||||
|
||||
ayon_server_version = ">=1.0.7"
|
||||
ayon_launcher_version = ">=1.0.2"
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@ import time
|
|||
|
||||
from ayon_core.addon import AYONAddon, ITrayAddon, IPluginPaths
|
||||
|
||||
from .version import __version__
|
||||
from .constants import CLOCKIFY_FTRACK_USER_PATH, CLOCKIFY_FTRACK_SERVER_PATH
|
||||
|
||||
|
||||
class ClockifyAddon(AYONAddon, ITrayAddon, IPluginPaths):
|
||||
name = "clockify"
|
||||
version = __version__
|
||||
|
||||
def initialize(self, studio_settings):
|
||||
enabled = self.name in studio_settings
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'clockify' version."""
|
||||
__version__ = "0.2.0"
|
||||
__version__ = "0.2.1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name = "clockify"
|
||||
title = "Clockify"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
client_dir = "ayon_clockify"
|
||||
|
||||
ayon_required_addons = {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .addon import (
|
||||
HoudiniAddon,
|
||||
HOUDINI_HOST_DIR,
|
||||
|
|
@ -5,6 +6,8 @@ from .addon import (
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"HoudiniAddon",
|
||||
"HOUDINI_HOST_DIR",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
import os
|
||||
from ayon_core.addon import AYONAddon, IHostAddon
|
||||
|
||||
from .version import __version__
|
||||
|
||||
HOUDINI_HOST_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class HoudiniAddon(AYONAddon, IHostAddon):
|
||||
name = "houdini"
|
||||
version = __version__
|
||||
host_name = "houdini"
|
||||
|
||||
def add_implementation_envs(self, env, _app):
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'houdini' version."""
|
||||
__version__ = "0.3.0"
|
||||
__version__ = "0.3.1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name = "houdini"
|
||||
title = "Houdini"
|
||||
version = "0.3.0"
|
||||
version = "0.3.1"
|
||||
|
||||
client_dir = "ayon_houdini"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .addon import (
|
||||
MaxAddon,
|
||||
MAX_HOST_DIR,
|
||||
|
|
@ -5,6 +6,8 @@ from .addon import (
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"MaxAddon",
|
||||
"MAX_HOST_DIR",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,14 @@
|
|||
import os
|
||||
from ayon_core.addon import AYONAddon, IHostAddon
|
||||
|
||||
from .version import __version__
|
||||
|
||||
MAX_HOST_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class MaxAddon(AYONAddon, IHostAddon):
|
||||
name = "max"
|
||||
version = __version__
|
||||
host_name = "max"
|
||||
|
||||
def add_implementation_envs(self, env, _app):
|
||||
|
|
|
|||
3
server_addon/max/client/ayon_max/version.py
Normal file
3
server_addon/max/client/ayon_max/version.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'max' version."""
|
||||
__version__ = "0.2.1"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
name = "max"
|
||||
title = "Max"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
client_dir = "ayon_max"
|
||||
|
||||
ayon_required_addons = {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .addon import (
|
||||
MayaAddon,
|
||||
MAYA_ROOT_DIR,
|
||||
|
|
@ -5,6 +6,8 @@ from .addon import (
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"MayaAddon",
|
||||
"MAYA_ROOT_DIR",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
import os
|
||||
from ayon_core.addon import AYONAddon, IHostAddon
|
||||
|
||||
from .version import __version__
|
||||
|
||||
MAYA_ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class MayaAddon(AYONAddon, IHostAddon):
|
||||
name = "maya"
|
||||
version = __version__
|
||||
host_name = "maya"
|
||||
|
||||
def add_implementation_envs(self, env, _app):
|
||||
|
|
|
|||
0
server_addon/maya/client/ayon_maya/version.py
Normal file
0
server_addon/maya/client/ayon_maya/version.py
Normal file
|
|
@ -1,6 +1,7 @@
|
|||
name = "maya"
|
||||
title = "Maya"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
client_dir = "ayon_maya"
|
||||
|
||||
ayon_required_addons = {
|
||||
"core": ">0.3.2",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .addon import (
|
||||
NUKE_ROOT_DIR,
|
||||
NukeAddon,
|
||||
|
|
@ -5,6 +6,8 @@ from .addon import (
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"NUKE_ROOT_DIR",
|
||||
"NukeAddon",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,14 @@ import os
|
|||
import platform
|
||||
from ayon_core.addon import AYONAddon, IHostAddon
|
||||
|
||||
from .version import __version__
|
||||
|
||||
NUKE_ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class NukeAddon(AYONAddon, IHostAddon):
|
||||
name = "nuke"
|
||||
version = __version__
|
||||
host_name = "nuke"
|
||||
|
||||
def add_implementation_envs(self, env, _app):
|
||||
|
|
|
|||
3
server_addon/nuke/client/ayon_nuke/version.py
Normal file
3
server_addon/nuke/client/ayon_nuke/version.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'nuke' version."""
|
||||
__version__ = "0.2.2"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
name = "nuke"
|
||||
title = "Nuke"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
|
||||
client_dir = "ayon_nuke"
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import os
|
|||
|
||||
import pyblish.api
|
||||
|
||||
from openpype_modules.webpublisher.lib import (
|
||||
from ayon_webpublisher.lib import (
|
||||
get_batch_context_info,
|
||||
parse_json
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'photoshop' version."""
|
||||
__version__ = "0.2.1"
|
||||
__version__ = "0.2.2"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name = "photoshop"
|
||||
title = "Photoshop"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
|
||||
client_dir = "ayon_photoshop"
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ class CollectSequencesFromJob(pyblish.api.ContextPlugin):
|
|||
order = pyblish.api.CollectorOrder
|
||||
targets = ["rr_control"]
|
||||
label = "Collect Rendered Frames"
|
||||
settings_category = "royalrender"
|
||||
review = True
|
||||
|
||||
def process(self, context):
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'royalrender' version."""
|
||||
__version__ = "0.2.0"
|
||||
__version__ = "0.2.1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name = "royalrender"
|
||||
title = "Royal Render"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
|
||||
client_dir = "ayon_royalrender"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from .version import __version__
|
||||
from .addon import (
|
||||
SubstanceAddon,
|
||||
SUBSTANCE_HOST_DIR,
|
||||
|
|
@ -5,6 +6,8 @@ from .addon import (
|
|||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"SubstanceAddon",
|
||||
"SUBSTANCE_HOST_DIR"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
import os
|
||||
from ayon_core.addon import AYONAddon, IHostAddon
|
||||
|
||||
from .version import __version__
|
||||
|
||||
SUBSTANCE_HOST_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class SubstanceAddon(AYONAddon, IHostAddon):
|
||||
name = "substancepainter"
|
||||
version = __version__
|
||||
host_name = "substancepainter"
|
||||
|
||||
def add_implementation_envs(self, env, _app):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'substancepainter' version."""
|
||||
__version__ = "0.2.1"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
name = "substancepainter"
|
||||
title = "Substance Painter"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
|
||||
client_dir = "ayon_substancepainter"
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'timers_manager' version."""
|
||||
__version__ = "0.2.0"
|
||||
6
server_addon/timers_manager/client/pyproject.toml
Normal file
6
server_addon/timers_manager/client/pyproject.toml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[project]
|
||||
name="timers_manager"
|
||||
description="AYON TimersManager addon."
|
||||
|
||||
[ayon.runtimeDependencies]
|
||||
pynput = "^1.7.2"
|
||||
|
|
@ -1,3 +1,10 @@
|
|||
name = "timers_manager"
|
||||
title = "Timers Manager"
|
||||
version = "0.1.1"
|
||||
version = "0.2.0"
|
||||
|
||||
client_dir = "ayon_timers_manager"
|
||||
|
||||
ayon_required_addons = {
|
||||
"core": ">0.3.2",
|
||||
}
|
||||
ayon_compatible_addons = {}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
from .version import __version__
|
||||
from .addon import TrayPublishAddon
|
||||
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
|
||||
"TrayPublishAddon",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -10,12 +10,15 @@ from ayon_core.addon import (
|
|||
IHostAddon,
|
||||
)
|
||||
|
||||
from .version import __version__
|
||||
|
||||
TRAYPUBLISH_ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class TrayPublishAddon(AYONAddon, IHostAddon, ITrayAction):
|
||||
label = "Publisher"
|
||||
name = "traypublisher"
|
||||
version = __version__
|
||||
host_name = "traypublisher"
|
||||
|
||||
def initialize(self, settings):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Package declaring AYON addon 'traypublisher' version."""
|
||||
__version__ = "0.2.2"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
name = "traypublisher"
|
||||
title = "TrayPublisher"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
|
||||
client_dir = "ayon_traypublisher"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue