Ë
    -Œ:jE1  ã                   ó@  — d Z ddlZddlZddlmZ ddlmZ ddlZddlm	Z	 ddl
mZmZmZmZmZmZmZmZ ddlmZmZ  G d	„ d
eej.                  «      Z G d„ deej.                  «      ZddhZee ej8                  dd¬«      f   Zdedz  dedz  dedz  fd„Z ed¬«      ZejA                  dg d¢¬«      ejB                  ejD                  ddejF                  dfdedee ejH                  ddd¬«      f   d ee ejH                  d!d"d#¬«      f   d$ed%ed&ed'eddfd(„«       Z%ejA                  d)d*d+g¬«      ejF                  dfded,ed&ed'eddf
d-„«       Z&ejA                  d.g d/¢¬«      ddd0ejF                  dfded1ee ejH                  d2d3¬«      f   deedz   ejH                  d4d5¬«      f   deedz   ejH                  d6d7¬«      f   d8ee' ejH                  d9d:d;¬«      f   d&ed'eddfd<„«       Z(ejA                  d=d>d?g¬«      ddejF                  dfded,edeedz   ejH                  d4d@¬«      f   deedz   ejH                  d6dA¬«      f   d&ed'eddfdB„«       Z)ejA                  dCdDdEg¬«      dd0ejF                  dfded,ed=eedz   ejH                  dFdG¬«      f   dHee' ejH                  dIdJdK¬«      f   d&ed'eddfdL„«       Z*ejA                  dMdNdOg¬«      dd0ejF                  dfded,ed=eedz   ejH                  dFdP¬«      f   dHee' ejH                  dIdJdK¬«      f   d&ed'eddfdQ„«       Z+ejA                  dRdSg¬«      ejF                  dfded,edTee ej8                  dU¬«      f   d&ed'eddfdV„«       Z,ejA                  dWdXdYg¬«      dd0ejF                  dfded,ed=eedz   ejH                  dFdZ¬«      f   dHee' ejH                  dIdJdK¬«      f   d&ed'eddfd[„«       Z-ejA                  d\d]g¬«      ejF                  dfded,ed&ed'eddf
d^„«       Z.y)_zYContains commands to interact with discussions and pull requests on the Hugging Face Hub.é    N)ÚPath)Ú	Annotated)Ú	constantsé   )Ú	AuthorOptÚLimitOptÚ	RepoIdArgÚRepoTypeÚRepoTypeOptÚTokenOptÚ
get_hf_apiÚtyper_factory)Ú_dataclass_to_dictÚoutc                   ó    — e Zd ZdZdZdZdZdZy)ÚDiscussionStatusÚopenÚclosedÚmergedÚdraftÚallN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   © ó    úa/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/huggingface_hub/cli/discussions.pyr   r   &   s   „ Ø€DØ€FØ€FØ€EØ
�Cr   r   c                   ó   — e Zd ZdZdZdZy)ÚDiscussionKindr   Ú
discussionÚpull_requestN)r   r   r   r   r    r!   r   r   r   r   r   .   s   „ Ø
€CØ€JØ!�Lr   r   r   r   z&The discussion or pull request number.)ÚhelpÚminÚbodyÚ	body_fileÚreturnc                 ó¸   — | �|�t        j                  d«      ‚|�>t        |«      dk(  rt        j                  j                  «       S |j                  d¬«      S | S )zFResolve body text from --body or --body-file (supports '-' for stdin).z'Cannot use both --body and --body-file.ú-zutf-8)Úencoding)ÚtyperÚBadParameterÚstrÚsysÚstdinÚreadÚ	read_text)r$   r%   s     r   Ú
_read_bodyr1   D   s[   € àÐ˜IÐ1Ü× Ñ Ð!JÓKÐKØÐÜˆy‹>˜SÒ Ü—9‘9—>‘>Ó#Ð#Ø×"Ñ"¨GÐ"Ó4Ð4Ø€Kr   z0Manage discussions and pull requests on the Hub.)r"   z	list | ls)z%hf discussions list username/my-modelzIhf discussions list username/my-model --kind pull_request --status mergedzFhf discussions list username/my-dataset --type dataset --status closedzBhf discussions list username/my-model --author alice --format json)Úexamplesé   Úrepo_idÚstatusz-sz--statusz4Filter by status (open, closed, merged, draft, all).Úkindz-kz--kindz/Filter by kind (discussion, pull_request, all).ÚauthorÚlimitÚ	repo_typeÚtokenc                 ó  — t        |¬«      }|t        j                  k(  rd}n|t        j                  k(  rd}nd}|t        j
                  k(  rd}	n|j                  }	g }
