code: def astuple(self, encoding=None):
          
          if not encoding:
              return (
                  self.id, self.seqid, self.source, self.featuretype, self.start,
                  self.end, self.score, self.strand, self.frame,
                  helpers._jsonify(self.attributes),
                  helpers._jsonify(self.extra), self.calc_bin()
              )
          return (
              self.id.decode(encoding), self.seqid.decode(encoding),
              self.source.decode(encoding), self.featuretype.decode(encoding),
              self.start, self.end, self.score.decode(encoding),
              self.strand.decode(encoding), self.frame.decode(encoding),
              helpers._jsonify(self.attributes).decode(encoding),
              helpers._jsonify(self.extra).decode(encoding), self.calc_bin()
          )
docs: Return a tuple suitable for import into a database.
  
          Attributes field and extra field jsonified into strings. The order of
          fields is such that they can be supplied as arguments for the query
          defined in :attr:`gffutils.constants._INSERT`.
  
          If `encoding` is not None, then convert string fields to unicode using
          the provided encoding.
  
          Returns
          -------
          Tuple