def resolve_execution_options(self, ctx):
        """Returns the resolved execution options.

        Subclasses can implement this method to define the execution options
        available for the operation.

        Args:
            ctx: the :class:`fiftyone.operators.executor.ExecutionContext`

        Returns:
            a :class:`fiftyone.operators.executor.ExecutionOptions` instance
        """
        from .executor import ExecutionOptions

        # Defer to forced delegation, if implemented
        # pylint: disable=assignment-from-none
        delegate = self.resolve_delegation(ctx)
        if delegate is not None:
            return ExecutionOptions(
                allow_immediate_execution=not delegate,
                allow_delegated_execution=delegate,
            )

        return ExecutionOptions(
            allow_immediate_execution=self.config.allow_immediate_execution,
            allow_delegated_execution=self.config.allow_delegated_execution,
            default_choice_to_delegated=self.config.default_choice_to_delegated,
        )
Returns the resolved execution options.

        Subclasses can implement this method to define the execution options
        available for the operation.

        Args:
            ctx: the :class:`fiftyone.operators.executor.ExecutionContext`

        Returns:
            a :class:`fiftyone.operators.executor.ExecutionOptions` instance
        
fiftyone/operators/operator.py