|j                  | ||	||j                  ¬«      D ]O  }|j                  t        v r|j                  |j                  k7  rŒ/|
j                  |«       t        |
«      |k\  sŒO n |
D �cg c]  }t        |«      ‘Œ }}t        j                  |g d¢d¬«       yc c}w )	z-List discussions and pull requests on a repo.©r:   r   r   N)r4   r7   Údiscussion_typeÚdiscussion_statusr9   )ÚnumÚtitleÚis_pull_requestr5   r7   Ú
created_atr?   )ÚheadersÚid_key)r   r   r   r   r   r   ÚvalueÚget_repo_discussionsÚ_CLIENT_SIDE_STATUSESr5   ÚappendÚlenr   r   Útable)r4   r5   r6   r7   r8   r9   r:   ÚapiÚ
api_statusÚapi_discussion_typeÚdiscussionsÚdÚitemss                r   Údiscussion_listrQ   R   s	  € ôB ˜5Ô
!€Cð Ô!×&Ñ&Ò&Ø‰
Ø	Ô#×*Ñ*Ò	*Ø‰
àˆ
ð Œ~×!Ñ!Ò!Ø"Ñà"Ÿj™jÐà€KØ×%Ñ%ØØØ+Ø$Ø—/‘/ð &ó ò ˆð �<‰<Ô0Ñ0°Q·X±XÀÇÁÒ5MØØ×Ñ˜1ÔÜˆ{Ó˜uÓ$Ùðð -8Ö8 qÔ Õ"Ð8€EÐ8Ü‡I�IØÚUØöùò 9s   ÃDÚinfoz'hf discussions info username/my-model 5z5hf discussions info username/my-model 5 --format jsonr?   c                 ó‚   — t        |¬«      }|j                  | ||j                  ¬«      }t        j                  |«       y)z,Get info about a discussion or pull request.r<   ©r4   Údiscussion_numr9   N)r   Úget_discussion_detailsrE   r   Údict©r4   r?   r9   r:   rK   Údetailss         r   Údiscussion_inforZ   ™   s>   € ô ˜5Ô
!€CØ×(Ñ(ØØØ—/‘/ð )ó €Gô
 ‡H�HˆWÕr   Úcreate)z<hf discussions create username/my-model --title "Bug report"zWhf discussions create username/my-model --title "Feature request" --body "Please add X"zIhf discussions create username/my-model --title "Fix typo" --pull-requestzUhf discussions create username/my-dataset --type dataset --title "Data quality issue"Fr@   z--titlez,The title of the discussion or pull request.z--bodyz$The description (supports Markdown).z--body-filez4Read the description from a file. Use '-' for stdin.r!   z--pull-requestz--prz.Create a pull request instead of a discussion.c                 ó&  — t        ||«      }t        |¬«      }|j                  | |||j                  |¬«      }	|rdnd}
|rd|	j                  › �nd}t        j                  d|
› d|	j                  › d	| › �|	j                  |	j                  |¬
«       y)z2Create a new discussion or pull request on a repo.r<   )r4   r@   Údescriptionr9   r!   zpull requestr    zrefs/pr/NzCreated z #z on )r?   ÚurlÚref)r1   r   Úcreate_discussionrE   r?   r   Úresultr^   )r4   r@   r$   r%   r!   r9   r:   r]   rK   r    r6   r_   s               r   Údiscussion_createrb   °   s™   € ôX ˜T 9Ó-€KÜ
˜5Ô
!€CØ×&Ñ&ØØØØ—/‘/Ø!ð 'ó €Jñ *‰>¨|€DÙ)5ˆH�Z—^‘^Ð$Ñ
%¸4€CÜ‡J�J�˜$˜˜r *§.¡.Ð!1°°g°YÐ?ÀZÇ^Á^ÐYc×YgÑYgÐmpÖqr   ÚcommentzIhf discussions comment username/my-model 5 --body "Thanks for reporting!"z9hf discussions comment username/my-model 5 --body "LGTM!"z%The comment text (supports Markdown).z0Read the comment from a file. Use '-' for stdin.c                 óÜ   — t        ||«      }|€t        j                  d«      ‚t        |¬«      }|j	                  | |||j
                  ¬«       t        j                  d|› d| › �|| ¬«       y)z(Comment on a discussion or pull request.Nz)Either --body or --body-file is required.r<   ©r4   rU   rc   r9   zCommented on #ú in ©r?   Úrepo)r1   r*   r+   r   Úcomment_discussionrE   r   ra   )r4   r?   r$   r%   r9   r:   rc   rK   s           r   Údiscussion_commentrj   ê   ss   € ô8 ˜˜yÓ)€GØ€Ü× Ñ Ð!LÓMÐMÜ
