python-package/lets_plot/frontend_context/_json_contexts.py (13 lines of code) (raw):

# Copyright (c) 2020. JetBrains s.r.o. # Use of this source code is governed by the MIT license that can be found in the LICENSE file. import os from ._frontend_ctx import FrontendContext from ._intellij_python_json_ctx import IntellijPythonJsonContext def _create_json_frontend_context() -> FrontendContext: """ Configures Lets-Plot JSON output. Such context requires a Lets-Plot JSON interpreter plugged in to the frontend env (like PyCharm) """ if _is_Intellij_Python_Lets_Plot_Plugin(): return IntellijPythonJsonContext() # ToDo: GenericJsonFrontendContext raise RuntimeError("Couldn't detect Intellij Python environment") def _is_Intellij_Python_Lets_Plot_Plugin() -> bool: try: # An empty marker module defined by Intellij Lets-Plot plugin # import lets_plot_intellij_python_plugin <---- the old way. # The check above is not working with PyCharm remote interpreter: https://github.com/JetBrains/lets-plot/issues/348 # 1) The "datalore.display" is present in both PyCharm and Datalore env. # See `intellij.python.helpers` module in IDEA. from datalore.display import display # 2) The "DATALORE_HOME" is only present in Datalore env but not in PyCharm env. return "DATALORE_HOME" not in os.environ except ImportError: return False