human
I wrote the below code

    assert (1 <= parsimony_size <= 2), 'Parsimony    tournament    size    has    to    be    in    the    range    [1,    2].'
    def _sizeTournament(individuals, k, select):
        chosen = []
        for i in xrange(k):
            prob = (parsimony_size / 2.0)
            (ind1, ind2) = select(individuals, k=2)
            if (len(ind1) > len(ind2)):
                (ind1, ind2) = (ind2, ind1)
            elif (len(ind1) == len(ind2)):
                prob = 0.5
            chosen.append((ind1 if (random.random() < prob) else ind2))
        return chosen
    def _fitTournament(individuals, k, select):
        chosen = []
        for i in xrange(k):
            aspirants = select(individuals, k=fitness_size)
            chosen.append(max(aspirants, key=attrgetter(fit_attr)))
        return chosen
    if fitness_first:
        tfit = partial(_fitTournament, select=selRandom)
        return _sizeTournament(individuals, k, tfit)
    else:
        tsize = partial(_sizeTournament, select=selRandom)
        return _fitTournament(individuals, k, tsize)

What's a good function header?

Here's a good function header?
assistant
#Here's a good function header.

def selDoubleTournament(individuals, k, fitness_size, parsimony_size, fitness_first, fit_attr='fitness'):