ClickUp Operator

� lMg�����ddlZddlZddlmZddlmZmZmZmZm Z m Z ddl Z ddl Z ddl mZddlmZddlmZmZmZmZmZmZmZddlmZmZmZdd lmZdd lm Z dd l!m"Z"m#Z#m$Z$e#jJe&�Z'ee(�jRd z d z Z*ee(�jRd z dz Z+ejXd�Z-Gd�d�Z.Gd�de.�Z/Gd�de.�Z0Gd�de.�Z1de2dedfd�Z3de e2efdeefd�Z4de e2efdeddfd�Z5dd ddddd!�d"e2d#e2d$e2d%e2d&e2d'ed(e2d)e2d*ee2d+e6d,ee2d-ee2d.ee2d/ee2defd0�Z7e$dd ddddd dd1�d2e2d3ed4ee2d5e6d6ee2d7ee2d8ee2d9ee2d:e6d;ee2de2fd<��Z8y)=�N)�Path)�Any�Dict�Literal�Optional�Type�Union)�hf_hub_download)� upload_file)�CardData�DatasetCardData� EvalResult� ModelCardData� SpaceCardData�eval_results_to_model_index�model_index_to_eval_results)� get_session�is_jinja_available� yaml_dump�)� constants)�EntryNotFoundError)�SoftTemporaryDirectory�logging�validate_hf_hub_args� templateszmodelcard_template.mdzdatasetcard_template.mdz1^(\s*---[\r\n]+)([\S\s]*?)([\r\n]+---(\r\n|\n|$))c�f�eZdZeZeZdZddede fd�Z e d��Z e jdefd��Z d�Zdeeeffd �Ze dd eeefd eed eede fd��Zdd eefd�Z dded eed eedeedeedeedee deefd�Ze ddedeedeefd��Zy ) �RepoCard�model�content�ignore_metadata_errorsc� �||_||_y)a�Initialize a RepoCard from string content. The content should be a Markdown file with a YAML block at the beginning and a Markdown body. Args: content (`str`): The content of the Markdown file. Example: ```python >>> from huggingface_hub.repocard import RepoCard >>> text = ''' ... --- ... language: en ... license: mit ... --- ... ... # My repo ... ''' >>> card = RepoCard(text) >>> card.data.to_dict() {'language': 'en', 'license': 'mit'} >>> card.text '\n# My repo\n' ``` <Tip> Raises the following error: - [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) when the content of the repo card metadata is not a dictionary. </Tip> N)r!r )�selfr r!s �dC:\Users\noahv\Documents\GitHub\clickup-operator\.venv\Lib\site-packages\huggingface_hub/repocard.py�__init__zRepoCard.__init__+s��H'=��#��� �c��t|j�xsd}d|�|jj||j���|�d|�|j ��S)zLThe content of the RepoCard, including the YAML block and the Markdown body.� �---)� line_break�original_order)�_detect_line_ending�_content�data�to_yaml�_original_order�text)r#r*s r$r zRepoCard.contentRs}��)����7�?�4� ��Z�L����!2�!2�j�Y]�Ym�Ym�!2�!n� o�pz�o{�{~�@J�K�LP�LU�LU�KV�W� Wr&c��||_tj|�}|r]|jd�}||j �d|_t j|�}|�i}t|t�s)td��tjd�i}||_|jdi|�d|ji��|_t!|j#��|_y)z Set the content of the RepoCard.�N�)repo card metadata block should be a dictzBRepo card metadata block was not found. Setting CardData to empty.r!�)r-�REGEX_YAML_BLOCK�search�group�endr1�yaml� safe_load� isinstance�dict� ValueError�logger�warning�card_data_classr!r.�list�keysr0)r#r �match� yaml_block� data_dicts r$r zRepoCard.contentXs��� �� � �'�'��0�� ����Q��J��� � � � �.�D�I����z�2�I�� �� ��i��.� �!L�M�M� �N�N�_� `��I��D�I�(�D�(�(�i�9�i�T�Mh�Mh�i�� �#�I�N�N�$4�5��r&c��|jS�N)r )r#s r$�__str__zRepoCard.__str__ss ���|�|�r&�filepathc���t|�}|jjdd��t|ddd��5}|j t |��ddd�y#1swYyxYw)a{Save a RepoCard to a file. Args: filepath (`Union[Path, str]`): Filepath to the markdown file to save. Example: ```python >>> from huggingface_hub.repocard import RepoCard >>> card = RepoCard("---\nlanguage: en\n---\n# This is a test repo card") >>> card.save("/tmp/test.md") ``` T)�parents�exist_ok�w��utf-8��mode�newline�encodingN)r�parent�mkdir�open�write�str)r#rJ�fs r$�savez RepoCard.savevsQ����>�������d�T��:� �(��b�7� C�q� �G�G�C��I� �D� C� C�s �A�A%N�repo_id_or_path� repo_type�tokenc�x�t|�j�r t|�}nTt|t�r5tt |t j |xs |j|���}ntd|�d���|jddd��5}||j�|��cd d d �S#1swYy xYw) a�Initialize a RepoCard from a Hugging Face Hub repo's README.md or a local filepath. Args: repo_id_or_path (`Union[str, Path]`): The repo ID associated with a Hugging Face Hub repo or a local filepath. repo_type (`str`, *optional*): The type of Hugging Face repo to push to. Defaults to None, which will use use "model". Other options are "dataset" and "space". Not used when loading from a local filepath. If this is called from a child class, the default value will be the child class's `repo_type`. token (`str`, *optional*): Authentication token, obtained with `huggingface_hub.HfApi.login` method. Will default to the stored token. ignore_metadata_errors (`str`): If True, errors while parsing the metadata section will be ignored. Some information might be lost during the process. Use it at your own risk. Returns: [`huggingface_hub.repocard.RepoCard`]: The RepoCard (or subclass) initialized from the repo's README.md file or filepath. Example: ```python >>> from huggingface_hub.repocard import RepoCard >>> card = RepoCard.load("nateraw/food") >>> assert card.data.tags == ["generated_from_trainer", "image-classification", "pytorch"] ``` )r]r^z.Cannot load RepoCard: path not found on disk (z).�rrOrPrQ)r!N) r�existsr<rYr r� REPOCARD_NAMEr]r>rW�read)�clsr\r]r^r!� card_pathrZs r$�loadz RepoCard.load�s���H �� � '� '� )��_�-�I� ��� -���#��+�+�'�8�3�=�=�� ��I��M�o�M^�^`�a�b� b��^�^��b�7�^� C�q��q�v�v�x�8N�O� P� P� C� C�s �B0�0B9c�8�|xs |j}|t|�d�}ddi} t�jd||��}|j �y#t j j$r+}jdk(rt|j��|�d}~wwxYw)a�Validates card against Hugging Face Hub's card validation logic. Using this function requires access to the internet, so it is only called internally by [`huggingface_hub.repocard.RepoCard.push_to_hub`]. Args: repo_type (`str`, *optional*, defaults to "model"): The type of Hugging Face repo to push to. Options are "model", "dataset", and "space". If this function is called from a child class, the default will be the child class's `repo_type`. <Tip> Raises the following errors: - [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) if the card fails validation checks. - [`HTTPError`](https://requests.readthedocs.io/en/latest/api/#requests.HTTPError) if the request to the Hub API fails for any other reason. </Tip> )�repoTyper �Acceptz text/plainz(https://huggingface.co/api/validate-yaml)�headersi�N) r]rYr�post�raise_for_status�requests� exceptions� HTTPError� status_coder>r1)r#r]�bodyrjr`�excs r$�validatezRepoCard.validate�s���,�/���� �"��4�y� ���\�*�� �� �"�"�#M�t�]d�"�e�A� � � � ���"�"�,�,� ��}�}��#� ����(�(�� ��  �s�,A�B�.&B�B�repo_id�commit_message�commit_description�revision� create_pr� parent_commitc �N�|xs |j}|j|��t�5} t| �tj z } | j t|��tt| �tj ||||||||�� } ddd�| S#1swY SxYw)aAPush a RepoCard to a Hugging Face Hub repo. Args: repo_id (`str`): The repo ID of the Hugging Face Hub repo to push to. Example: "nateraw/food". token (`str`, *optional*): Authentication token, obtained with `huggingface_hub.HfApi.login` method. Will default to the stored token. repo_type (`str`, *optional*, defaults to "model"): The type of Hugging Face repo to push to. Options are "model", "dataset", and "space". If this function is called by a child class, it will default to the child class's `repo_type`. commit_message (`str`, *optional*): The summary / title / first line of the generated commit. commit_description (`str`, *optional*) The description of the generated commit. revision (`str`, *optional*): The git revision to commit from. Defaults to the head of the `"main"` branch. create_pr (`bool`, *optional*): Whether or not to create a Pull Request with this commit. Defaults to `False`. parent_commit (`str`, *optional*): The OID / SHA of the parent commit, as a hexadecimal string. Shorthands (7 first characters) are also supported. If specified and `create_pr` is `False`, the commit will fail if `revision` does not point to `parent_commit`. If specified and `create_pr` is `True`, the pull request will be created from `parent_commit`. Specifying `parent_commit` ensures the repo has not changed before committing the changes, and can be especially useful if the repo is updated / committed to concurrently. Returns: `str`: URL of the commit which updated the card metadata. )r]) �path_or_fileobj� path_in_reportr^r]rurvrxrwryN) r]rsrrrrb� write_textrYr ) r#rtr^r]rurvrwrxry�tmpdir�tmp_path�urls r$� push_to_hubzRepoCard.push_to_hub�s���R�/���� � � � � � �*� #� %���F�|�i�&=�&=�=�H� � � ��D� � *�� #�H� �&�4�4���#�-�#5�#�!�+� �C�&�� �&�� �s �A#B�B$� card_data� template_path� template_strc ��t�rddl}n td��|j�j �}|j |�|�t |�j�}|�#t |j�j�}|j|�}|jdd|j�i|��}||�S)a'Initialize a RepoCard from a template. By default, it uses the default template. Templates are Jinja2 templates that can be customized by passing keyword arguments. Args: card_data (`huggingface_hub.CardData`): A huggingface_hub.CardData instance containing the metadata you want to include in the YAML header of the repo card on the Hugging Face Hub. template_path (`str`, *optional*): A path to a markdown file with optional Jinja template variables that can be filled in with `template_kwargs`. Defaults to the default template. Returns: [`huggingface_hub.repocard.RepoCard`]: A RepoCard instance with the specified card data and content from the template. rNzjUsing RepoCard.from_template requires Jinja2 to be installed. Please install it with `pip install Jinja2`.r�r5) r�jinja2� ImportError�to_dict�copy�updater� read_text�default_template_path�Template�renderr/) rdr�r�r��template_kwargsr��kwargs�templater s r$� from_templatezRepoCard.from_template&s���0 � � ��9�� � �"�"�$�)�)�+��� � �o�&� � $�� �.�8�8�:�L� � ��� 9� 9�:�D�D�F�L��?�?�<�0��!�(�/�/�J�I�,=�,=�,?�J�6�J���7�|�r&)F)NNFrH)NNNNNNN�NN)�__name__� __module__� __qualname__r rA�TEMPLATE_MODELCARD_PATHr�r]rY�boolr%�propertyr �setterrIr rr[� classmethodrrfrsr�r�r5r&r$rr&s����O�3���I�%��%�T�%�N�W��W�  �^�^�6�s�6��6�4��U�4��9�-��(�$(�#�',� 3P��s�D�y�)�3P��C�=�3P���}� 3P� !%� 3P��3P�j%�(�3�-�%�T $�#'�(,�,0�"&�$(�'+�=��=���}�=��C�=� =� !�� � =� %�S�M� =��3�-�=��D�>�=� ��}�=�~�(,�&*� (��(� ��}�(��s�m� (��(r&rc �T��eZdZeZeZdZe ddede e de e f�fd� �Z �xZ S)� ModelCardrr�r�r�c �(��t�|�|||fi|��S)a� Initialize a ModelCard from a template. By default, it uses the default template, which can be found here: https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md Templates are Jinja2 templates that can be customized by passing keyword arguments. Args: card_data (`huggingface_hub.ModelCardData`): A huggingface_hub.ModelCardData instance containing the metadata you want to include in the YAML header of the model card on the Hugging Face Hub. template_path (`str`, *optional*): A path to a markdown file with optional Jinja template variables that can be filled in with `template_kwargs`. Defaults to the default template. Returns: [`huggingface_hub.ModelCard`]: A ModelCard instance with the specified card data and content from the template. Example: ```python >>> from huggingface_hub import ModelCard, ModelCardData, EvalResult >>> # Using the Default Template >>> card_data = ModelCardData( ... language='en', ... license='mit', ... library_name='timm', ... tags=['image-classification', 'resnet'], ... datasets=['beans'], ... metrics=['accuracy'], ... ) >>> card = ModelCard.from_template( ... card_data, ... model_description='This model does x + y...' ... ) >>> # Including Evaluation Results >>> card_data = ModelCardData( ... language='en', ... tags=['image-classification', 'resnet'], ... eval_results=[ ... EvalResult( ... task_type='image-classification', ... dataset_type='beans', ... dataset_name='Beans', ... metric_type='accuracy', ... metric_value=0.9, ... ), ... ], ... model_name='my-cool-model', ... ) >>> card = ModelCard.from_template(card_data) >>> # Using a Custom Template >>> card_data = ModelCardData( ... language='en', ... tags=['image-classification', 'resnet'] ... ) >>> card = ModelCard.from_template( ... card_data=card_data, ... template_path='./src/huggingface_hub/templates/modelcard_template.md', ... custom_template_var='custom value', # will be replaced in template if it exists ... ) ``` ��superr��rdr�r�r�r�� __class__s �r$r�zModelCard.from_templateWs���R�w�$�Y� �|�_��_�_r&r�) r�r�r�rrAr�r�r]r�rrYr�� __classcell__�r�s@r$r�r�Rs[���#�O�3���I��(,�&*� H`� �H`� ��}�H`��s�m� H`��H`r&r�c �T��eZdZeZeZdZe ddede e de e f�fd� �Z �xZ S)� DatasetCard�datasetr�r�r�c �(��t�|�|||fi|��S)a�Initialize a DatasetCard from a template. By default, it uses the default template, which can be found here: https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/datasetcard_template.md Templates are Jinja2 templates that can be customized by passing keyword arguments. Args: card_data (`huggingface_hub.DatasetCardData`): A huggingface_hub.DatasetCardData instance containing the metadata you want to include in the YAML header of the dataset card on the Hugging Face Hub. template_path (`str`, *optional*): A path to a markdown file with optional Jinja template variables that can be filled in with `template_kwargs`. Defaults to the default template. Returns: [`huggingface_hub.DatasetCard`]: A DatasetCard instance with the specified card data and content from the template. Example: ```python >>> from huggingface_hub import DatasetCard, DatasetCardData >>> # Using the Default Template >>> card_data = DatasetCardData( ... language='en', ... license='mit', ... annotations_creators='crowdsourced', ... task_categories=['text-classification'], ... task_ids=['sentiment-classification', 'text-scoring'], ... multilinguality='monolingual', ... pretty_name='My Text Classification Dataset', ... ) >>> card = DatasetCard.from_template( ... card_data, ... pretty_name=card_data.pretty_name, ... ) >>> # Using a Custom Template >>> card_data = DatasetCardData( ... language='en', ... license='mit', ... ) >>> card = DatasetCard.from_template( ... card_data=card_data, ... template_path='./src/huggingface_hub/templates/datasetcard_template.md', ... custom_template_var='custom value', # will be replaced in template if it exists ... ) ``` r�r�s �r$r�zDatasetCard.from_template�s���r�w�$�Y� �|�_��_�_r&r�) r�r�r�r rA�TEMPLATE_DATASETCARD_PATHr�r]r�rrYr�r�r�s@r$r�r��sV���%�O�5���I��(,�&*� 8`�"�8`� ��}�8`��s�m� 8`��8`r&r�c��eZdZeZeZdZy)� SpaceCard�spaceN)r�r�r�rrAr�r�r]r5r&r$r�r��s��#�O�3���Ir&r�r �return)� r(� Nc��|jd�}|jd�}|jd�}||zdk(ry||k(r||k(ry||kDryy)z�Detect the line ending of a string. Used by RepoCard to avoid making huge diff on newlines. Uses same implementation as in Hub server, keep it in sync. Returns: str: The detected line ending of the string. r�r(r�rN)�count)r �cr�lf�crlfs r$r,r,�sY�� ���t� �B� ���t� �B� �=�=�� �D� �B�w�!�|�� �r�z�d�b�j�� �B�w��r&� local_pathc���t|�j�}tj|�}|rE|j d�}t j |�}|�t|t�r|Std��y)Nr3r4) rr�r6r7r8r:r;r<r=r>)r�r rDrEr.s r$� metadata_loadr��se���:��(�(�*�G� � #� #�G� ,�E� ��[�[��^� ��~�~�j�)�� �<�:�d�D�1��K��D�E�E�r&r.c��d}d}tjj|�rxt|ddd��5}|j �}t |j t�r|j d}n&t |j t�r |j }ddd�t|ddd��5}t|d |� �}tj|�}|r3|d|j�d |�|�d |��z||j�dz}n d |�|�d |�|��}|j|�|j�ddd�y#1swY��xYw#1swYyxYw) a& Save the metadata dict in the upper YAML part Trying to preserve newlines as in the existing file. Docs about open() with newline="" parameter: https://docs.python.org/3/library/functions.html?highlight=open#open Does not work with "^M" linebreaks, which are replaced by r(rOr`�utf8)rSrTrNrNF)� sort_keysr*r))�os�pathrarWrcr<�newlines�tuplerYrr6r7�startr9rX�close)r�r.r*r �readme� data_yamlrD�outputs r$� metadata_saver� s0���J��G� �w�w�~�~�j�!� �*�c�2�� ?�6��k�k�m�G��&�/�/�5�1�#�_�_�Q�/� ��F�O�O�S�1�#�_�_� � @� �j�#�r�F� ;�v��d�e� �K� � �'�'��0�� ��_�u�{�{�}�-�#�j�\�)��C�PZ�|�0\�\�_f�gl�gp�gp�gr�gt�_u�u�F��:�,�y�k��Z�L�� �J�F�� � �V��� � �� <� ;�@� ?�� <� ;�s�A!D:�+BE�:E�EF)�metrics_config�metrics_verified�dataset_config� dataset_split�dataset_revision�metrics_verification_token�model_pretty_name�task_pretty_name�task_id�metrics_pretty_name� metrics_id� metrics_value�dataset_pretty_name� dataset_idr�r�r�r�r�r�c�N�dt|t||||||||| | | | | �� g��iS)u Creates a metadata dict with the result from a model evaluated on a dataset. Args: model_pretty_name (`str`): The name of the model in natural language. task_pretty_name (`str`): The name of a task in natural language. task_id (`str`): Example: automatic-speech-recognition. A task id. metrics_pretty_name (`str`): A name for the metric in natural language. Example: Test WER. metrics_id (`str`): Example: wer. A metric id from https://hf.co/metrics. metrics_value (`Any`): The value from the metric. Example: 20.0 or "20.0 ± 1.2". dataset_pretty_name (`str`): The name of the dataset in natural language. dataset_id (`str`): Example: common_voice. A dataset id from https://hf.co/datasets. metrics_config (`str`, *optional*): The name of the metric configuration used in `load_metric()`. Example: bleurt-large-512 in `load_metric("bleurt", "bleurt-large-512")`. metrics_verified (`bool`, *optional*, defaults to `False`): Indicates whether the metrics originate from Hugging Face's [evaluation service](https://huggingface.co/spaces/autoevaluate/model-evaluator) or not. Automatically computed by Hugging Face, do not set. dataset_config (`str`, *optional*): Example: fr. The name of the dataset configuration used in `load_dataset()`. dataset_split (`str`, *optional*): Example: test. The name of the dataset split used in `load_dataset()`. dataset_revision (`str`, *optional*): Example: 5503434ddd753f426f4b38109466949a1217c2bb. The name of the dataset dataset revision used in `load_dataset()`. metrics_verification_token (`bool`, *optional*): A JSON Web Token that is used to verify whether the metrics originate from Hugging Face's [evaluation service](https://huggingface.co/spaces/autoevaluate/model-evaluator) or not. Returns: `dict`: a metadata dict with the result from a model evaluated on a dataset. Example: ```python >>> from huggingface_hub import metadata_eval_result >>> results = metadata_eval_result( ... model_pretty_name="RoBERTa fine-tuned on ReactionGIF", ... task_pretty_name="Text Classification", ... task_id="text-classification", ... metrics_pretty_name="Accuracy", ... metrics_id="accuracy", ... metrics_value=0.2662102282047272, ... dataset_pretty_name="ReactionJPEG", ... dataset_id="julien-c/reactionjpeg", ... dataset_config="default", ... dataset_split="test", ... ) >>> results == { ... 'model-index': [ ... { ... 'name': 'RoBERTa fine-tuned on ReactionGIF', ... 'results': [ ... { ... 'task': { ... 'type': 'text-classification', ... 'name': 'Text Classification' ... }, ... 'dataset': { ... 'name': 'ReactionJPEG', ... 'type': 'julien-c/reactionjpeg', ... 'config': 'default', ... 'split': 'test' ... }, ... 'metrics': [ ... { ... 'type': 'accuracy', ... 'value': 0.2662102282047272, ... 'name': 'Accuracy', ... 'verified': False ... } ... ] ... } ... ] ... } ... ] ... } True ``` � model-index) � task_name� task_type� metric_name� metric_type� metric_value� dataset_name� dataset_type� metric_config�verified� verify_tokenr�r�r�)� model_name� eval_results)rr)r�r�r�r�r�r�r�r�r�r�r�r�r�r�s r$�metadata_eval_resultr�,sQ��R �2�(��.�%� 3� *�!.�!4�!+�"0�-�!;�#1�"/�%5��� � �r&)r]� overwriter^rurvrwrxryrt�metadatar]r�r^rurvrwrxryc �|�|�|nd}|�|dk(rt} n&|dk(rt} n|dk(rt} ntd|���� | j |||��} |j�D�]�\} } | dk(�r#d | d vrt| d |�| d d <t| �\}}| jj�#|| j_ || j_ �n| jj}|D]�}d }|D]t}|j|�s�||k7r(|s&td |j�d|j �d���d}|j"|_|j$dus�d|j&|_�v|r��| jjj)|�����0| jj+| ��/|s-| jj+| �| k7rtd| �d���| | j| <���| j-|||||||| ��S#t $r-|dk(r td��| j t��} Y���wxYw)a� Updates the metadata in the README.md of a repository on the Hugging Face Hub. If the README.md file doesn't exist yet, a new one is created with metadata and an the default ModelCard or DatasetCard template. For `space` repo, an error is thrown as a Space cannot exist without a `README.md` file. Args: repo_id (`str`): The name of the repository. metadata (`dict`): A dictionary containing the metadata to be updated. repo_type (`str`, *optional*): Set to `"dataset"` or `"space"` if updating to a dataset or space, `None` or `"model"` if updating to a model. Default is `None`. overwrite (`bool`, *optional*, defaults to `False`): If set to `True` an existing field can be overwritten, otherwise attempting to overwrite an existing field will cause an error. token (`str`, *optional*): The Hugging Face authentication token. commit_message (`str`, *optional*): The summary / title / first line of the generated commit. Defaults to `f"Update metadata with huggingface_hub"` commit_description (`str` *optional*) The description of the generated commit revision (`str`, *optional*): The git revision to commit from. Defaults to the head of the `"main"` branch. create_pr (`boolean`, *optional*): Whether or not to create a Pull Request from `revision` with that commit. Defaults to `False`. parent_commit (`str`, *optional*): The OID / SHA of the parent commit, as a hexadecimal string. Shorthands (7 first characters) are also supported. If specified and `create_pr` is `False`, the commit will fail if `revision` does not point to `parent_commit`. If specified and `create_pr` is `True`, the pull request will be created from `parent_commit`. Specifying `parent_commit` ensures the repo has not changed before committing the changes, and can be especially useful if the repo is updated / committed to concurrently. Returns: `str`: URL of the commit which updated the card metadata. Example: ```python >>> from huggingface_hub import metadata_update >>> metadata = {'model-index': [{'name': 'RoBERTa fine-tuned on ReactionGIF', ... 'results': [{'dataset': {'name': 'ReactionGIF', ... 'type': 'julien-c/reactiongif'}, ... 'metrics': [{'name': 'Recall', ... 'type': 'recall', ... 'value': 0.7762102282047272}], ... 'task': {'name': 'Text Classification', ... 'type': 'text-classification'}}]}]} >>> url = metadata_update("hf-internal-testing/reactiongif-roberta-card", metadata) ``` z$Update metadata with huggingface_hubrr�r�zUnknown repo_type: )r^r]zJCannot update metadata on a Space that doesn't contain a `README.md` file.r��namerr�Fz6You passed a new value for the existing metric 'name: z, type: z6'. Set `overwrite=True` to overwrite existing metrics.Tz9You passed a new value for the existing meta data field 'z7'. Set `overwrite=True` to overwrite existing metadata.)r^r]rurvrxrwry)r�r�rr>rfrr�r �items�getattrrr.r�r��is_equal_except_valuer�r�r�r�r��append�getr�)rtr�r]r�r^rurvrwrxry� card_class�card�key�valuer�� new_results�existing_results� new_result� result_found�existing_results r$�metadata_updater��sz��H(6�'A�^�Gm�N���I��0�� � �i� � � � �g� �� ��.�y�k�:�;�;�4����w�e�y��I���n�n�&� ��U� �-� ��U�1�X�%�#*�4��w�#G��a��� �&A�%�&H� #�J� ��y�y�%�%�-�)4�� � �&�'1�� � �$�#'�9�9�#9�#9� �#.�J�#(�L�+;��%�;�;�O�L�)�_�<�Y�&0�%/�/9�/E�/E�.F�h�'1�'=�'=�&>�?F�%F�'"�!"� ,0�L�;E�;R�;R�O�8�.�7�7�4�?�?I�?V�?V�� <�,<�(�� � �.�.�5�5�j�A�!#.�&�y�y�}�}�S�!�-�i�D�I�I�M�M�RU�DV�Z_�D_� �O�PS�u�UL�L��� "'�� � �#��W'�Z � � ����%�-���#� � � ��i �4� �� ��i�j� j��'�'�� �3�� 4�s�H�2H;�:H;)9r��re�pathlibr�typingrrrrrr rmr:�huggingface_hub.file_downloadr �huggingface_hub.hf_apir �huggingface_hub.repocard_datar r rrrrr�huggingface_hub.utilsrrrrOr�errorsr�utilsrrr� get_loggerr�r?�__file__rUr�r��compiler6rr�r�r�rYr,r�r�r�r�r�r5r&r$�<module>rs��� � ��<�<�� �9�.����M�L��&�H�H� �� � �H� %���x�.�/�/�+�=�@W�W�� ��N�1�1�K�?�B[�[���2�:�:�R�S��i�i�X N`��N`�b>`�(�>`�B��� ����1I�)J��* �e�C��I�.� �8�D�>� ��e�C��I�.��d��t��T%)�"�$(�#'�&*�04�}��}��}�� }� � }� � }��}��}��}��S�M�}��}��S�M�}��C�=�}��s�m�}�!)�� �}�  �!}�@� $���$(�(,�"��#'�Q� �Q��Q���}� Q� � Q� �C�=� Q��S�M�Q�!�� �Q��s�m�Q��Q��C�=�Q� �Q��Qr&