From c2eb4599e8febf7f3b0bd46892d78bb9e0cf0a9b Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Wed, 13 Mar 2019 16:31:51 +0100 Subject: [PATCH] _translate_event is not launched by default so events are faster --- .../events/event_del_avalon_id_from_new.py | 17 ++------ pype/ftrack/events/event_next_task_update.py | 2 +- pype/ftrack/events/event_radio_buttons.py | 2 +- pype/ftrack/events/event_sync_to_avalon.py | 42 ++++--------------- pype/ftrack/events/event_test.py | 2 +- pype/ftrack/events/event_thumbnail_updates.py | 2 +- .../events/event_version_to_task_statuses.py | 2 +- pype/ftrack/lib/ftrack_event_handler.py | 7 +--- 8 files changed, 18 insertions(+), 58 deletions(-) diff --git a/pype/ftrack/events/event_del_avalon_id_from_new.py b/pype/ftrack/events/event_del_avalon_id_from_new.py index 858c5a444d..d47494d6eb 100644 --- a/pype/ftrack/events/event_del_avalon_id_from_new.py +++ b/pype/ftrack/events/event_del_avalon_id_from_new.py @@ -13,7 +13,7 @@ class DelAvalonIdFromNew(BaseEvent): ''' priority = Sync_to_Avalon.priority - 1 - def launch(self, event): + def launch(self, session, event): created = [] entities = event['data']['entities'] for entity in entities: @@ -31,7 +31,7 @@ class DelAvalonIdFromNew(BaseEvent): get_ca_mongoid() in entity['keys'] and entity_id in created ): - ftrack_entity = self.session.get( + ftrack_entity = session.get( self._get_entity_type(entity), entity_id ) @@ -44,22 +44,13 @@ class DelAvalonIdFromNew(BaseEvent): ftrack_entity['custom_attributes'][ get_ca_mongoid() ] = '' - self.session.commit() + session.commit() except Exception: - self.session.rollback() + session.rollback() continue - def register(self): - '''Registers the event, subscribing the discover and launch topics.''' - self.session.event_hub.subscribe( - 'topic=ftrack.update', - self.launch, - priority=self.priority - ) - - def register(session, **kw): '''Register plugin. Called when used as an plugin.''' if not isinstance(session, ftrack_api.session.Session): diff --git a/pype/ftrack/events/event_next_task_update.py b/pype/ftrack/events/event_next_task_update.py index b6c82b930c..cd26325414 100644 --- a/pype/ftrack/events/event_next_task_update.py +++ b/pype/ftrack/events/event_next_task_update.py @@ -34,7 +34,7 @@ class NextTaskUpdate(BaseEvent): return None - def launch(self, session, entities, event): + def launch(self, session, event): '''Propagates status from version to task when changed''' # self.log.info(event) diff --git a/pype/ftrack/events/event_radio_buttons.py b/pype/ftrack/events/event_radio_buttons.py index fb091f304d..f96d90307d 100644 --- a/pype/ftrack/events/event_radio_buttons.py +++ b/pype/ftrack/events/event_radio_buttons.py @@ -7,7 +7,7 @@ ignore_me = True class Radio_buttons(BaseEvent): - def launch(self, session, entities, event): + def launch(self, session, event): '''Provides a readio button behaviour to any bolean attribute in radio_button group.''' diff --git a/pype/ftrack/events/event_sync_to_avalon.py b/pype/ftrack/events/event_sync_to_avalon.py index 32acae12ec..1deaa3d17e 100644 --- a/pype/ftrack/events/event_sync_to_avalon.py +++ b/pype/ftrack/events/event_sync_to_avalon.py @@ -4,7 +4,12 @@ from pype.ftrack import BaseEvent, lib class Sync_to_Avalon(BaseEvent): - def launch(self, session, entities, event): + ignore_entityType = [ + 'assetversion', 'job', 'user', 'reviewsessionobject', 'timer', + 'socialfeed', 'socialnotification', 'timelog' + ] + + def launch(self, session, event): ca_mongoid = lib.get_ca_mongoid() # If mongo_id textfield has changed: RETURN! # - infinite loop @@ -13,6 +18,7 @@ class Sync_to_Avalon(BaseEvent): if ca_mongoid in ent['keys']: return + entities = self._get_entities(session, event, self.ignore_entityType) ft_project = None # get project for entity in entities: @@ -109,40 +115,6 @@ class Sync_to_Avalon(BaseEvent): return - def _launch(self, event): - self.session.reset() - - args = self._translate_event( - self.session, event - ) - - self.launch( - self.session, *args - ) - return - - def _translate_event(self, session, event): - exceptions = [ - 'assetversion', 'job', 'user', 'reviewsessionobject', 'timer', - 'socialfeed', 'timelog' - ] - _selection = event['data'].get('entities', []) - - _entities = list() - for entity in _selection: - if entity['entityType'] in exceptions: - continue - _entities.append( - ( - session.get( - self._get_entity_type(entity), - entity.get('entityId') - ) - ) - ) - - return [_entities, event] - def register(session, **kw): '''Register plugin. Called when used as an plugin.''' diff --git a/pype/ftrack/events/event_test.py b/pype/ftrack/events/event_test.py index ecefc628f3..46e16cbb95 100644 --- a/pype/ftrack/events/event_test.py +++ b/pype/ftrack/events/event_test.py @@ -13,7 +13,7 @@ class Test_Event(BaseEvent): priority = 10000 - def launch(self, session, entities, event): + def launch(self, session, event): '''just a testing event''' diff --git a/pype/ftrack/events/event_thumbnail_updates.py b/pype/ftrack/events/event_thumbnail_updates.py index 62a194d167..a825088e60 100644 --- a/pype/ftrack/events/event_thumbnail_updates.py +++ b/pype/ftrack/events/event_thumbnail_updates.py @@ -4,7 +4,7 @@ from pype.ftrack import BaseEvent class ThumbnailEvents(BaseEvent): - def launch(self, session, entities, event): + def launch(self, session, event): '''just a testing event''' # self.log.info(event) diff --git a/pype/ftrack/events/event_version_to_task_statuses.py b/pype/ftrack/events/event_version_to_task_statuses.py index 5baf1396ba..dac34b8009 100644 --- a/pype/ftrack/events/event_version_to_task_statuses.py +++ b/pype/ftrack/events/event_version_to_task_statuses.py @@ -4,7 +4,7 @@ from pype.ftrack import BaseEvent class VersionToTaskStatus(BaseEvent): - def launch(self, session, entities, event): + def launch(self, session, event): '''Propagates status from version to task when changed''' session.commit() diff --git a/pype/ftrack/lib/ftrack_event_handler.py b/pype/ftrack/lib/ftrack_event_handler.py index 62a6d2b490..c6c91e7428 100644 --- a/pype/ftrack/lib/ftrack_event_handler.py +++ b/pype/ftrack/lib/ftrack_event_handler.py @@ -40,14 +40,11 @@ class BaseEvent(BaseHandler): ) def _launch(self, event): - self.session._local_cache.clear() self.session.rollback() - args = self._translate_event( - self.session, event - ) + self.session._local_cache.clear() self.launch( - self.session, *args + self.session, event ) return