Merge branch 'develop' into enhancement/remove-python-2-vendor

This commit is contained in:
Jakub Trllo 2024-06-07 15:07:43 +02:00 committed by GitHub
commit fa42d0217b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
53 changed files with 97 additions and 41 deletions

View file

@ -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

View file

@ -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"

View file

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

View file

@ -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

View file

@ -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",

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring AYON addon 'clockify' version."""
__version__ = "0.2.0"
__version__ = "0.2.1"

View file

@ -1,6 +1,6 @@
name = "clockify"
title = "Clockify"
version = "0.2.0"
version = "0.2.1"
client_dir = "ayon_clockify"
ayon_required_addons = {

View file

@ -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",
)

View file

@ -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):

View file

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring AYON addon 'houdini' version."""
__version__ = "0.3.0"
__version__ = "0.3.1"

View file

@ -1,6 +1,6 @@
name = "houdini"
title = "Houdini"
version = "0.3.0"
version = "0.3.1"
client_dir = "ayon_houdini"

View file

@ -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",
)

View file

@ -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):

View file

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

View file

@ -1,6 +1,6 @@
name = "max"
title = "Max"
version = "0.2.0"
version = "0.2.1"
client_dir = "ayon_max"
ayon_required_addons = {

View file

@ -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",
)

View file

@ -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):

View 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",

View file

@ -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",
)

View file

@ -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):

View file

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

View file

@ -1,6 +1,6 @@
name = "nuke"
title = "Nuke"
version = "0.2.1"
version = "0.2.2"
client_dir = "ayon_nuke"

View file

@ -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
)

View file

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring AYON addon 'photoshop' version."""
__version__ = "0.2.1"
__version__ = "0.2.2"

View file

@ -1,6 +1,6 @@
name = "photoshop"
title = "Photoshop"
version = "0.2.1"
version = "0.2.2"
client_dir = "ayon_photoshop"

View file

@ -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):

View file

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring AYON addon 'royalrender' version."""
__version__ = "0.2.0"
__version__ = "0.2.1"

View file

@ -1,6 +1,6 @@
name = "royalrender"
title = "Royal Render"
version = "0.2.0"
version = "0.2.1"
client_dir = "ayon_royalrender"

View file

@ -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"
)

View file

@ -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):

View file

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

View file

@ -1,6 +1,6 @@
name = "substancepainter"
title = "Substance Painter"
version = "0.2.0"
version = "0.2.1"
client_dir = "ayon_substancepainter"

View file

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

View file

@ -0,0 +1,6 @@
[project]
name="timers_manager"
description="AYON TimersManager addon."
[ayon.runtimeDependencies]
pynput = "^1.7.2"

View file

@ -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 = {}

View file

@ -1,6 +1,9 @@
from .version import __version__
from .addon import TrayPublishAddon
__all__ = (
"__version__",
"TrayPublishAddon",
)

View file

@ -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):

View file

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

View file

@ -1,6 +1,6 @@
name = "traypublisher"
title = "TrayPublisher"
version = "0.2.1"
version = "0.2.2"
client_dir = "ayon_traypublisher"