code: def test_distribution(
      dataloaders_with_covariates, tmp_path, strategy
  ):
      train_dataloader = dataloaders_with_covariates["train"]
      val_dataloader = dataloaders_with_covariates["val"]
      net = TemporalFusionTransformer.from_dataset(
          train_dataloader.dataset,
      )
      logger = TensorBoardLogger(tmp_path)
      trainer = pl.Trainer(
          max_epochs=3,
          gradient_clip_val=0.1,
          fast_dev_run=True,
          logger=logger,
          strategy=strategy,
          enable_checkpointing=True,
          accelerator="gpu" if torch.cuda.is_available() else "cpu",
      )
      try:
          trainer.fit(
              net,
              train_dataloaders=train_dataloader,
              val_dataloaders=val_dataloader,
          )
  
      finally:
          shutil.rmtree(tmp_path, ignore_errors=True)
  
imports: import pickle
  import shutil
  import sys
  import lightning.pytorch
  from lightning.pytorch.callbacks import EarlyStopping, ModelCheckpoint
  from lightning.pytorch.loggers import TensorBoardLogger
  import numpy
  import pytest
  import torch
  from pytorch_forecasting import TimeSeriesDataSet
  from pytorch_forecasting.data import NaNLabelEncoder
  from pytorch_forecasting.data.encoders import GroupNormalizer, MultiNormalizer
  from pytorch_forecasting.metrics import CrossEntropy, MQF2DistributionLoss, MultiLoss, NegativeBinomialDistributionLoss, PoissonLoss, QuantileLoss, TweedieLoss
  from pytorch_forecasting.models import TemporalFusionTransformer
  from pytorch_forecasting.models.temporal_fusion_transformer.tuning import optimize_hyperparameters
  from test_models.conftest import make_dataloaders
label_desc: Use image node_id 9 for calling a global function with example usage: test_distribution(dataloaders_with_covariates, tmp_path, strategy) without return types