ó
    pyüi¾  ã                   óŽ   • S r SSKJr  SSKJr  \ " S S5      5       rS\\   S\\\\4      4S jr	S	\\\\4      S\\   4S
 jr
g)zíEvaluation results utilities for the `.eval_results/*.yaml` format.

See https://huggingface.co/docs/hub/eval-results for more details.
Specifications are available at https://github.com/huggingface/hub-docs/blob/main/eval_results.yaml.
é    )Ú	dataclass)ÚAnyc                   óâ   • \ rS rSr% Sr\\S'   \\S'   \\S'   Sr\S-  \S'   Sr	\S-  \S'   Sr
\S-  \S	'   Sr\S-  \S
'   Sr\S-  \S'   Sr\S-  \S'   Sr\S-  \S'   Sr\S-  \S'   SS jrSrg)ÚEvalResultEntryé   aL	  
Evaluation result entry for the `.eval_results/*.yaml` format.

Represents evaluation scores stored in model repos that automatically appear on
the model page and the benchmark dataset's leaderboard.

For the legacy `model-index` format in `README.md`, use [`EvalResult`] instead.

See https://huggingface.co/docs/hub/eval-results for more details.

Args:
    dataset_id (`str`):
        Benchmark dataset ID from the Hub. Example: "cais/hle", "Idavidrein/gpqa".
    task_id (`str`):
        Task identifier within the benchmark. Example: "gpqa_diamond".
    value (`Any`):
        The metric value. Example: 20.90.
    dataset_revision (`str`, *optional*):
        Git SHA of the benchmark dataset.
    verify_token (`str`, *optional*):
        A signature that can be used to prove that evaluation is provably auditable and reproducible.
    date (`str`, *optional*):
        When the evaluation was run (ISO-8601 datetime). Defaults to git commit time.
    source_url (`str`, *optional*):
        Link to the evaluation source (e.g., https://huggingface.co/spaces/SaylorTwift/smollm3-mmlu-pro). Required if `source_name`, `source_user`, or `source_org` is provided.
    source_name (`str`, *optional*):
        Display name for the source. Example: "Eval Logs".
    source_user (`str`, *optional*):
        HF user name for attribution. Example: "celinah".
    source_org (`str`, *optional*):
        HF org name for attribution. Example: "cais".
    notes (`str`, *optional*):
        Details about the evaluation setup. Example: "tools", "no-tools", "chain-of-thought".

Example:
    ```python
    >>> from huggingface_hub import EvalResultEntry
    >>> # Minimal example with required fields only
    >>> result = EvalResultEntry(
    ...     dataset_id="Idavidrein/gpqa",
    ...     task_id="gpqa_diamond",
    ...     value=0.412,
    ... )
    >>> # Full example with all fields
    >>> result = EvalResultEntry(
    ...     dataset_id="cais/hle",
    ...     task_id="default",
    ...     value=20.90,
    ...     dataset_revision="5503434ddd753f426f4b38109466949a1217c2bb",
    ...     verify_token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    ...     date="2025-01-15T10:30:00Z",
    ...     source_url="https://huggingface.co/datasets/cais/hle",
    ...     source_name="CAIS HLE",
    ...     source_org="cais",
    ...     notes="no-tools",
    ... )

    ```
Ú
dataset_idÚtask_idÚvalueNÚdataset_revisionÚverify_tokenÚdateÚ
source_urlÚsource_nameÚsource_userÚ
source_orgÚnotesc                 ó„   • U R                   c  U R                  c  U R                  b  U R                  c  [	        S5      eg g )NzaIf `source_name`, `source_user`, or `source_org` is provided, `source_url` must also be provided.)r   r   r   r   Ú
ValueError)Úselfs    ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/huggingface_hub/_eval_results.pyÚ__post_init__ÚEvalResultEntry.__post_init__U   sH   € à×ÑÑ(¨D×,<Ñ,<Ñ,HÈDÏOÉOÑLgØ�o‰oÑ%ÜØsóð ð &ð Mhó    © )ÚreturnN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚstrÚ__annotations__r   r   r   r   r   r   r   r   r   r   Ú__static_attributes__r   r   r   r   r      s�   ‡ ñ:ðx ƒOØƒLØƒJØ#'Ð�c˜D‘jÓ'Ø#€L�#˜‘*Ó#Ø€Dˆ#�‰*ÓØ!€J��d‘
Ó!Ø"€K��t‘Ó"Ø"€K��t‘Ó"Ø!€J��d‘
Ó!Ø€Eˆ3�‰:Ó÷r   r   Úentriesr   c                 óV  • / nU  GH  nUR                   UR                  S.nUR                  b  UR                  US'   X2R                  S.nUR                  b  UR                  US'   UR
                  b  UR
                  US'   UR                  bf  SUR                  0nUR                  b  UR                  US'   UR                  b  UR                  US'   UR                  b  UR                  US	'   XTS
'   UR                  b  UR                  US'   UR                  U5        GM"     U$ )aQ  Convert a list of [`EvalResultEntry`] objects to a YAML-serializable list of dicts.

This produces the format expected in `.eval_results/*.yaml` files.

Args:
    entries (`list[EvalResultEntry]`):
        List of evaluation result entries to serialize.

