docs: def get_data_length(self):
          """QR codes contain a "data length" field. This method creates this
          field. A binary string representing the appropriate length is
          returned.
          """
  
          #The "data length" field varies by the type of code and its mode.
          #discover how long the "data length" field should be.
          if 1 <= self.version <= 9:
              max_version = 9
          elif 10 <= self.version <= 26:
              max_version = 26
          elif 27 <= self.version <= 40:
              max_version = 40
  
          data_length = tables.data_length_field[max_version][self.mode]
  
          if self.mode != tables.modes['kanji']:
              length_string = self.binary_string(len(self.data), data_length)
          else:
              length_string = self.binary_string(len(self.data) / 2, data_length)
  
          if len(length_string) > data_length:
              raise ValueError('The supplied data will not fit '
                                 'within this version of a QRCode.')
          return length_string