code: def train_test_validation(
      columns: Union[Hashable, List[Hashable]] = None,
      ignore_columns: Union[Hashable, List[Hashable]] = None,
      n_top_columns: int = None,
      n_samples: int = None,
      random_state: int = 42,
      n_to_show: int = 5,
      **kwargs,
  ) -> Suite:
      """Suite for validating correctness of train-test split, including distribution, \
      leakage and integrity checks.
  
      List of Checks:
          .. list-table:: List of Checks
             :widths: 50 50
             :header-rows: 1
  
             * - Check Example
               - API Reference
             * - :ref:`tabular__datasets_size_comparison`
               - :class:`~deepchecks.tabular.checks.train_test_validation.DatasetsSizeComparison`
             * - :ref:`tabular__new_label`
               - :class:`~deepchecks.tabular.checks.train_test_validation.NewLabelTrainTest`
             * - :ref:`tabular__new_category`
               - :class:`~deepchecks.tabular.checks.train_test_validation.CategoryMismatchTrainTest`
             * - :ref:`tabular__string_mismatch_comparison`
               - :class:`~deepchecks.tabular.checks.train_test_validation.StringMismatchComparison`
             * - :ref:`tabular__date_train_test_validation_leakage_duplicates`
               - :class:`~deepchecks.tabular.checks.train_test_validation.DateTrainTestLeakageDuplicates`
             * - :ref:`tabular__date_train_test_validation_leakage_overlap`
               - :class:`~deepchecks.tabular.checks.train_test_validation.DateTrainTestLeakageOverlap`
             * - :ref:`tabular__index_leakage`
               - :class:`~deepchecks.tabular.checks.train_test_validation.IndexTrainTestLeakage`
             * - :ref:`tabular__train_test_samples_mix`
               - :class:`~deepchecks.tabular.checks.train_test_validation.TrainTestSamplesMix`
             * - :ref:`tabular__feature_label_correlation_change`
               - :class:`~deepchecks.tabular.checks.train_test_validation.FeatureLabelCorrelationChange`
             * - :ref:`tabular__feature_drift`
               - :class:`~deepchecks.tabular.checks.train_test_validation.FeatureDrift`
             * - :ref:`tabular__label_drift`
               - :class:`~deepchecks.tabular.checks.train_test_validation.LabelDrift`
             * - :ref:`tabular__multivariate_drift`
               - :class:`~deepchecks.tabular.checks.train_test_validation.MultivariateDrift`
  
      Parameters
      ----------
      columns : Union[Hashable, List[Hashable]] , default: None
          The columns to be checked. If None, all columns will be checked except the ones in `ignore_columns`.
      ignore_columns : Union[Hashable, List[Hashable]] , default: None
          The columns to be ignored. If None, no columns will be ignored.
      n_top_columns : int , optional
          number of columns to show ordered by feature importance (date, index, label are first) (check dependent)
      n_samples : int , default: None
          number of samples to use for checks that sample data. If none, using the default n_samples per check.
      random_state : int, default: 42
          random seed for all checkss.
      n_to_show : int , default: 5
          number of top results to show (check dependent)
      **kwargs : dict
          additional arguments to pass to the checks.
  
      Returns
      -------
      Suite
          A suite for validating correctness of train-test split, including distribution, \
          leakage and integrity checks.
  
      Examples
      --------
      >>> from deepchecks.tabular.suites import train_test_validation
      >>> suite = train_test_validation(columns=['a', 'b', 'c'], n_samples=1_000_000)
      >>> result = suite.run()
      >>> result.show()
  
      See Also
      --------
      :ref:`quick_train_test_validation`
      """
      args = locals()
      args.pop("kwargs")
      non_none_args = {k: v for k, v in args.items() if v is not None}
      kwargs = {**non_none_args, **kwargs}
      return Suite(
          "Train Test Validation Suite",
          DatasetsSizeComparison(
              **kwargs
          ).add_condition_test_train_size_ratio_greater_than(),
          NewLabelTrainTest(
              **kwargs
          ).add_condition_new_labels_number_less_or_equal(),
          NewCategoryTrainTest(
              **kwargs
          ).add_condition_new_category_ratio_less_or_equal(),
          StringMismatchComparison(
              **kwargs
          ).add_condition_no_new_variants(),
          DateTrainTestLeakageDuplicates(
              **kwargs
          ).add_condition_leakage_ratio_less_or_equal(),
          DateTrainTestLeakageOverlap(
              **kwargs
          ).add_condition_leakage_ratio_less_or_equal(),
          IndexTrainTestLeakage(
              **kwargs
          ).add_condition_ratio_less_or_equal(),
          TrainTestSamplesMix(
              **kwargs
          ).add_condition_duplicates_ratio_less_or_equal(),
          FeatureLabelCorrelationChange(**kwargs)
          .add_condition_feature_pps_difference_less_than()
          .add_condition_feature_pps_in_train_less_than(),
          FeatureDrift(**kwargs).add_condition_drift_score_less_than(),
          LabelDrift(**kwargs).add_condition_drift_score_less_than(),
          MultivariateDrift(
              **kwargs
          ).add_condition_overall_drift_value_less_than(),
      )
  
file_path: deepchecks/deepchecks/tabular/suites/default_suites.py
imports: from typing import Callable, Dict, List, Union
  from deepchecks.tabular import Suite
  from deepchecks.tabular.checks import BoostingOverfit, CalibrationScore, ConflictingLabels, ConfusionMatrixReport, DataDuplicates, DatasetsSizeComparison, DateTrainTestLeakageDuplicates, DateTrainTestLeakageOverlap, FeatureDrift, FeatureFeatureCorrelation, FeatureLabelCorrelation, FeatureLabelCorrelationChange, IdentifierLabelCorrelation, IndexTrainTestLeakage, IsSingleValue, LabelDrift, MixedDataTypes, MixedNulls, ModelInferenceTime, MultivariateDrift, NewCategoryTrainTest, NewLabelTrainTest, OutlierSampleDetection, PercentOfNulls, PredictionDrift, RegressionErrorDistribution, RocReport, SimpleModelComparison, SingleDatasetPerformance, SpecialCharacters, StringLengthOutOfBounds, StringMismatch, StringMismatchComparison, TrainTestPerformance, TrainTestSamplesMix, UnusedFeatures, WeakSegmentsPerformance
  from deepchecks.tabular.utils.task_type import TaskType
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 2 for calling a global function with example usage: train_test_validation(columns, ignore_columns, n_top_columns, n_samples, random_state, n_to_show) and returns: Suite