def automain(self, function):
        """
        Decorator that defines *and runs* the main function of the experiment.

        The decorated function is marked as the default command for this
        experiment, and the command-line interface is automatically run when
        the file is executed.

        The method decorated by this should be last in the file because is
        equivalent to:

        Example
        -------
        ::

            @ex.main
            def my_main():
                pass

            if __name__ == '__main__':
                ex.run_commandline()
        """
        captured = self.main(function)
        if function.__module__ == "__main__":
            # Ensure that automain is not used in interactive mode.
            import inspect

            main_filename = inspect.getfile(function)
            if main_filename == "<stdin>" or (
                main_filename.startswith("<ipython-input-")
                and main_filename.endswith(">")
            ):
                raise RuntimeError(
                    "Cannot use @ex.automain decorator in "
                    "interactive mode. Use @ex.main instead."
                )

            self.run_commandline()
        return captured

        Decorator that defines *and runs* the main function of the experiment.

        The decorated function is marked as the default command for this
        experiment, and the command-line interface is automatically run when
        the file is executed.

        The method decorated by this should be last in the file because is
        equivalent to:

        Example
        -------
        ::

            @ex.main
            def my_main():
                pass

            if __name__ == '__main__':
                ex.run_commandline()
        
sacred/experiment.py