
    Y j                        S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJrJr  S SKJrJr  S S	KJr  \" \5      rS
r " S S\\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)ABC)Any)urlparse)InferenceProviderMapping)RequestParameters_as_dict)TaskProviderHelperfilter_none)get_sessionhf_raise_for_status)
get_loggerg      ?c                   n   ^  \ rS rSrS\4U 4S jjrS\S\S\4S jr SS	\\-  S
\	S-  S\
4S jjrSrU =r$ )WavespeedAITask   taskc                 $   > [         TU ]  SSUS9  g )N	wavespeedzhttps://api.wavespeed.ai)providerbase_urlr   super__init__)selfr   	__class__s     /root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/huggingface_hub/inference/_providers/wavespeed.pyr   WavespeedAITask.__init__   s    +8RY]^    mapped_modelapi_keyreturnc                     SU 3$ )Nz/api/v3/ )r   r   r   s      r   _prepare_routeWavespeedAITask._prepare_route   s    ,((r   Nresponserequest_paramsc                 >   [        U5      nUR                  S0 5      nUR                  S0 5      R                  S5      nU(       d  [        S5      eUc  [        S5      e[        UR                  5      nUR
                  S:X  a  UR                   SUR
                   S3nOUR                   SUR
                   3n[        U[        5      (       a  [        U5      R                  nOUnU U 3n	[        R                  S	5         [        R                  " [        5        [        5       R                  XR                   S
9n
[#        U
5        U
R%                  5       nUR                  S0 5      nUR                  S5      nUS:X  a^  UR                  S5      (       a  ['        US   5      S:X  a  [        S5      eUS   S   n[        5       R                  U5      R(                  $ US:X  a   UR                  SS5      n[        SU 35      eUS;   a  GM  [        SU 35      e)Ndataurlsgetz#No result URL found in the responsezSA `RequestParameters` object should be provided to get responses with WaveSpeed AI.zrouter.huggingface.coz://z
/wavespeedz*Processing request, polling for results...)headersstatus	completedoutputsr   z#No output URL in completed responsefailederrorz*Task failed with no specific error messagezWaveSpeed AI task failed: )
processingcreatedzUnknown status: )r   r*   
ValueErrorr   urlnetlocscheme
isinstancestrpathloggerinfotimesleep_POLLING_INTERVALr   r+   r   jsonlencontent)r   r%   r&   response_dictr(   result_path
parsed_urlr   result_url_path
result_urlresult_responseresulttask_resultr,   
output_url	error_msgs                   r   get_responseWavespeedAITask.get_response   s   
 !*  ,hhvr*..u5BCC!rss n001
 77$++,C
0A0A/B*MH$++,C
0A0A/BCH k3''&{388O)O z/!23
@A JJ())m//
DZDZ/[O0$))+F **VR0K __X.F$"y11SY9O5PTU5U$%JKK(3A6
"}((4<<<8#'OOG5ab	 #=i[!IJJ44 #3F8!<==r   r"   )N)__name__
__module____qualname____firstlineno__r8   r   r#   bytesdictr   r   rL   __static_attributes____classcell__r   s   @r   r   r      s_    _S _)3 ) ) ) 487>$,7> *D07> 
	7> 7>r   r   c            	       H   ^  \ rS rSrU 4S jrS\S\S\S\S-  4S jrS	r	U =r
$ )
WavespeedAITextToImageTaskU   c                 $   > [         TU ]  S5        g )Nztext-to-imager   r   r   s    r   r   #WavespeedAITextToImageTask.__init__V   s    )r   inputs
parametersprovider_mapping_infor    Nc                      SU0[        U5      E$ )Nprompt)r
   )r   r]   r^   r_   s       r   _prepare_payload_as_dict3WavespeedAITextToImageTask._prepare_payload_as_dictY   s     &<K
$;<<r   r"   rN   rO   rP   rQ   r   r   rS   r   rb   rT   rU   rV   s   @r   rX   rX   U   s<    *== =  8	=
 
= =r   rX   c                       \ rS rSrS rSrg)WavespeedAITextToVideoTaskb   c                 0    [         R                  U S5        g )Nztext-to-videor   r   r   s    r   r   #WavespeedAITextToVideoTask.__init__c   s      7r   r"   NrN   rO   rP   rQ   r   rT   r"   r   r   rf   rf   b   s    8r   rf   c            	       H   ^  \ rS rSrU 4S jrS\S\S\S\S-  4S jrS	r	U =r
$ )
WavespeedAIImageToImageTaskg   c                 $   > [         TU ]  S5        g )Nzimage-to-imager   r[   s    r   r   $WavespeedAIImageToImageTask.__init__h   s    )*r   r]   r^   r_   r    Nc                    [        U[        5      (       a  UR                  S5      (       a  UnO[        U[        5      (       aP  [        US5       nUR	                  5       nS S S 5        [
        R                  " W5      R                  S5      nSU 3nO*[
        R                  " U5      R                  S5      nSU 3nUR                  SS 5      nSU0[        U5      En	Ub  XS'   U	$ ! , (       d  f       N= f)N)zhttp://zhttps://rbzutf-8zdata:image/jpeg;base64,ra   image)
r7   r8   
startswithopenreadbase64	b64encodedecodepopr
   )
r   r]   r^   r_   rt   ffile_content	image_b64ra   payloads
             r   rb   4WavespeedAIImageToImageTask._prepare_payload_as_dictk   s     fc""v'8'89P'Q'QE$$fd#q vvx $((6==gFI-i[9E ((077@I-i[9E $/E=[%<= &H $#s   C((
C6r"   rd   rV   s   @r   rn   rn   g   s<    +   8	
 
 r   rn   c                       \ rS rSrS rSrg)WavespeedAIImageToVideoTask   c                 0    [         R                  U S5        g )Nzimage-to-videori   rj   s    r   r   $WavespeedAIImageToVideoTask.__init__   s      '78r   r"   Nrl   r"   r   r   r   r      s    9r   r   )rx   r<   abcr   typingr   urllib.parser   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   ,huggingface_hub.inference._providers._commonr	   r
   huggingface_hub.utilsr   r   huggingface_hub.utils.loggingr   rN   r:   r>   r   rX   rf   rn   r   r"   r   r   <module>r      sz        ! ; I X B 4 
H	  >>(# >>B
= 
=8!; 8
/ B9"= 9r   