class_docstr: Implementation of the attack from Hirano and Takemoto (2019). Computes a fixed perturbation to be applied to all
  future inputs. To this end, it can use any adversarial attack method.
  
  | Paper link: https://arxiv.org/abs/1911.06502
class_docstr_tok: ["Implementation","of","the","attack","from","Hirano","and","Takemoto","(","2019",")",".","Computes","a","fixed","perturbation","to","be","applied","to","all","future","inputs",".","To","this","end",",","it","can","use","any","adversarial","attack","method",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1911.06502"]
docstr: Get a class module from its name.
  
  :param class_name: Full name of a class.
  :return: The class `module`.
docstr_tok: ["Get","a","class","module","from","its","name",".",":","param","class_name",":","Full","name","of","a","class",".",":","return",":","The","class","`","module","`","."]
code: def _get_class(class_name: str) -> types.ModuleType:
      """
      Get a class module from its name.
  
      :param class_name: Full name of a class.
      :return: The class `module`.
      """
      sub_mods = class_name.split(".")
      module_ = __import__(
          ".".join(sub_mods[:-1]), fromlist=sub_mods[-1]
      )
      class_module = getattr(module_, sub_mods[-1])
  
      return class_module
  
file_path: adversarial-robustness-toolbox/art/attacks/evasion/targeted_universal_perturbation.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import random
  import types
  from typing import Any, Dict, Optional, Union, TYPE_CHECKING
  import numpy
  from art.attacks.attack import EvasionAttack
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import projection
label_desc: Use image node_id 5 for calling the TargetedUniversalPerturbation obj's underlying member method code with example usage: obj._get_class(class_name) and returns: class_module