class_docstr: Uniform integer distribution.
  
  Parameters
  ----------
  lower: int
      Inclusive lower bound of distribution.
  upper: int
      Inclusive upper bound of distribution.
  log: bool, default = False:
      If True, the distribution will be log-uniform.
code: def get_tune(self):
      from ray.tune.sample import Integer, LogUniform
  
      class LogUniformInteger(Integer):
          class _LogUniform(LogUniform):
              def sample(
                  self, domain: "Integer", spec=None, size: int = 1
              ):
                  assert (
                      domain.lower > 0
                  ), "LogUniform needs a lower bound greater than 0"
                  assert (
                      0 < domain.upper < float("inf")
                  ), "LogUniform needs a upper bound greater than 0"
                  logmin = np.log(domain.lower) / np.log(self.base)
                  logmax = np.log(domain.upper) / np.log(self.base)
  
                  items = self.base ** (
                      np.random.uniform(logmin, logmax, size=size)
                  )
                  items = np.round(items).astype(int)
                  return (
                      items if len(items) > 1 else domain.cast(items[0])
                  )
  
          def loguniform(self, base: float = 10):
              if not self.lower > 0:
                  raise ValueError(
                      "LogUniform requires a lower bound greater than 0."
                      f"Got: {self.lower}. Did you pass a variable that has "
                      "been log-transformed? If so, pass the non-transformed value "
                      "instead."
                  )
              if not 0 < self.upper < float("inf"):
                  raise ValueError(
                      "LogUniform requires a upper bound greater than 0. "
                      f"Got: {self.lower}. Did you pass a variable that has "
                      "been log-transformed? If so, pass the non-transformed value "
                      "instead."
                  )
              new = copy(self)
              new.set_sampler(self._LogUniform(base))
              return new
  
      if self.log:
          return LogUniformInteger(self.lower, self.upper).loguniform(
              10
          )
      else:
          return Integer(self.lower, self.upper).uniform()
  
imports: from typing import Dict, Optional
  from scipy.stats import loguniform, randint, uniform
  from copy import copy
  import numpy
label_desc: Use image node_id 7 for calling the IntUniformDistribution obj's underlying member method code with example usage: obj.get_tune() and returns: LogUniformInteger, Integer, new, unknown