text: # Query Jupyter server for defined variables list
  # Tested on 2.7 and 3.6
  import json as _VSCODE_json
  
  # In IJupyterVariables.getValue this '_VSCode_JupyterTestValue' will be replaced with the json stringified value of the target variable
  # Indexes off of _VSCODE_targetVariable need to index types that are part of IJupyterVariable
  _VSCODE_targetVariable = _VSCODE_json.loads("""_VSCode_JupyterTestValue""")
  
  # Secure here as what we are doing an eval on is under our control
  _VSCODE_evalResult = eval(_VSCODE_targetVariable["name"])  # nosec
  
  # Find shape and count if available
  if hasattr(_VSCODE_evalResult, "shape"):
      try:
          # Get a bit more restrictive with exactly what we want to count as a shape, since anything can define it
          if isinstance(_VSCODE_evalResult.shape, tuple):
              _VSCODE_shapeStr = str(_VSCODE_evalResult.shape)
              if (
                  len(_VSCODE_shapeStr) >= 3
                  and _VSCODE_shapeStr[0] == "("
                  and _VSCODE_shapeStr[-1] == ")"
                  and "," in _VSCODE_shapeStr
              ):
                  _VSCODE_targetVariable["shape"] = _VSCODE_shapeStr
              del _VSCODE_shapeStr
      except TypeError:
          pass
  
  if hasattr(_VSCODE_evalResult, "__len__"):
      try:
          _VSCODE_targetVariable["count"] = len(_VSCODE_evalResult)
      except TypeError:
          pass
  
  print(_VSCODE_json.dumps(_VSCODE_targetVariable))
  del _VSCODE_json
  