1 /* 2 * SessionInfo.java 3 * 4 * Copyright (C) 2021 by RStudio, PBC 5 * 6 * Unless you have received this program directly from RStudio pursuant 7 * to the terms of a commercial license agreement with RStudio, then 8 * this program is licensed to you under the terms of version 3 of the 9 * GNU Affero General Public License. This program is distributed WITHOUT 10 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, 11 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the 12 * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. 13 * 14 */ 15 package org.rstudio.studio.client.workbench.model; 16 17 import org.rstudio.core.client.StringUtil; 18 import org.rstudio.core.client.files.FileSystemItem; 19 import org.rstudio.core.client.js.JsObject; 20 import org.rstudio.core.client.jsonrpc.RpcObjectList; 21 import org.rstudio.studio.client.application.ApplicationUtils; 22 import org.rstudio.studio.client.application.model.RVersionsInfo; 23 import org.rstudio.studio.client.application.model.SessionInitOptions; 24 import org.rstudio.studio.client.common.compilepdf.model.CompilePdfState; 25 import org.rstudio.studio.client.common.console.ConsoleProcessInfo; 26 import org.rstudio.studio.client.common.debugging.model.ErrorManagerState; 27 import org.rstudio.studio.client.common.dependencies.model.DependencyList; 28 import org.rstudio.studio.client.common.rnw.RnwWeave; 29 import org.rstudio.studio.client.quarto.model.QuartoConfig; 30 import org.rstudio.studio.client.workbench.addins.Addins.RAddins; 31 import org.rstudio.studio.client.workbench.prefs.model.PrefLayer; 32 import org.rstudio.studio.client.workbench.prefs.model.UserPrefs; 33 import org.rstudio.studio.client.workbench.prefs.model.UserState; 34 import org.rstudio.studio.client.workbench.views.buildtools.model.BuildState; 35 import org.rstudio.studio.client.workbench.views.connections.model.Connection; 36 import org.rstudio.studio.client.workbench.views.connections.model.ConnectionId; 37 import org.rstudio.studio.client.workbench.views.environment.model.EnvironmentContextData; 38 import org.rstudio.studio.client.workbench.views.environment.model.MemoryUsage; 39 import org.rstudio.studio.client.workbench.views.jobs.model.JobState; 40 import org.rstudio.studio.client.workbench.views.output.find.model.FindInFilesState; 41 import org.rstudio.studio.client.workbench.views.output.markers.model.MarkersState; 42 import org.rstudio.studio.client.workbench.views.packages.model.PackageProvidedExtensions; 43 import org.rstudio.studio.client.workbench.views.presentation.model.PresentationState; 44 import org.rstudio.studio.client.workbench.views.source.model.SourceDocument; 45 46 import com.google.gwt.core.client.JavaScriptObject; 47 import com.google.gwt.core.client.JsArray; 48 import com.google.gwt.core.client.JsArrayString; 49 50 public class SessionInfo extends JavaScriptObject 51 { SessionInfo()52 protected SessionInfo() 53 { 54 } 55 getClientId()56 public final native String getClientId() /*-{ 57 return this.clientId; 58 }-*/; 59 getClientVersion()60 public final native String getClientVersion() /*-{ 61 return this.client_version; 62 }-*/; 63 64 getUserIdentity()65 public final native String getUserIdentity() /*-{ 66 return this.userIdentity; 67 }-*/; 68 getSystemUsername()69 public final native String getSystemUsername() /*-{ 70 return this.systemUsername; 71 }-*/; 72 getSessionId()73 public final native String getSessionId() /*-{ 74 return this.session_id; 75 }-*/; 76 getSessionLabel()77 public final native String getSessionLabel() /*-{ 78 return this.session_label; 79 }-*/; 80 getPrompt()81 public final native String getPrompt() /*-{ 82 return this.prompt; 83 }-*/; 84 getRnwWeaveTypes()85 public final native JsArray<RnwWeave> getRnwWeaveTypes() /*-{ 86 return this.rnw_weave_types; 87 }-*/; 88 getLatexProgramTypes()89 public final native JsArrayString getLatexProgramTypes() /*-{ 90 return this.latex_program_types; 91 }-*/; 92 getTexCapabilities()93 public final native TexCapabilities getTexCapabilities() /*-{ 94 return this.tex_capabilities; 95 }-*/; 96 getCompilePdfState()97 public final native CompilePdfState getCompilePdfState() /*-{ 98 return this.compile_pdf_state; 99 }-*/; 100 getFindInFilesState()101 public final native FindInFilesState getFindInFilesState() /*-{ 102 return this.find_in_files_state; 103 }-*/; 104 getMarkersState()105 public final native MarkersState getMarkersState() /*-{ 106 return this.markers_state; 107 }-*/; 108 getLogDir()109 public final native String getLogDir() /*-{ 110 return this.log_dir; 111 }-*/; 112 getScratchDir()113 public final native String getScratchDir() /*-{ 114 return this.scratch_dir; 115 }-*/; 116 getTempDir()117 public final native String getTempDir() /*-{ 118 return this.temp_dir; 119 }-*/; 120 getPrefs()121 public final native JsArray<PrefLayer> getPrefs() /*-{ 122 if (!this.user_prefs) 123 this.user_prefs = [ {} ]; 124 return this.user_prefs; 125 }-*/; 126 getUserPrefs()127 public final JsObject getUserPrefs() 128 { 129 return getPrefs().get(Math.min(getPrefs().length(), UserPrefs.LAYER_USER)).getValues(); 130 } 131 getUserPrefLayer()132 public final PrefLayer getUserPrefLayer() 133 { 134 return getPrefs().get(Math.min(getPrefs().length(), UserPrefs.LAYER_USER)); 135 } 136 getUserState()137 public final native JsArray<PrefLayer> getUserState() /*-{ 138 if (!this.user_state) 139 this.user_state = [ {} ]; 140 return this.user_state; 141 }-*/; 142 getUserStateLayer()143 public final PrefLayer getUserStateLayer() 144 { 145 return getUserState().get(Math.min(getPrefs().length(), UserState.LAYER_USER)); 146 } 147 148 public final static String DESKTOP_MODE = "desktop"; 149 public final static String SERVER_MODE = "server"; 150 getMode()151 public final native String getMode() /*-{ 152 return this.mode; 153 }-*/; 154 getResumed()155 public final native boolean getResumed() /*-{ 156 return this.resumed; 157 }-*/; 158 getDefaultPrompt()159 public final native String getDefaultPrompt() /*-{ 160 return this.prompt; 161 }-*/; 162 getConsoleHistory()163 public final native JsArrayString getConsoleHistory() /*-{ 164 return this.console_history; 165 }-*/; 166 getConsoleHistoryCapacity()167 public final native int getConsoleHistoryCapacity() /*-{ 168 return this.console_history_capacity; 169 }-*/; 170 getConsoleActions()171 public final native RpcObjectList<ConsoleAction> getConsoleActions() /*-{ 172 return this.console_actions; 173 }-*/; 174 getConsoleActionsLimit()175 public final native int getConsoleActionsLimit() /*-{ 176 return this.console_actions_limit; 177 }-*/; 178 getConsoleLanguage()179 public final native String getConsoleLanguage() /*-{ 180 return this.console_language; 181 }-*/; 182 getClientState()183 public final native ClientInitState getClientState() /*-{ 184 return this.client_state; 185 }-*/; 186 getSourceDocuments()187 public final native JsArray<SourceDocument> getSourceDocuments() /*-{ 188 return this.source_documents; 189 }-*/; 190 setSourceDocuments(JsArray<SourceDocument> docs)191 public final native void setSourceDocuments(JsArray<SourceDocument> docs) /*-{ 192 this.source_documents = docs; 193 }-*/; 194 getLists()195 public final native WorkbenchLists getLists() /*-{ 196 return this.lists; 197 }-*/; 198 docsURL()199 public final native String docsURL() /*-{ 200 return this.docsURL; 201 }-*/; 202 getRstudioVersion()203 public final native String getRstudioVersion() /*-{ 204 return this.rstudio_version; 205 }-*/; 206 getSystemEncoding()207 public final native String getSystemEncoding() /*-{ 208 return this.system_encoding; 209 }-*/; 210 getLicenseMessage()211 public final native String getLicenseMessage() /*-{ 212 return this.license_message; 213 }-*/; 214 isVcsEnabled()215 public final boolean isVcsEnabled() 216 { 217 return !StringUtil.isNullOrEmpty(getVcsName()); 218 } 219 isVcsAvailable()220 public final boolean isVcsAvailable() 221 { 222 String[] availableVcs = getAvailableVCS(); 223 return availableVcs.length > 0 && availableVcs[0].length() > 0; 224 } 225 getAvailableVCS()226 public final String[] getAvailableVCS() 227 { 228 return this.<JsObject>cast().getString("vcs_available", true).split(","); 229 } 230 getVcsName()231 public final native String getVcsName() /*-{ 232 return this.vcs; 233 }-*/; 234 isVcsAvailable(String id)235 public final boolean isVcsAvailable(String id) 236 { 237 String[] availableVcs = getAvailableVCS(); 238 for (int i=0; i<availableVcs.length; i++) 239 { 240 if (availableVcs[i] == id) 241 return true; 242 } 243 244 return false; 245 } 246 getDefaultSSHKeyDir()247 public native final String getDefaultSSHKeyDir() /*-{ 248 return this.default_ssh_key_dir; 249 }-*/; 250 isGithubRepository()251 public native final boolean isGithubRepository() /*-{ 252 return this.is_github_repo; 253 }-*/; 254 255 // TODO: The check for null was for migration in the presence of 256 // sessions that couldn't suspend (3/21/2011). Remove this check 257 // once we are sufficiently clear of this date window. getInitialWorkingDir()258 public final native String getInitialWorkingDir() /*-{ 259 if (!this.initial_working_dir) 260 this.initial_working_dir = "~/"; 261 return this.initial_working_dir; 262 }-*/; 263 getDefaultWorkingDir()264 public final native String getDefaultWorkingDir() /*-{ 265 return this.default_working_dir; 266 }-*/; 267 getDefaultProjectDir()268 public final native String getDefaultProjectDir() /*-{ 269 return this.default_project_dir; 270 }-*/; 271 getActiveProjectFile()272 public final native String getActiveProjectFile() /*-{ 273 return this.active_project_file; 274 }-*/; 275 getActiveProjectDir()276 public final FileSystemItem getActiveProjectDir() 277 { 278 String projFile = getActiveProjectFile(); 279 if (projFile != null) 280 { 281 return FileSystemItem.createFile(projFile).getParentPath(); 282 } 283 else 284 { 285 return null; 286 } 287 } 288 getProjectOpenDocs()289 public final native JsArrayString getProjectOpenDocs() /*-{ 290 if (!this.project_open_docs) 291 this.project_open_docs = {}; 292 return this.project_open_docs; 293 }-*/; 294 projectSupportsSharing()295 public final native boolean projectSupportsSharing() /*-{ 296 return !!this.project_supports_sharing; 297 }-*/; 298 projectParentBrowseable()299 public final native boolean projectParentBrowseable() /*-{ 300 return !!this.project_parent_browseable; 301 }-*/; 302 getProjectUserDataDir()303 public final native String getProjectUserDataDir() /*-{ 304 return this.project_user_data_directory; 305 }-*/; 306 getConsoleProcesses()307 public final native JsArray<ConsoleProcessInfo> getConsoleProcesses() /*-{ 308 return this.console_processes; 309 }-*/; 310 getSumatraPdfExePath()311 public final native String getSumatraPdfExePath() /*-{ 312 return this.sumatra_pdf_exe_path; 313 }-*/; 314 getHTMLCapabilities()315 public final native HTMLCapabilities getHTMLCapabilities() /*-{ 316 return this.html_capabilities; 317 }-*/; 318 319 public final static String BUILD_TOOLS_NONE = "None"; 320 public final static String BUILD_TOOLS_PACKAGE = "Package"; 321 public final static String BUILD_TOOLS_MAKEFILE = "Makefile"; 322 public final static String BUILD_TOOLS_WEBSITE = "Website"; 323 public final static String BUILD_TOOLS_CUSTOM = "Custom"; 324 public final static String BUILD_TOOLS_QUARTO = "Quarto"; 325 getBuildToolsType()326 public final native String getBuildToolsType() /*-{ 327 return this.build_tools_type; 328 }-*/; 329 getBuildToolsBookdownWebsite()330 public final native boolean getBuildToolsBookdownWebsite() /*-{ 331 return this.build_tools_bookdown_website; 332 }-*/; 333 getBuildTargetDir()334 public final native String getBuildTargetDir() /*-{ 335 return this.build_target_dir; 336 }-*/; 337 getBlogdownConfig()338 public final native BlogdownConfig getBlogdownConfig() /*-{ 339 return this.blogdown_config; 340 }-*/; 341 getIsBookdownProject()342 public final native boolean getIsBookdownProject() /*-{ 343 return this.is_bookdown_project; 344 }-*/; 345 getIsDistillProject()346 public final native boolean getIsDistillProject() /*-{ 347 return this.is_distill_project; 348 }-*/; 349 350 public final static String QUARTO_PROJECT_TYPE_SITE = "site"; 351 public final static String QUARTO_PROJECT_TYPE_BOOK = "book"; 352 353 getQuartoConfig()354 public final native QuartoConfig getQuartoConfig() /*-{ 355 return this.quarto_config; 356 }-*/; 357 getHasPackageSrcDir()358 public final native boolean getHasPackageSrcDir() /*-{ 359 return this.has_pkg_src; 360 }-*/; 361 getHasPackageVignetteDir()362 public final native boolean getHasPackageVignetteDir() /*-{ 363 return this.has_pkg_vig; 364 }-*/; 365 getPresentationName()366 public final String getPresentationName() 367 { 368 PresentationState state = getPresentationState(); 369 if (state != null) 370 return state.getPaneCaption(); 371 else 372 return "Presentation"; 373 } 374 getPresentationState()375 public final native PresentationState getPresentationState() /*-{ 376 return this.presentation_state; 377 }-*/; 378 getBuildState()379 public final native BuildState getBuildState() /*-{ 380 return this.build_state; 381 }-*/; 382 isDevtoolsInstalled()383 public final native boolean isDevtoolsInstalled() /*-{ 384 return this.devtools_installed; 385 }-*/; 386 isCairoPdfAvailable()387 public final native boolean isCairoPdfAvailable() /*-{ 388 return this.have_cairo_pdf; 389 }-*/; 390 getAllowVcsExeEdit()391 public final native boolean getAllowVcsExeEdit() /*-{ 392 return this.allow_vcs_exe_edit; 393 }-*/; 394 getAllowCRANReposEdit()395 public final native boolean getAllowCRANReposEdit() /*-{ 396 return this.allow_cran_repos_edit; 397 }-*/; 398 getAllowVcs()399 public final native boolean getAllowVcs() /*-{ 400 return this.allow_vcs; 401 }-*/; 402 getAllowPackageInstallation()403 public final native boolean getAllowPackageInstallation() /*-{ 404 return this.allow_pkg_install; 405 }-*/; 406 getAllowShell()407 public final native boolean getAllowShell() /*-{ 408 return this.allow_shell; 409 }-*/; 410 getAllowTerminalWebsockets()411 public final native boolean getAllowTerminalWebsockets() /*-{ 412 return this.allow_terminal_websockets; 413 }-*/; 414 getAllowFileDownloads()415 public final native boolean getAllowFileDownloads() /*-{ 416 return this.allow_file_download; 417 }-*/; 418 getAllowFileUploads()419 public final native boolean getAllowFileUploads() /*-{ 420 return this.allow_file_upload; 421 }-*/; 422 getAllowRemovePublicFolder()423 public final native boolean getAllowRemovePublicFolder() /*-{ 424 return this.allow_remove_public_folder; 425 }-*/; 426 getAllowFullUI()427 public final native boolean getAllowFullUI() /*-{ 428 return this.allow_full_ui; 429 }-*/; 430 getWebSocketPingInterval()431 public final native int getWebSocketPingInterval() /*-{ 432 return this.websocket_ping_interval; 433 }-*/; 434 getWebSocketConnectTimeout()435 public final native int getWebSocketConnectTimeout() /*-{ 436 return this.websocket_connect_timeout; 437 }-*/; 438 getAllowExternalPublish()439 public final native boolean getAllowExternalPublish() /*-{ 440 return this.allow_external_publish; 441 }-*/; 442 getAllowPublish()443 public final native boolean getAllowPublish() /*-{ 444 return this.allow_publish; 445 }-*/; 446 getAllowOpenSharedProjects()447 public final native boolean getAllowOpenSharedProjects() /*-{ 448 return this.allow_open_shared_projects; 449 }-*/; 450 getProjectSharingEnumerateServerUsers()451 public final native boolean getProjectSharingEnumerateServerUsers() /*-{ 452 return this.project_sharing_enumerate_server_users; 453 }-*/; 454 getLauncherSession()455 public final native boolean getLauncherSession() /*-{ 456 return this.launcher_session; 457 }-*/; 458 getCrashHandlerSettingsModifiable()459 public final native boolean getCrashHandlerSettingsModifiable() /*-{ 460 return this.crash_handler_settings_modifiable; 461 }-*/; 462 getPromptForCrashHandlerPermission()463 public final native boolean getPromptForCrashHandlerPermission() /*-{ 464 return this.prompt_for_crash_handler_permission; 465 }-*/; 466 getLaunchParameters()467 public final native JsObject getLaunchParameters() /*-{ 468 return this.launch_parameters; 469 }-*/; 470 getEnvironmentState()471 public final native EnvironmentContextData getEnvironmentState() /*-{ 472 return this.environment_state; 473 }-*/; 474 getDisablePackages()475 public final native boolean getDisablePackages() /*-{ 476 return this.disable_packages; 477 }-*/; 478 getErrorState()479 public final native ErrorManagerState getErrorState() /*-{ 480 return this.error_state; 481 }-*/; 482 getDisableCheckForUpdates()483 public final native boolean getDisableCheckForUpdates() /*-{ 484 return this.disable_check_for_updates; 485 }-*/; 486 getShowIdentity()487 public final native boolean getShowIdentity() /*-{ 488 return this.show_identity; 489 }-*/; 490 getHaveAdvancedStepCommands()491 public final native boolean getHaveAdvancedStepCommands() /*-{ 492 return this.have_advanced_step_commands; 493 }-*/; 494 getRMarkdownPackageAvailable()495 public final native boolean getRMarkdownPackageAvailable() /*-{ 496 return this.rmarkdown_available; 497 }-*/; 498 setRMarkdownPackageAvailable(boolean available)499 public final native void setRMarkdownPackageAvailable(boolean available) /*-{ 500 this.rmarkdown_available = available; 501 }-*/; 502 getKnitParamsAvailable()503 public final native boolean getKnitParamsAvailable() /*-{ 504 return this.knit_params_available; 505 }-*/; 506 setKnitParamsAvailable(boolean available)507 public final native void setKnitParamsAvailable(boolean available) /*-{ 508 this.knit_params_available = available; 509 }-*/; 510 getKnitWorkingDirAvailable()511 public final native boolean getKnitWorkingDirAvailable() /*-{ 512 return this.knit_working_dir_available; 513 }-*/; 514 setKnitWorkingDirAvailable(boolean available)515 public final native void setKnitWorkingDirAvailable(boolean available) /*-{ 516 this.knit_working_dir_available = available; 517 }-*/; 518 getPptAvailable()519 public final native boolean getPptAvailable() /*-{ 520 return this.ppt_available; 521 }-*/; 522 setPptAvailable(boolean available)523 public final native void setPptAvailable(boolean available) /*-{ 524 this.ppt_available = available; 525 }-*/; 526 getClangAvailable()527 public final native boolean getClangAvailable() /*-{ 528 return this.clang_available; 529 }-*/; 530 getConnectionsEnabled()531 public final native boolean getConnectionsEnabled() /*-{ 532 return this.connections_enabled; 533 }-*/; 534 getActivateConnections()535 public final native boolean getActivateConnections() /*-{ 536 return this.activate_connections; 537 }-*/; 538 getConnectionList()539 public final native JsArray<Connection> getConnectionList() /*-{ 540 return this.connection_list; 541 }-*/; 542 getActiveConnections()543 public final native JsArray<ConnectionId> getActiveConnections() /*-{ 544 return this.active_connections; 545 }-*/; 546 getJobState()547 public final native JobState getJobState() /*-{ 548 return this.job_state; 549 }-*/; 550 getLauncherJobsEnabled()551 public final native boolean getLauncherJobsEnabled() /*-{ 552 return this.launcher_jobs_enabled; 553 }-*/; 554 getShowHelpHome()555 public final native boolean getShowHelpHome() /*-{ 556 return this.show_help_home; 557 }-*/; 558 getMultiSession()559 public final native boolean getMultiSession() /*-{ 560 return this.multi_session; 561 }-*/; 562 getActiveSessionCount()563 public final native int getActiveSessionCount() /*-{ 564 return this.active_session_count; 565 }-*/; 566 getRVersionsInfo()567 public final native RVersionsInfo getRVersionsInfo() /*-{ 568 return this.r_versions_info; 569 }-*/; 570 getPresentationCommands()571 public final native boolean getPresentationCommands() /*-{ 572 return this.presentation_commands; 573 }-*/; 574 getTutorialApiAvailable()575 public final native boolean getTutorialApiAvailable() /*-{ 576 return this.tutorial_api_available; 577 }-*/; 578 getTutorialApiParentNotifyAvailable()579 public final native boolean getTutorialApiParentNotifyAvailable() /*-{ 580 return this.tutorial_api_parent_notify_available; 581 }-*/; 582 getTutorialApiClientOrigin()583 public final native String getTutorialApiClientOrigin() /*-{ 584 return this.tutorial_api_client_origin; 585 }-*/; 586 getCloudFolderEnabled()587 public final native boolean getCloudFolderEnabled() /*-{ 588 return this.cloud_folder_enabled; 589 }-*/; 590 getPackratAvailable()591 public final native boolean getPackratAvailable() /*-{ 592 return this.packrat_available; 593 }-*/; 594 getRenvAvailable()595 public final native boolean getRenvAvailable() /*-{ 596 return this.renv_available; 597 }-*/; 598 getShowUserHomePage()599 public final native boolean getShowUserHomePage() /*-{ 600 return this.show_user_home_page; 601 }-*/; 602 getUserHomePageUrl()603 public final String getUserHomePageUrl() 604 { 605 String url = getUserHomePageUrlNative(); 606 if (url != null) 607 url = ApplicationUtils.getHostPageBaseURLWithoutContext(false) + url; 608 return url; 609 } 610 getUserHomePageUrlNative()611 private final native String getUserHomePageUrlNative() /*-{ 612 return this.user_home_page_url; 613 }-*/; 614 getAddins()615 public final native RAddins getAddins() /*-{ 616 return this.r_addins; 617 }-*/; 618 getPackageProvidedExtensions()619 public final native PackageProvidedExtensions.Data getPackageProvidedExtensions() /*-{ 620 return this.package_provided_extensions; 621 }-*/; 622 getSupportDriverLicensing()623 public final native boolean getSupportDriverLicensing() /*-{ 624 return this.drivers_support_licensing; 625 }-*/; 626 quitChildProcessesOnExit()627 public final native boolean quitChildProcessesOnExit() /*-{ 628 return this.quit_child_processes_on_exit; 629 }-*/; 630 getGitCommitLargeFileSize()631 public final native int getGitCommitLargeFileSize() /*-{ 632 return this.git_commit_large_file_size; 633 }-*/; 634 getDefaultRSConnectServer()635 public final native String getDefaultRSConnectServer() /*-{ 636 return this.default_rsconnect_server; 637 }-*/; 638 getRLibsUser()639 public final native String getRLibsUser() /*-{ 640 return this.r_libs_user; 641 }-*/; 642 getInitOptions()643 public final native SessionInitOptions getInitOptions() /*-{ 644 return this.init_options; 645 }-*/; 646 647 /** 648 * @return The list of R packages we depend on 649 */ getPackageDependencies()650 public final native DependencyList getPackageDependencies() /*-{ 651 return this.package_dependencies; 652 }-*/; 653 654 /** 655 * @return project identifier (only meaningful in RStudio Workbench) 656 */ getProjectId()657 public final native String getProjectId() /*-{ 658 return this.project_id; 659 }-*/; 660 getGraphicsBackends()661 public final native JsArrayString getGraphicsBackends() /*-{ 662 return this.graphics_backends; 663 }-*/; 664 getPythonInitialized()665 public final native boolean getPythonInitialized() /*-{ 666 return this.python_initialized; 667 }-*/; 668 getPythonReplActive()669 public final native boolean getPythonReplActive() /*-{ 670 return this.python_repl_active; 671 }-*/; 672 getSessionNode()673 public final native String getSessionNode() /*-{ 674 return this.session_node; 675 }-*/; 676 getReticulatePython()677 public final native String getReticulatePython() /*-{ 678 return this.reticulate_python; 679 }-*/; 680 getMemoryUsage()681 public final native MemoryUsage getMemoryUsage() /*-{ 682 return this.memory_usage; 683 }-*/; 684 } 685