˜5Ô
!€CØ×ÑØØØØ—/‘/ð	 ô ô ‡J�J� ˜u D¨¨	Ð2¸À'ÖJr   Úclosez(hf discussions close username/my-model 5zIhf discussions close username/my-model 5 --comment "Closing as resolved."z	--commentz)An optional comment to post when closing.Úyesz--yesz-yzSkip confirmation prompt.c                 óÔ   — t        j                  d|› d| › d�|¬«       t        |¬«      }|j                  | |d||j                  ¬«       t        j
                  d|› d	| › �|| ¬
«       y)z#Close a discussion or pull request.zClose #ú on 'ú'?©rl   r<   r   ©r4   rU   Ú
new_statusrc   r9   zClosed #rf   rg   N©r   Úconfirmr   Úchange_discussion_statusrE   ra   ©r4   r?   rc   rl   r9   r:   rK   s          r   Údiscussion_closerw     sp   € ô: ‡K�K�'˜#˜˜e G 9¨BÐ/°SÕ9Ü
˜5Ô
!€CØ× Ñ ØØØØØ—/‘/ð !ô ô ‡J�J�˜#˜˜d 7 )Ð,°#¸GÖDr   Úreopenz)hf discussions reopen username/my-model 5zZhf discussions reopen username/my-model 5 --comment "Reopening for further investigation."z+An optional comment to post when reopening.c                 óÔ   — t        j                  d|› d| › d�|¬«       t        |¬«      }|j                  | |d||j                  ¬«       t        j
                  d|› d	| › �|| ¬
«       y)z+Reopen a closed discussion or pull request.zReopen #rn   ro   rp   r<   r   rq   z
Reopened #rf   rg   Nrs   rv   s          r   Údiscussion_reopenrz   <  sp   € ô: ‡K�K�(˜3˜%˜u W I¨RÐ0°cÕ:Ü
˜5Ô
!€CØ× Ñ ØØØØØ—/‘/ð !ô ô ‡J�J�˜C˜5  W IÐ.°C¸gÖFr   Úrenamez9hf discussions rename username/my-model 5 "Updated title"Ú	new_titlezThe new title.c                 ó˜   — t        |¬«      }|j                  | |||j                  ¬«       t        j                  d|› d| › �|| |¬«       y)z$Rename a discussion or pull request.r<   )r4   rU   r|   r9   z	Renamed #rf   )r?   rh   r@   N)r   Úrename_discussionrE   r   ra   )r4   r?   r|   r9   r:   rK   s         r   Údiscussion_renamer   e  sR   € ô& ˜5Ô
!€CØ×ÑØØØØ—/‘/ð	 ô ô ‡J�J�˜3˜%˜t G 9Ð-°3¸WÈIÖVr   Úmergez(hf discussions merge username/my-model 5zEhf discussions merge username/my-model 5 --comment "Merging, thanks!"z)An optional comment to post when merging.c                 óÒ   — t        j                  d|› d| › d�|¬«       t        |¬«      }|j                  | |||j                  ¬«       t        j
                  d|› d| › �|| ¬	«       y
)zMerge a pull request.zMerge #rn   ro   rp   r<   re   zMerged #rf   rg   N)r   rt   r   Úmerge_pull_requestrE   ra   rv   s          r   Údiscussion_mergerƒ   ‚  sm   € ô: ‡K�K�'˜#˜˜e G 9¨BÐ/°SÕ9Ü
˜5Ô
!€CØ×ÑØØØØ—/‘/ð	 ô ô ‡J�J�˜#˜˜d 7 )Ð,°#¸GÖDr   Údiffz'hf discussions diff username/my-model 5c                 óÚ   — t        |¬«      }|j                  | ||j                  ¬«      }|j                  r t	        j
                  |j                  «       yt	        j
                  d«       y)z Show the diff of a pull request.r<   rT   zNo diff available.N)r   rV   rE   r„   r   ÚtextrX   s         r   Údiscussion_diffr‡   ª  sV   € ô ˜5Ô
