code: def _validate_args(
      feature_list0: List[np.ndarray],
      feature_list1: List[np.ndarray],
      is_categorical_list0: List[bool],
      is_categorical_list1: List[bool],
      k: int,
      estimate_method: str,
      weight_feature: np.ndarray,
      filter_feature: np.ndarray,
      output_each: bool,
      seed: Optional[int],
  ) -> None:
      """Validates the arguments of the function `mutual_information`."""
  
      assert (
          len(set(len(f) for f in feature_list0 + feature_list1)) == 1
      ), "The features have different number of items."
  
      assert len(is_categorical_list0) == len(
          feature_list0
      ), "is_categorical_list0 is not the same length as feature_list0."
      assert len(is_categorical_list1) == len(
          feature_list1
      ), "is_categorical_list1 is not the same length as feature_list1."
  
      assert (
          isinstance(k, int) and k >= 3
      ), "k has to be an integer no less than 3."
  
      assert estimate_method in ["smaller_data", "larger_data"]
  
      def assert_feature(f, f_name):
          assert (
              f is None
              or isinstance(f, np.ndarray)
              and len(f) == len(feature_list0[0])
          ), (
              "%s must be None or a feature with the same item number."
              % f_name
          )
  
      assert_feature(weight_feature, "weight_feature")
      assert_feature(filter_feature, "filter_feature")
  
      assert isinstance(output_each, bool)
      assert seed is None or isinstance(seed, int) and seed > 0
  
imports: import functools
  import itertools
  import math
  from typing import Any, List, Optional, Tuple, Union
  import uuid
  import numpy
  import pandas
  import scipy.special
  import sklearn.neighbors
label_desc: Use image node_id 11 for calling a global function with example usage: _validate_args(feature_list0, feature_list1, is_categorical_list0, is_categorical_list1, k, estimate_method, weight_feature, filter_feature, output_each, seed) without return types