class_docstr: Subscriber, intended to be instantiated once per Python process, that logs Spark table
  information propagated from Java to the current MLflow run, starting a run if necessary.
  class implements a Java interface (org.mlflow.spark.autologging.MlflowAutologEventSubscriber,
  defined in the mlflow-spark package) that's called-into by autologging logic in the JVM in order
  to propagate Spark datasource read events to Python.
  
  This class leverages the Py4j callback mechanism to receive callbacks from the JVM, see
  https://www.py4j.org/advanced_topics.html#implementing-java-interfaces-from-python-callback for
  more information.
class_docstr_tok: ["Subscriber",",","intended","to","be","instantiated","once","per","Python","process",",","that","logs","Spark","table","information","propagated","from","Java","to","the","current","MLflow","run",",","starting","a","run","if","necessary",".","class","implements","a","Java","interface","(","org.mlflow.spark.autologging.MlflowAutologEventSubscriber",",","defined","in","the","mlflow-spark","package",")","that","'s","called-into","by","autologging","logic","in","the","JVM","in","order","to","propagate","Spark","datasource","read","events","to","Python",".","This","class","leverages","the","Py4j","callback","mechanism","to","receive","callbacks","from","the","JVM",",","see","https",":","\/\/www.py4j.org\/advanced_topics.html","#","implementing-java-interfaces-from-python-callback","for","more","information","."]
code: def notify(self, path, version, data_format):
      try:
          self._notify(path, version, data_format)
      except Exception as e:
          _logger.error(
              "Unexpected exception %s while attempting to log Spark datasource "
              "info. Exception:\n",
              e,
          )
  
imports: import concurrent.futures
  import logging
  import sys
  import threading
  import uuid
  from py4j.java_gateway import CallbackServerParameters
  import mlflow
  from mlflow import MlflowClient
  from mlflow.exceptions import MlflowException
  from mlflow.spark import FLAVOR_NAME
  from mlflow.tracking.context.abstract_context import RunContextProvider
  from mlflow.utils import _truncate_and_ellipsize
  from mlflow.utils.autologging_utils import ExceptionSafeClass, autologging_is_disabled
  from mlflow.utils.databricks_utils import get_repl_id
  from mlflow.utils.validation import MAX_TAG_VAL_LENGTH
label_desc: Use image node_id 4 for calling the PythonSubscriber obj's underlying member method code with example usage: obj.notify(path, version, data_format) without return types