docs: def encode(number, checksum=False, split=0):
      """Encode an integer into a symbol string.
  
      A ValueError is raised on invalid input.
  
      If checksum is set to True, a check symbol will be
      calculated and appended to the string.
  
      If split is specified, the string will be divided into
      clusters of that size separated by hyphens.
  
      The encoded string is returned.
      """
      number = int(number)
      if number < 0:
          raise ValueError("number '%d' is not a positive integer" % number)
  
      split = int(split)
      if split < 0:
          raise ValueError("split '%d' is not a positive integer" % split)
  
      check_symbol = ''
      if checksum:
          check_symbol = encode_symbols[number % check_base]
  
      if number == 0:
          return '0' + check_symbol
  
      symbol_string = ''
      while number > 0:
          remainder = number % base
          number //= base
          symbol_string = encode_symbols[remainder] + symbol_string
      symbol_string = symbol_string + check_symbol
  
      if split:
          chunks = []
          for pos in range(0, len(symbol_string), split):
              chunks.append(symbol_string[pos:pos + split])
          symbol_string = '-'.join(chunks)
  
      return symbol_string