mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
better check of overriden '__init__' method
This commit is contained in:
parent
176fc9a935
commit
e2c3a0f5be
1 changed files with 29 additions and 1 deletions
|
|
@ -214,7 +214,7 @@ class BaseCreator:
|
|||
# Backwards compatibility for system settings
|
||||
self.apply_settings(project_settings, system_settings)
|
||||
|
||||
init_overriden = self.__class__.__init__ is not BaseCreator.__init__
|
||||
init_overriden = self._method_is_overriden("__init__")
|
||||
if init_overriden or expect_system_settings:
|
||||
self.log.warning((
|
||||
"WARNING: Source - Create plugin {}."
|
||||
|
|
@ -225,6 +225,19 @@ class BaseCreator:
|
|||
" need to keep system settings."
|
||||
).format(self.__class__.__name__))
|
||||
|
||||
def _method_is_overriden(self, method_name):
|
||||
"""Check if method is overriden on objects class.
|
||||
|
||||
Implemented for deprecation warning validation on init.
|
||||
|
||||
Returns:
|
||||
bool: True if method is overriden on objects class.
|
||||
"""
|
||||
|
||||
cls_method = getattr(BaseCreator, method_name)
|
||||
obj_method = getattr(self.__class__, method_name)
|
||||
return cls_method is not obj_method
|
||||
|
||||
def apply_settings(self, project_settings):
|
||||
"""Method called on initialization of plugin to apply settings.
|
||||
|
||||
|
|
@ -578,6 +591,11 @@ class Creator(BaseCreator):
|
|||
)
|
||||
super(Creator, self).__init__(*args, **kwargs)
|
||||
|
||||
def _method_is_overriden(self, method_name):
|
||||
cls_method = getattr(Creator, method_name)
|
||||
obj_method = getattr(self.__class__, method_name)
|
||||
return cls_method is not obj_method
|
||||
|
||||
@property
|
||||
def show_order(self):
|
||||
"""Order in which is creator shown in UI.
|
||||
|
|
@ -720,6 +738,11 @@ class HiddenCreator(BaseCreator):
|
|||
def create(self, instance_data, source_data):
|
||||
pass
|
||||
|
||||
def _method_is_overriden(self, method_name):
|
||||
cls_method = getattr(HiddenCreator, method_name)
|
||||
obj_method = getattr(self.__class__, method_name)
|
||||
return cls_method is not obj_method
|
||||
|
||||
|
||||
class AutoCreator(BaseCreator):
|
||||
"""Creator which is automatically triggered without user interaction.
|
||||
|
|
@ -731,6 +754,11 @@ class AutoCreator(BaseCreator):
|
|||
"""Skip removement."""
|
||||
pass
|
||||
|
||||
def _method_is_overriden(self, method_name):
|
||||
cls_method = getattr(AutoCreator, method_name)
|
||||
obj_method = getattr(self.__class__, method_name)
|
||||
return cls_method is not obj_method
|
||||
|
||||
|
||||
def discover_creator_plugins(*args, **kwargs):
|
||||
return discover(BaseCreator, *args, **kwargs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue