code: def skip_by_module(request):
      if request.node.get_closest_marker("skip_module"):
          modules_from_args = request.node.get_closest_marker(
              "skip_module"
          ).args
  
          # separate possible parent modules and test them first
          modules_parents = [
              m.split(".", 1)[0] for m in modules_from_args
          ]
  
          # merge with modules including submodules (Note: sort ensures that parent comes first)
          modules_full = sorted(
              set(modules_parents).union(modules_from_args)
          )
  
          for module in modules_full:
              if module in modules_full:
                  module_spec = importlib.util.find_spec(module)
                  module_found = module_spec is not None
  
                  if not module_found:
                      pytest.skip(
                          f"Test skipped because package {module} not available."
                      )
  
imports: import importlib
  import json
  import logging
  import os
  import shutil
  import tempfile
  from typing import Dict, List, TYPE_CHECKING, Union
  import warnings
  import numpy
  import pytest
  import requests
  from art.data_generators import KerasDataGenerator, MXDataGenerator, PyTorchDataGenerator, TensorFlowDataGenerator, TensorFlowV2DataGenerator
  from art.defences.preprocessor import FeatureSqueezing, JpegCompression, SpatialSmoothing
  from art.estimators.classification import KerasClassifier
  from tests.utils import ARTTestFixtureNotImplemented, get_attack_classifier_pt, get_image_classifier_kr, get_image_classifier_kr_functional, get_image_classifier_kr_tf, get_image_classifier_kr_tf_functional, get_image_classifier_kr_tf_with_wildcard, get_image_classifier_mxnet_custom_ini, get_image_classifier_pt, get_image_classifier_pt_functional, get_image_classifier_tf, get_image_classifier_hf, get_image_gan_tf_v2, get_image_generator_tf_v2, get_tabular_classifier_kr, get_tabular_classifier_pt, get_tabular_classifier_scikit_list, get_tabular_classifier_tf, load_dataset, master_seed
label_desc: Use image node_id 43 for calling a global function with example usage: skip_by_module(request) without return types