diff --git a/pype/ftrack/actions/action_asset_delete.py b/pype/ftrack/actions/action_asset_delete.py deleted file mode 100644 index 654c78049b..0000000000 --- a/pype/ftrack/actions/action_asset_delete.py +++ /dev/null @@ -1,129 +0,0 @@ -import sys -import argparse -import logging -from pype.vendor import ftrack_api -from pype.ftrack import BaseAction - - -class AssetDelete(BaseAction): - '''Custom action.''' - - #: Action identifier. - identifier = 'asset.delete' - #: Action label. - label = 'Asset Delete' - - def discover(self, session, entities, event): - ''' Validation ''' - - if ( - len(entities) != 1 or - entities[0].entity_type not in ['Shot', 'Asset Build'] - ): - return False - - return True - - def interface(self, session, entities, event): - - if not event['data'].get('values', {}): - entity = entities[0] - - items = [] - for asset in entity['assets']: - # get asset name for label - label = 'None' - if asset['name']: - label = asset['name'] - - items.append({ - 'label': label, - 'name': label, - 'value': False, - 'type': 'boolean' - }) - - if len(items) < 1: - return { - 'success': False, - 'message': 'There are no assets to delete' - } - - return items - - def launch(self, session, entities, event): - - entity = entities[0] - # if values were set remove those items - if 'values' in event['data']: - values = event['data']['values'] - # get list of assets to delete from form - to_delete = [] - for key in values: - if values[key]: - to_delete.append(key) - # delete them by name - for asset in entity['assets']: - if asset['name'] in to_delete: - session.delete(asset) - try: - session.commit() - except Exception: - session.rollback() - raise - - return { - 'success': True, - 'message': 'Asset deleted.' - } - - -def register(session, plugins_presets={}): - '''Register action. Called when used as an event plugin.''' - - # Validate that session is an instance of ftrack_api.Session. If not, - # assume that register is being called from an old or incompatible API and - # return without doing anything. - if not isinstance(session, ftrack_api.session.Session): - return - - AssetDelete(session, plugins_presets).register() - - -def main(arguments=None): - '''Set up logging and register action.''' - if arguments is None: - arguments = [] - - parser = argparse.ArgumentParser() - # Allow setting of logging level from arguments. - loggingLevels = {} - for level in ( - logging.NOTSET, logging.DEBUG, logging.INFO, logging.WARNING, - logging.ERROR, logging.CRITICAL - ): - loggingLevels[logging.getLevelName(level).lower()] = level - - parser.add_argument( - '-v', '--verbosity', - help='Set the logging output verbosity.', - choices=loggingLevels.keys(), - default='info' - ) - namespace = parser.parse_args(arguments) - - # Set up basic logging - logging.basicConfig(level=loggingLevels[namespace.verbosity]) - - session = ftrack_api.Session() - register(session) - - # Wait for events - logging.info( - 'Registered actions and listening for events. Use Ctrl-C to abort.' - ) - session.event_hub.wait() - - -if __name__ == '__main__': - raise SystemExit(main(sys.argv[1:])) diff --git a/pype/ftrack/actions/action_attributes_remapper.py b/pype/ftrack/actions/action_attributes_remapper.py index 2c4899410d..759b5765e5 100644 --- a/pype/ftrack/actions/action_attributes_remapper.py +++ b/pype/ftrack/actions/action_attributes_remapper.py @@ -8,6 +8,7 @@ from pype.ftrack.lib.io_nonsingleton import DbConnector class AttributesRemapper(BaseAction): '''Edit meta data action.''' + ignore_me = True #: Action identifier. identifier = 'attributes.remapper' #: Action label. diff --git a/pype/ftrack/actions/action_cust_attr_doctor.py b/pype/ftrack/actions/action_cust_attr_doctor.py index b875f52ab8..af5fe2dc4a 100644 --- a/pype/ftrack/actions/action_cust_attr_doctor.py +++ b/pype/ftrack/actions/action_cust_attr_doctor.py @@ -9,6 +9,8 @@ from pype.ftrack import BaseAction class CustomAttributeDoctor(BaseAction): + + ignore_me = True #: Action identifier. identifier = 'custom.attributes.doctor' #: Action label. @@ -26,7 +28,9 @@ class CustomAttributeDoctor(BaseAction): hierarchical_ca = ['handleStart', 'handleEnd', 'frameStart', 'frameEnd'] hierarchical_alternatives = { 'handleStart': 'handles', - 'handleEnd': 'handles' + 'handleEnd': 'handles', + "frameStart": "fstart", + "frameEnd": "fend" } # Roles for new custom attributes diff --git a/pype/ftrack/actions/action_delete_unpublished.py b/pype/ftrack/actions/action_delete_unpublished.py deleted file mode 100644 index 5e7f783ba7..0000000000 --- a/pype/ftrack/actions/action_delete_unpublished.py +++ /dev/null @@ -1,93 +0,0 @@ -import sys -import argparse -import logging -from pype.vendor import ftrack_api -from pype.ftrack import BaseAction - - -class VersionsCleanup(BaseAction): - '''Custom action.''' - - # Action identifier - identifier = 'versions.cleanup' - # Action label - label = 'Versions cleanup' - - def discover(self, session, entities, event): - ''' Validation ''' - - # Only 1 AssetVersion is allowed - if len(entities) != 1 or entities[0].entity_type != 'AssetVersion': - return False - - return True - - def launch(self, session, entities, event): - - entity = entities[0] - - # Go through all versions in asset - for version in entity['asset']['versions']: - if not version['is_published']: - session.delete(version) - try: - session.commit() - except Exception: - session.rollback() - raise - - return { - 'success': True, - 'message': 'Hidden versions were removed' - } - - -def register(session, plugins_presets={}): - '''Register action. Called when used as an event plugin.''' - - # Validate that session is an instance of ftrack_api.Session. If not, - # assume that register is being called from an old or incompatible API and - # return without doing anything. - if not isinstance(session, ftrack_api.session.Session): - return - - VersionsCleanup(session, plugins_presets).register() - - -def main(arguments=None): - '''Set up logging and register action.''' - if arguments is None: - arguments = [] - - parser = argparse.ArgumentParser() - # Allow setting of logging level from arguments. - loggingLevels = {} - for level in ( - logging.NOTSET, logging.DEBUG, logging.INFO, logging.WARNING, - logging.ERROR, logging.CRITICAL - ): - loggingLevels[logging.getLevelName(level).lower()] = level - - parser.add_argument( - '-v', '--verbosity', - help='Set the logging output verbosity.', - choices=loggingLevels.keys(), - default='info' - ) - namespace = parser.parse_args(arguments) - - # Set up basic logging - logging.basicConfig(level=loggingLevels[namespace.verbosity]) - - session = ftrack_api.Session() - register(session) - - # Wait for events - logging.info( - 'Registered actions and listening for events. Use Ctrl-C to abort.' - ) - session.event_hub.wait() - - -if __name__ == '__main__': - raise SystemExit(main(sys.argv[1:])) diff --git a/pype/ftrack/actions/action_job_killer.py b/pype/ftrack/actions/action_job_killer.py index 8584b26aa4..717f87e879 100644 --- a/pype/ftrack/actions/action_job_killer.py +++ b/pype/ftrack/actions/action_job_killer.py @@ -107,7 +107,7 @@ class JobKiller(BaseAction): 'Changing Job ({}) status: {} -> failed' ).format(job['id'], job['status'])) except Exception: - self.warning.debug(( + self.log.warning.debug(( 'Changing Job ({}) has failed' ).format(job['id'])) diff --git a/pype/ftrack/actions/action_set_version.py b/pype/ftrack/actions/action_set_version.py deleted file mode 100644 index 5bf965e3ef..0000000000 --- a/pype/ftrack/actions/action_set_version.py +++ /dev/null @@ -1,122 +0,0 @@ -import sys -import argparse -import logging -from pype.vendor import ftrack_api -from pype.ftrack import BaseAction - - -class SetVersion(BaseAction): - '''Custom action.''' - - #: Action identifier. - identifier = 'version.set' - #: Action label. - label = 'Version Set' - - def discover(self, session, entities, event): - ''' Validation ''' - - # Only 1 AssetVersion is allowed - if len(entities) != 1 or entities[0].entity_type != 'AssetVersion': - return False - - return True - - def interface(self, session, entities, event): - - if not event['data'].get('values', {}): - entity = entities[0] - - # Get actual version of asset - act_ver = entity['version'] - # Set form - items = [{ - 'label': 'Version number', - 'type': 'number', - 'name': 'version_number', - 'value': act_ver - }] - - return items - - def launch(self, session, entities, event): - - entity = entities[0] - - # Do something with the values or return a new form. - values = event['data'].get('values', {}) - # Default is action True - scs = False - - if not values['version_number']: - msg = 'You didn\'t enter any version.' - elif int(values['version_number']) <= 0: - msg = 'Negative or zero version is not valid.' - else: - try: - entity['version'] = values['version_number'] - session.commit() - msg = 'Version was changed to v{0}'.format( - values['version_number'] - ) - scs = True - except Exception as e: - msg = 'Unexpected error occurs during version set ({})'.format( - str(e) - ) - - return { - 'success': scs, - 'message': msg - } - - -def register(session, plugins_presets={}): - '''Register action. Called when used as an event plugin.''' - - # Validate that session is an instance of ftrack_api.Session. If not, - # assume that register is being called from an old or incompatible API and - # return without doing anything. - if not isinstance(session, ftrack_api.session.Session): - return - - SetVersion(session, plugins_presets).register() - - -def main(arguments=None): - '''Set up logging and register action.''' - if arguments is None: - arguments = [] - - parser = argparse.ArgumentParser() - # Allow setting of logging level from arguments. - loggingLevels = {} - for level in ( - logging.NOTSET, logging.DEBUG, logging.INFO, logging.WARNING, - logging.ERROR, logging.CRITICAL - ): - loggingLevels[logging.getLevelName(level).lower()] = level - - parser.add_argument( - '-v', '--verbosity', - help='Set the logging output verbosity.', - choices=loggingLevels.keys(), - default='info' - ) - namespace = parser.parse_args(arguments) - - # Set up basic logging - logging.basicConfig(level=loggingLevels[namespace.verbosity]) - - session = ftrack_api.Session() - register(session) - - # Wait for events - logging.info( - 'Registered actions and listening for events. Use Ctrl-C to abort.' - ) - session.event_hub.wait() - - -if __name__ == '__main__': - raise SystemExit(main(sys.argv[1:])) diff --git a/pype/ftrack/events/action_sync_hier_attrs.py b/pype/ftrack/events/action_sync_hier_attrs.py index f8ecb9e3cd..c9d968ee5d 100644 --- a/pype/ftrack/events/action_sync_hier_attrs.py +++ b/pype/ftrack/events/action_sync_hier_attrs.py @@ -21,7 +21,7 @@ class SyncHierarchicalAttrs(BaseAction): identifier = 'sync.hierarchical.attrs' #: Action label. label = "Pype Admin" - variant = '- Sync Hier Attrs (server)' + variant = '- Sync Hier Attrs (Server)' #: Action description. description = 'Synchronize hierarchical attributes' #: Icon