code: def log_fn_args_as_params(fn, args, kwargs, unlogged=None):
      """Log arguments explicitly passed to a function as MLflow Run parameters to the current active
      MLflow Run.
  
      Args:
          fn: function whose parameters are to be logged
          args: arguments explicitly passed into fn. If `fn` is defined on a class,
              `self` should not be part of `args`; the caller is responsible for
              filtering out `self` before calling this function.
          kwargs: kwargs explicitly passed into fn
          unlogged: parameters not to be logged
  
      Returns:
          None
  
      """
      params_to_log = get_mlflow_run_params_for_fn_args(
          fn, args, kwargs, unlogged
      )
      mlflow.log_params(params_to_log)
  
imports: import contextlib
  import inspect
  import logging
  import time
  from typing import List
  import mlflow
  from mlflow.entities import Metric
  from mlflow.tracking.client import MlflowClient
  from mlflow.utils.validation import MAX_METRICS_PER_BATCH
  from mlflow.utils.autologging_utils.client import MlflowAutologgingQueueingClient
  from mlflow.utils.autologging_utils.events import AutologgingEventLogger
  from mlflow.utils.autologging_utils.logging_and_warnings import set_mlflow_events_and_warnings_behavior_globally, set_non_mlflow_warnings_behavior_for_current_thread
  from mlflow.utils.autologging_utils.safety import ExceptionSafeAbstractClass, ExceptionSafeClass, PatchFunction, exception_safe_function_for_class, is_testing, picklable_exception_safe_function, revert_patches, safe_patch, update_wrapper_extended, with_managed_run
  from mlflow.utils.autologging_utils.versioning import FLAVOR_TO_MODULE_NAME_AND_VERSION_INFO_KEY, get_min_max_version_and_pip_release, is_flavor_supported_for_associated_package_versions
label_desc: Use image node_id 2 for calling a global function with example usage: log_fn_args_as_params(fn, args, kwargs, unlogged) without return types