def get_name(self, name_id): with closing(self.db.cursor()) as cursor: sequence = [] for foo in range(256): # dns labels are limited to 256 depths anyway cursor.execute('SELECT parent,name FROM name WHERE `id`=%s LIMIT 1', (name_id,)) self.queries += 1 (name_id, label) = cursor.fetchone() sequence.append(label) if name_id is None: return DomainName(sequence)