private void launch(IProject project, String mode) {
		ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
		ILaunchConfigurationType launchType =
			launchManager.getLaunchConfigurationType(launchConfigTypeId);
		String launchConfigName = project.getName() + launchConfigNameSuffix;
		try {
			ILaunchConfiguration lc = GhidraLaunchUtils.getLaunchConfig(launchConfigName);
			ILaunchConfigurationWorkingCopy wc = null;
			if (lc == null) {
				wc = launchType.newInstance(null, launchConfigName);
				wc.setAttribute(PyDevUtils.getAttrProject(), project.getName());
			}
			else if (lc.getType().equals(launchType)) {
				wc = lc.getWorkingCopy();
			}
			else {
				throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
					IStatus.ERROR, "Failed to launch. Run configuration with name \"" +
						launchConfigName + "\" already exists.",
					null));
			}
			wc.doSave().launch(mode, null);
		}
		catch (CoreException | OperationNotSupportedException e) {
			EclipseMessageUtils.showErrorDialog(e.getMessage());
		}
	}
Launches the given Python nature in the given mode with a PyGhidra launcher.

@param project The project to launch.
@param mode The mode to launch in (run/debug).
GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/launchers/AbstractPyGhidraLaunchShortcut.java