text: from __future__ import (absolute_import, division,
                          print_function, unicode_literals)
  
  from pyotp.hotp import HOTP  # noqa
  from pyotp.otp import OTP  # noqa
  from pyotp.totp import TOTP  # noqa
  from . import utils  # noqa
  
  def random_base32(length=16, random=None,
                    chars=list('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')):
  
      # Use secrets module if available (Python version >= 3.6) per PEP 506
      try:
          import secrets
          random = secrets.SystemRandom()
      except ImportError:
          import random as _random
          random = _random.SystemRandom()
  
      return ''.join(
          random.choice(chars)
          for _ in range(length)
      )
  
  def random_hex(length=16, random=None,
                 chars=list('ABCDEF0123456789')):
      return random_base32(length=length, random=None, chars=chars)
  