def process(self, instance):

        # Define extract output file path
        dir_path = pyblish_utils.temp_dir(instance)
        filename = "{0}.ma".format(instance.name)
        path = os.path.join(dir_path, filename)

        # Perform extraction
        self.log.info("Performing extraction..")
        with pyblish_maya.maintained_selection():
            pymel.core.select(instance)
            # cmds.select(instance, noExpand=True)
            pymel.core.system.exportSelected(
                path,
                constructionHistory=False,
                preserveReferences=False,
                shader=False,
                channels=False,
                constraints=False,
                force=True,
                type="mayaAscii",
            )

            instance.data["outputPath_ma"] = path

        self.log.info("Extracted instance '{0}' to: {1}".format(instance.name, path))
    def process(self, instance, context):

        dir_path = pyblish_utils.temp_dir(instance)
        filename = "{0}.abc".format(instance.name)
        path = os.path.join(dir_path, filename)
        path = os.path.join(path).replace('\\', '/')
        self.log.debug('alembic extraction path: {}'.format(path))

        nodesString = ''
        for node in instance:
            nodesString = ' -root ' + node.name()

        frame_start = int(pymel.core.playbackOptions(q=True, min=True))
        frame_end = int(pymel.core.playbackOptions(q=True, max=True))
        if instance.data['family'] == 'model':
            frame_end = frame_start

        cmd = '-frameRange %s %s' % (frame_start, frame_end)
        cmd += ' -stripNamespaces -uvWrite -worldSpace -wholeFrameGeo '
        cmd += '-writeVisibility %s -file "%s"' % (nodesString, path)

        pymel.core.AbcExport(j=cmd)

        instance.data['outputPath_abc'] = path