Returns:
    `list[dict[str, Any]]`: A list of dictionaries ready to be dumped to YAML.

Example:
    ```python
    >>> from huggingface_hub import EvalResultEntry, eval_result_entries_to_yaml
    >>> entries = [
    ...     EvalResultEntry(dataset_id="cais/hle", task_id="default", value=20.90),
    ...     EvalResultEntry(dataset_id="Idavidrein/gpqa", task_id="gpqa_diamond", value=0.412),
    ... ]
    >>> yaml_data = eval_result_entries_to_yaml(entries)
    >>> yaml_data[0]
    {'dataset': {'id': 'cais/hle', 'task_id': 'default'}, 'value': 20.9}

    ```

    To upload eval results to the Hub:
    ```python
    >>> import yaml
    >>> from huggingface_hub import upload_file, EvalResultEntry, eval_result_entries_to_yaml
    >>> entries = [
    ...     EvalResultEntry(dataset_id="cais/hle", task_id="default", value=20.90),
    ... ]
    >>> yaml_content = yaml.dump(eval_result_entries_to_yaml(entries))
    >>> upload_file(
    ...     path_or_fileobj=yaml_content.encode(),
    ...     path_in_repo=".eval_results/hle.yaml",
    ...     repo_id="your-username/your-model",
    ... )

    ```
)Úidr	   Úrevision)Údatasetr
   ÚverifyTokenr   ÚurlÚnameÚuserÚorgÚsourcer   )r   r	   r   r
   r   r   r   r   r   r   r   Úappend)r$   ÚresultÚentryr(   Údatar.   s         r   Úeval_result_entries_to_yamlr3   ^   s!  € ðR €FÜˆà).×)9Ñ)9ÀeÇmÁmÑ"TˆØ×!Ñ!Ñ-Ø"'×"8Ñ"8ˆG�JÑà+2¿[¹[ÑIˆØ×ÑÑ)Ø"'×"4Ñ"4ˆD�ÑØ�:‰:Ñ!Ø Ÿ:™:ˆD�‰Là×ÑÑ'Ø&+¨U×-=Ñ-=Ð%>ˆFØ× Ñ Ñ,Ø!&×!2Ñ!2��v‘Ø× Ñ Ñ,Ø!&×!2Ñ!2��v‘Ø×ÑÑ+Ø %× 0Ñ 0��u‘Ø#�‰NØ�;‰;Ñ"Ø!ŸK™KˆD�‰Mà�‰�d×ñ1 ð2 €Mr   r2   c                 ó  • / nU  GH  nUR                  SU5      nUR                  S0 5      nUR                  S0 5      n[        US   US   US   UR                  S5      UR                  S5      UR                  S	5      U(       a  UR                  S
5      OSU(       a  UR                  S5      OSU(       a  UR                  S5      OSU(       a  UR                  S5      OSUR                  S5      S9nUR                  U5        GM     U$ )a,  Parse a list of dicts into [`EvalResultEntry`] objects.

This parses the `.eval_results/*.yaml` format. For the legacy `model-index` format,
use [`model_index_to_eval_results`] instead.

Args:
    data (`list[dict[str, Any]]`):
        A list of dictionaries (e.g., parsed from YAML or API response).

Returns:
    `list[EvalResultEntry]`: A list of evaluation result entry objects.

Example:
    ```python
    >>> from huggingface_hub import parse_eval_result_entries
    >>> data = [
    ...     {"dataset": {"id": "cais/hle", "task_id": "default"}, "value": 20.90},
    ...     {"dataset": {"id": "Idavidrein/gpqa", "task_id": "gpqa_diamond"}, "value": 0.412},
    ... ]
    >>> entries = parse_eval_result_entries(data)
    >>> entries[0].dataset_id
    'cais/hle'
    >>> entries[0].value
    20.9

    ```
r2   r(   r.   r&   r
   r	   r'   r)   r   r*   Nr+   r,   r-   r   )r   r
   r	   r   r   r   r   r   r   r   r   )Úgetr   r/   )r2   r$   ÚitemÚ
entry_datar(   r.   r1   s          r   Úparse_eval_result_entriesr8   ¤   sé   € ð8 €GÜˆØ—X‘X˜f dÓ+ˆ
Ø—.‘. ¨BÓ/ˆØ—‘ ¨"Ó-ˆÜØ˜t‘}Ø˜WÑ%Ø˜IÑ&Ø$Ÿ[™[¨Ó4Ø#Ÿ™¨Ó6Ø—‘ Ó'Þ,2�v—z‘z %Ô(¸Þ.4˜Ÿ
™
 6Ô*¸$Þ.4˜Ÿ
™
 6Ô*¸$Þ,2�v—z‘z %Ô(¸Ø—.‘. Ó)ñ
ˆð 	�‰�u×ñ# ð$ €Nr   N)r    Údataclassesr   Útypingr   r   ÚlistÚdictr!   r3   r8   r   r   r   Ú<module>r=      s~   ðñõ "Ý ð ÷Oð Oó ðOðdC¨¨oÑ)>ð CÀ4ÈÈSÐRUÈXÉÑCWô CðL/ D¨¨c°3¨h©Ñ$8ð /¸TÀ/Ñ=Rõ /r   