docs: def is_int(value):
      """
      Check if value is an int
  
      :type value: int, str, bytes, float, Decimal
  
      >>> is_int(123), is_int('123'), is_int(Decimal('10'))
      (True, True, True)
      >>> is_int(1.1), is_int('1.1'), is_int(Decimal('10.1'))
      (False, False, False)
      >>> is_int(object)
      Traceback (most recent call last):
      TypeError:
      """
      ensure_instance(value, (int, str, bytes, float, Decimal))
      if isinstance(value, int):
          return True
      elif isinstance(value, float):
          return False
      elif isinstance(value, Decimal):
          return str(value).isdigit()
      elif isinstance(value, (str, bytes)):
          return value.isdigit()
      raise ValueError()