class_docstr: Subcommand to print information about Bokeh and Bokeh server configuration.
  
      
class_docstr_tok: ["Subcommand","to","print","information","about","Bokeh","and","Bokeh","server","configuration","."]
docstr_tok: []
code: def invoke(self, args: Namespace) -> None:
      """ """
      if args.static:
          print(settings.bokehjs_path())
      else:
          newline = "\n"
          print(
              f"Python version        :  {sys.version.split(newline)[0]}"
          )
          print(
              f"IPython version       :  {if_installed(_version('IPython', '__version__'))}"
          )
          print(
              f"Tornado version       :  {if_installed(_version('tornado', 'version'))}"
          )
          print(f"Bokeh version         :  {__version__}")
          print(f"BokehJS static path   :  {settings.bokehjs_path()}")
          print(
              f"node.js version       :  {if_installed(nodejs_version())}"
          )
          print(
              f"npm version           :  {if_installed(npmjs_version())}"
          )
          print(
              f"jupyter_bokeh version :  {if_installed(_version('jupyter_bokeh', '__version__'))}"
          )
          print(f"Operating system      :  {platform.platform()}")
  
file_path: bokeh/src/bokeh/command/subcommands/info.py
imports: from __future__ import annotations
  import logging
  import platform
  import sys
  from argparse import Namespace
  from bokeh import __version__
  from bokeh.settings import settings
  from bokeh.util.compiler import nodejs_version, npmjs_version
  from bokeh.util.dependencies import import_optional
  from ..subcommand import Argument, Subcommand
label_desc: Use image node_id 1 for calling the Info obj's underlying member method code with example usage: obj.invoke(args) without return types