
    +#h2                     2    d dl mZ d dlmZmZ d ZedfdZy)    normalize_text)Completions
Predictionc                      t        |       xs d S Nr   )ss    U/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dspy/predict/aggregation.py<lambda>r      s    nQ/74     Nc                     t         fdt        t        t        fD              sJ t	               }t         t              r j                  }n }	 |j                  }|s1|r|j                  d   }nt        |d   j                               d   }|r|nd }|D cg c]  } |||          }}|D cg c]  }||	 }	}i }
|	xs |D ]  }|
j                  |d      dz   |
|<    t        |
|
j                        }|D ]  } |||         |k(  s n t        j                  g|      S #  d}Y xY wc c}w c c}w )	z
        Returns the most common completion for the target field (or the last field) in the signature.
        When normalize returns None, that completion is ignored.
        In case of a tie, earlier completion are prioritized.
    c              3   6   K   | ]  }t        |        y wr   )
isinstance).0tprediction_or_completionss     r
   	<genexpr>zmajority.<locals>.<genexpr>   s     aAz3Q7as   Nr   c                     | S r    )xs    r
   r   zmajority.<locals>.<lambda>#   s    a r      )key)	signature)anyr   r   listtyper   completionsr   output_fieldskeysgetmaxfrom_completions)r   	normalizefield
input_typer   r   
completionnormalized_valuesr   normalized_values_value_countsvaluemajority_values   `            r
   majorityr-      sk    a*k[_A`aaaa/0J +Z8/;;/))	 ++B/EQ,,./3E '	KIHST*:e#45TT%6H!-!HH L$9(9 =*..ua81<U= <+;+;<N " 
Z&'>9
 &&
|yII7	 UHs   D- D64D;<D;-D3)	dsp.utilsr   dspy.primitives.predictionr   r   default_normalizer-   r   r   r
   <module>r1      s    $ >7  3D4 -Jr   