class_docstr: Implements the Sign-OPT attack `SignOPTAttack`. This is a query-efficient
  hard-label adversarial attack.
  
  Paper link: https://arxiv.org/pdf/1909.10773.pdf
code: def _check_params(self) -> None:
      if not isinstance(self.targeted, bool):
          raise ValueError(
              "The argument `targeted` has to be of type bool."
          )
  
      if self.epsilon <= 0:
          raise ValueError(
              "The initial step size for the step towards the target must be positive."
          )
  
      if not isinstance(self.num_trial, int) or self.num_trial < 0:
          raise ValueError(
              "The number of trials must be a non-negative integer."
          )
  
      if not isinstance(self.max_iter, int) or self.max_iter < 0:
          raise ValueError(
              "The number of iterations must be a non-negative integer."
          )
  
      if not isinstance(self.query_limit, int) or self.query_limit <= 0:
          raise ValueError(
              "The number of query_limit must be a positive integer."
          )
  
      if not isinstance(self.k, int) or self.k <= 0:
          raise ValueError(
              "The number of random directions (for estimating the gradient) must be a positive integer."
          )
  
      if self.alpha <= 0:
          raise ValueError("The value of alpha must be positive.")
  
      if self.beta <= 0:
          raise ValueError("The value of beta must be positive.")
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
  
imports: import logging
  from typing import Optional, TYPE_CHECKING, Tuple
  import time
  import numpy
  from tqdm.auto import tqdm
  from art.attacks.attack import EvasionAttack
  from art.config import ART_NUMPY_DTYPE
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import compute_success, check_and_transform_label_format, get_labels_np_array
label_desc: Use image node_id 10 for calling the SignOPTAttack obj's underlying member method code with example usage: obj._check_params() without return types