docs: def encode_alphanumeric(self):
          """This method encodes the QR code's data if its mode is
          alphanumeric. It returns the data encoded as a binary string.
          """
          #Convert the string to upper case
          self.data = self.data.upper()
  
          #Change the data such that it uses a QR code ascii table
          ascii = []
          for char in self.data:
              if isinstance(char, int):
                  ascii.append(tables.ascii_codes[chr(char)])
              else:
                  ascii.append(tables.ascii_codes[char])
          
          #Now perform the algorithm that will make the ascii into bit fields
          with io.StringIO() as buf:
              for (a,b) in self.grouper(2, ascii):
                  if b is not None:
                      buf.write(self.binary_string((45*a)+b, 11))
                  else:
                      #This occurs when there is an odd number
                      #of characters in the data
                      buf.write(self.binary_string(a, 6))
  
              #Return the binary string
              return buf.getvalue()