!€CØ×(Ñ(ØØØ—/‘/ð )ó €Gð
 ‡|‚|Ü�‰�—‘Õä�‰Ð%Õ&r   )/Ú__doc__Úenumr-   Úpathlibr   Útypingr   r*   Úhuggingface_hubr   Ú
_cli_utilsr   r   r	   r
   r   r   r   r   Ú_outputr   r   r,   ÚEnumr   r   rG   ÚintÚArgumentÚDiscussionNumArgr1   Údiscussions_cliÚcommandr   r   ÚmodelÚOptionrQ   rZ   Úboolrb   rj   rw   rz   r   rƒ   r‡   r   r   r   ú<module>r˜      s°  ðñ `ã Û 
Ý Ý ã å %÷	÷ 	ó 	÷ -ô�s˜DŸI™Iô ô"�S˜$Ÿ)™)ô "ð " 7Ð+Ð ð ØØ€E‡N�NØ5ØôðñÐ ð�S˜4‘Zð ¨D°4©Kð ¸CÀ$¹Jó ñ  Ð%WÔX€ð ×ÑØòð ó ð$ 	×Ñð 	×ÑØØØ%Ÿ^™^Øñ+;Øð;àØØˆ�‰ØØØGô	
ð	ñð;ð ØØˆ�‰ØØØBô	
ð	ñð;ð$ ð%;ð& ð';ð( ð);ð* ð+;ð, 
ò-;óð;ð| ×ÑØ
à1Ø?ðð ó ð &Ÿ^™^Øñ	Øðà	ðð ðð ð	ð
 
òóðð  ×ÑØòð ó ð0 	ð 	ð 	Ø%Ÿ^™^ØñA.rØð.ràØØˆ�‰ØØ?ô	
ð	ñð.rð Øˆd‰
Øˆ�‰ØØ7ô	
ð	ñð.rð  Øˆt‰Øˆ�‰ØØGô	
ð	ñð!.rð. ØØˆ�‰ØØØAô	
ð	ñð/.rð> ð?.rð@ ðA.rðB 
òC.róð.rðb ×ÑØàSØCðð ó ð  	ð 	Ø%Ÿ^™^Øñ%KØðKà	ðKð Øˆd‰
Øˆ�‰ØØ8ô	
ð	ñðKð Øˆt‰Øˆ�‰ØØCô	
ð	ñðKð" ð#Kð$ ð%Kð& 
ò'KóðKðD ×ÑØà2ØSðð ó ð  	ð 	Ø%Ÿ^™^Øñ'EØðEà	ðEð Øˆd‰
Øˆ�‰ØØ<ô	
ð	ñðEð 
ØØˆ�‰ØØØ,ô	
ð	ñ
ðEð$ ð%Eð& ð'Eð( 
ò)EóðEðD ×ÑØà3Ødðð ó ð  	ð 	Ø%Ÿ^™^Øñ'GØðGà	ðGð Øˆd‰
Øˆ�‰ØØ>ô	
ð	ñðGð 
ØØˆ�‰ØØØ,ô	
ð	ñ
ðGð$ ð%Gð& ð'Gð( 
ò)GóðGðD ×ÑØàCðð ó ð &Ÿ^™^ØñWØðWà	ðWð ØØˆ�‰Ø!ô	
ð	ñðWð ðWð ðWð 
òWóðWð. ×ÑØà2ØOðð ó ð  	ð 	Ø%Ÿ^™^Øñ'EØðEà	ðEð Øˆd‰
Øˆ�‰ØØ<ô	
ð	ñðEð 
ØØˆ�‰ØØØ,ô	
ð	ñ
ðEð$ ð%Eð& ð'Eð( 
ò)EóðEðB ×ÑØ
à1ðð ó ð &Ÿ^™^Øñ	'Øð'à	ð'ð ð'ð ð	'ð
 
ò'óñ'r   