code: def __init__(self, name: Optional[str] = None) -> None:
      if name is not None:
          if not isinstance(name, str):
              raise PySparkTypeError(
                  error_class="NOT_STR",
                  message_parameters={
                      "arg_name": "name",
                      "arg_type": type(name).__name__,
                  },
              )
          if name == "":
              raise PySparkValueError(
                  error_class="VALUE_NOT_NON_EMPTY_STR",
                  message_parameters={
                      "arg_name": "name",
                      "arg_value": name,
                  },
              )
      self._name = name
      self._result: Optional[Dict[str, Any]] = None
  
file_path: spark/python/pyspark/sql/connect/observation.py
imports: from typing import Any, Dict, Optional
  import uuid
  from pyspark.errors import PySparkTypeError, PySparkValueError, IllegalArgumentException, PySparkAssertionError
  from pyspark.sql.connect.column import Column
  from pyspark.sql.connect.dataframe import DataFrame
  from pyspark.sql.observation import Observation
  import pyspark.sql.connect.plan
label_desc: Use image node_id 1 to create a new Observation object  with example: obj = Observation(name)