
    9iey                     ^   S SK r S SKrS SKr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rS SKrS SKJr  S SKJrJrJrJr  S SKJrJrJr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$  \$" 5       r%  SXS\&S\&S\'4S jjr(S r)S\4S jr*S\&S\+4S jr,S\&4S jr-S\&4S jr.S\&4S jr/S\&4S jr0S r1S r2S r3 " S S\ Rh                  5      r5 " S  S!\ Rh                  5      r6S"\&S#\&4S$ jr7S%S&S'S(S)S)S*S*S)S)S)S+.r8S, r9S-\4S. jr: " S/ S05      r;S1\&4S2 jr<S3 r=S4 r>S5 r?S6 r@S7 rAS8 rBS9 rC\R                  \=\R                  \@\R                  \>\R                  \?\R                  \A\R                  \@\R                  \@\R                  \@0rLS:\;S-\S;\&4S< jrMS= rNS> rOS? rPS@ rQSA rRSB rS\O\P\Q\R\SSC.rT\R                  \V0rWSD rXSE rYSF rZSG r[\\SH:X  Ga;  S SIK]J^r^  \^" 5       r_0 r`\_SJ   R                  5        H  u  rbrc\bu  rdrerf\dSK:X  d  M  \eSL:w  d  M  \g" SM\cSN    SO\f 35        \7" \cSN   \f5      u  rhri \e\;   a&  \e\;   a   \9" \i5      rj\," \eS5      rk\-" \e5      rl\k\j\lSP.rmOq\%R                  SQ\e< SR\e\;   < SS\e\;   < ST35        SrkSrl\e\;   a	  \," \eS5      rk\e\;   a  \-" \e5      rl\9" \i5      rj\k(       a  \kO\j\k(       a  \jO0 \l(       a  \lOSUS)0SP.rm \m\`\e'   M     \R                  " \`5      rq\r" SVSW5       rs\sR                  \q5        SSS5        gg! \o a     GM$  f = f! , (       d  f       g= f)Y    N)BytesIO)Any)urlparse)model_file_download)TASK_OUTPUTS
OutputKeysOutputTypesOutputTypeSchema)
INPUT_TYPEINPUT_TYPE_SCHEMATASK_INPUTS	InputType)pipeline)Pipeline)Config)	ModelFileTasks)
get_loggermodel_idrevisionexternal_engine_for_llmc                     [        U [        R                  US9n[        R                  " U5      n[        UR                  U UUS9$ )N)r   	file_pathr   )taskmodelmodel_revisionr   )r   r   CONFIGURATIONr   	from_filer   r   )r   r   r   model_configuration_filecfgs        ]/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/utils/input_output.pycreate_pipeliner"   F   sN      3))  

3
4CXX 7	9 9    c                     [         R                  " U S 5      nU Vs/ s H9  nUS   R                  S5      (       a  US   R                  S5      (       a  M7  UPM;     nnU$ s  snf )Nc                 8    [         R                  " U 5      (       + $ N)inspect	isroutine)as    r!   <lambda>+get_class_user_attributes.<locals>.<lambda>V   s    8I8I!8L3Mr#   r   __)r'   
getmembers
startswithendswith)cls
attributesr)   user_attributess       r!   get_class_user_attributesr3   U   sc    ##C)MNJa1&&1Q4==+> 	
:   	s   6A!A!task_inputsc                    [        U [        5      (       a  [        U    nU$ [        U [        5      (       d  [        U [        5      (       a,  U  H%  n[        U[
        5      (       a  [        U5      s  $ M'     g[        U [
        5      (       a*  0 nU R                  5        H  u  pE[        U5      X4'   M     U$ [        SU  35      e)zBGet task input schema.

Args:
    task_name (str): The task name.
invalid input_type definition N)	
isinstancestrr   tuplelistdictget_input_typeitems
ValueError)r4   
input_typeitem
input_infokvs         r!   r<   r<   ^   s     +s##,
	K	'	':k4+H+HD$   %d++   
K	&	&
%%'DA*1-JM (9+GHHr#   	task_namer?   c                    Uc-  [         U    n[        U[        5      (       a  SU[        U   0S.$ OUn[        U[        5      (       a	  [        U   $ UcB  [        U[        5      (       a-  U H&  n[        U[
        5      (       d  M  [        SU5      s  $    g[        U[        5      (       d  [        U[        5      (       aI  S0 S.nU H=  n[        U[
        5      (       a  [        SU5      nXTS   S'   Us  $ [        U   US'   Us  $    g[        U[
        5      (       a2  S0 S.nUR                  5        H  u  pg[        SU5      US   U'   M     U$ [        S	U 35      e)
zhGet task input schema.

Args:
    task_name (str): The task name.
    input_type (type): The input type
Nobjecttype
propertiesarray)rH   r=   r=   rH   rI   r6   )
r   r7   r8   r   r:   r;   get_input_schemar9   r=   r>   )rD   r?   r4   r@   input_schemaitem_schemarB   rC   s           r!   rK   rK   w   sq    !),k  !!2;!?  !+s## --		
; = =D$%%'d33   
K	'	':k4+H+H '"5D$%%.tT:0;W%f-##(9$(?W%##   
K	&	&
  %%'DA,<T1,EL&q) (9+GHHr#   c                     [         U    nS0 S.n[        U[        5      (       d  [        SU -  5      eU H  n[        U   US   U'   M     U$ )zCGet task output schema.

Args:
    task_name (str): The task name.
rF   rG    TASK_OUTPUTS for %s is not list.rI   )r   r7   r:   r>   r
   )rD   task_outputsoutput_schema
output_keys       r!   get_output_schemarS      s_      	*L%R8MlD));iGHH&J6F7M,'
3 ' r#   c                    [         U    n[        U[        5      (       a  [        U   nU$ [        U[        5      (       a  U$ [        U[
        5      (       a.  U H'  n[        U[        5      (       a  S[        U5      0s  $ M)     g [        U[        5      (       a,  0 nUR                  5        H  u  pV[        U5      XE'   M     SU0$ [        SU 35      e)Ninputr6   )
r   r7   r8   r   r9   r:   r;   r<   r=   r>   )rD   r4   r?   r@   rA   rB   rC   s          r!   get_input_inforV      s    i(K+s##,
	K	'	'	K	&	&D$   !566   
K	&	&
%%'DA*1-JM ($$9+GHHr#   c                     [         U    n0 n[        U[        5      (       d  [        SU -  5      eU H  n[        U   X#'   M     U$ )NrO   )r   r7   r:   r>   r	   )rD   output_keysoutput_typerR   s       r!   get_output_inforZ      sL    y)KKk4((;iGHH%J&1*&=K# &r#   c                     [        [        5      nSnU H  u  p4X0:X  d  X@:X  d  M  Sn  O   U(       d  g[        U 5      n[        U 5      nXV4$ )zIGet task input output schema.

Args:
    task_name (str): The task name.
FT)NN)r3   r   rV   rZ   )rD   tasks
task_existkeyvaluer4   rP   s          r!   get_task_io_infor`      sW     &e,EJ
u1J   +K"9-L$$r#   c                    U R                   Gb  [        U R                   [        R                  5      (       a,  U R                  U R                   R
                  R                  4$ [        U R                   [        R                  5      (       a"  U R                  U R                   R                  4$ [        U R                   [        R                  5      (       a"  U R                  U R                   R                  4$ [        SU R                   -  5      eUb!  U R                  [        U5      R                  4$ [        R                  SU R                  -  5        U R                  S4$ )NzInvalid annotation: %sz1arg: %s has no data type annotation, use default!rF   )
annotationr7   ast	Subscriptargr_   idName	Attributeattr	ExceptionrH   __name__loggerwarning)re   default_values     r!   process_arg_type_annotationro      s    
~~!cnncmm4477CNN0033331177CNN----6677CNN////4s~~EFF$77D/8888J! 	"ww  r#   c                    [        U [        R                  5      (       a  U R                  $ [	        [        S5      (       a+  [        U [        R
                  5      (       a  U R                  $ [        U [        R                  5      (       a  [        S U R                   5       5      $ [        U [        R                  5      (       a  U R                  $ [        U [        R                  5      (       a+  [        U S9nSSS S.nUR                  UR                  U5      $ [        U [        R                  5      (       a  U R                   $ [#        5       $ )NBytesc              3   8   #    U  H  n[        U5      v   M     g 7fr&   )convert_to_value).0is     r!   	<genexpr>#convert_to_value.<locals>.<genexpr>
  s     <)Q%a(()s   )r@   TF)TrueFalseNone)r7   rc   Strshasattrrq   Tupler9   eltsNumnrg   VariableKeygetnameNameConstantr_   UnhandledKeyType)r@   resultconstants_lookups      r!   rs   rs     s    $  vv	g		:dCII#>#>vv	D#))	$	$<$))<<<	D#''	"	"vv	D#((	#	#$'

  ##KK
 	
 
D#**	+	+zz!!r#   c                 "   / n[        U R                  5      n[        U R                  5      nU R                  SX#-
    H7  nUR                  S:X  a  M  [	        US 5      u  pVUR                  XVSS 45        M9     [        U R                  X#-
  S  U R                  5       H1  u  pG[        U5      n[	        XH5      u  pVUR                  XVSU45        M3     [        U R                  5      n	[        U R                  5      n
U R                  SX-
    H$  n[	        U5      u  pVUR                  XVSS 45        M&     [        U R                  X-
  S  U R                  5       H0  u  p[	        U5      u  pVUR                  XVSUR                  45        M2     U$ )Nr   selfFT)lenargsdefaultsre   ro   appendziprs   
kwonlyargskw_defaultsr_   )r   	argumentsn_argsn_args_defaultre   arg_namearg_typedftr_   n_kwargsn_kwargs_defaultkwargs               r!   process_argsr     sy   I^F'Nyy62377f!<S$!GHh%>? 4 		&"9":;T]]K %8D(dE:;	 L 4??#H4++,8#>?8?(eT:; @ $//(*E*FG**,
8?(dCII>?, r#   c                   \   ^  \ rS rSrSrS	U 4S jjrS\R                  S\4S jr	S r
SrU =r$ )
PipelineClassAnalyzeriA  z>Analysis pipeline class define get inputs and parameters.
    returnc                    > [         TU ]  5         / U l        SU l        / U l        SU l        SU l        SU l        / U l        / U l	        SU l
        SU l        g )NFr   )super__init__
parametershas_callpreprocess_parametershas_preprocesshas_postprocesshas_forwardforward_parameterspostprocess_parameterslineno
end_lineno)r   	__class__s    r!   r   PipelineClassAnalyzer.__init__E  sZ    %'"#$ "$&(#r#   nodec                    UR                   S:X  a!  [        UR                  5      U l        SU l        UR                   S:X  a"  [        UR                  5      U l        SU l        g UR                   S:X  a"  [        UR                  5      U l        SU l        g UR                   S:X  a"  [        UR                  5      U l	        SU l
        g g )N__call__T
preprocesspostprocessforward)r   r   r   r   r   r   r   r   r   r   r   r   r   s     r!   visit_FunctionDef'PipelineClassAnalyzer.visit_FunctionDefR  s    99
"*4995DO DM99$)5dii)@D&"&DYY-'*6tyy*AD'#'D YY)#&2499&=D##D $r#   c                    U R                   (       a  U R                  S 4$ / nU R                  (       a  UR                  U R                  SS  5        U R
                  (       a  UR                  U R                  SS  5        U R                  (       a  UR                  U R                  SS  5        [        U5      S:  a  S U4$ S / 4$ )N   r   )
r   r   r   extendr   r   r   r   r   r   )r   r   s     r!   get_input_parameters*PipelineClassAnalyzer.get_input_parameters`  s    == ??D((
d88<=d55ab9:d99!"=>z?Q##8Or#   )
r   r   r   r   r   r   r   r   r   r   r   N)rk   
__module____qualname____firstlineno____doc__r   rc   FunctionDefr   r   r   __static_attributes____classcell__r   s   @r!   r   r   A  s.    $coo $# $ r#   r   c                   R   ^  \ rS rSrSrSU 4S jjrS\R                  4S jrSr	U =r
$ )!AnalysisSourceFileRegisterModulesis  aH  Get register_module call of the python source file.


Args:
    ast (NodeVisitor): The ast node.

Examples:
    >>> with open(source_file_path, "rb") as f:
    >>>     src = f.read()
    >>>     analyzer = AnalysisSourceFileRegisterModules(source_file_path)
    >>>     analyzer.visit(ast.parse(src, filename=source_file_path))
c                 H   > [         TU ]  5         Xl        X l        S U l        g r&   )r   r   source_file_path
class_nameclass_define)r   r   r   r   s      r!   r   *AnalysisSourceFileRegisterModules.__init__  s!     0$ r#   r   c                 F    UR                   U R                  :X  a  Xl        g g r&   )r   r   r   r   s     r!   visit_ClassDef0AnalysisSourceFileRegisterModules.visit_ClassDef  s    99' $ (r#   )r   r   r   r   )rk   r   r   r   r   r   rc   ClassDefr   r   r   r   s   @r!   r   r   s  s"    !%3<< % %r#   r   r   r   c                 D   [        U S5       nUR                  5       n[        U U5      nUR                  [        R
                  " UU S95        [        5       nUR                  UR                  5        UR                  5       u  pgXg4sSSS5        $ ! , (       d  f       g= f)zGet pipeline input and parameter

Args:
    source_file_path (str): The pipeline source code path
    class_name (str): The pipeline class name
rb)filenameN)	openreadr   visitrc   parser   r   r   )r   r   fsrcanalyzerclzrU   pipeline_parameterss           r!   get_pipeline_input_parametersr     s     
	%ffh45E5?AII)	 $%		(''(%(%=%=%?") 
&	%	%s   A:B
BstringintegernumberbooleanrF   rJ   )r8   intfloatboolDictr;   r:   ListUnionInputrF   c                     S0 S.nU b  [        U 5      S:X  a  0 $ U  H%  nUu  p4pVS[        U   0nU(       a  XgS'   XqS   U'   M'     U$ )NrF   rG   r   rH   defaultrI   )r   meta_type_schema_map)r   parameters_schemaparamr   
param_typehas_defaultrn   props           r!   #generate_pipeline_parameters_schemar     sf    !)<S_1	7<4+,Z89+O04,'-  r#   r   c                     U R                   nU R                  R                  n[        R                  R                  U R                  5      nUR                  n[        XU5      nU$ )zWGet pipeline input output schema.

Args:
    pipeline (Pipeline): The pipeline object.
)		group_keyr   rk   	importlibutil	find_specr   originPipelineInfomation)r   rD   pipeline_classspecpipeline_file_pathinfos         r!   $get_pipeline_information_by_pipeliner     sV     ""I''00N>>##H$7$78Di9KLDKr#   c                       \ rS rSrSrS\4S jrS r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       rS rSrg)r   i  z5Analyze pipeline information, task_name, schema.
    rD   c                 V    Xl         X l        X0l        SU l        U R	                  5         g )NF)
_task_name_class_name_source_path_is_custom_call_method_analyze)r   rD   r   source_paths       r!   r   PipelineInfomation.__init__  s$    #%'&+#r#   c           	         [        U R                  U R                  5      u  pU R                  [        ;   ae  U R                  [
        ;   aQ  Uc  0 U l        O[        U5      U l        [        U R                  S 5      U l	        [        U R                  5      U l        g Ubf  SU l        [        U5      U l	        SU R                  S'   0 U l        SS0U l        U R                  [
        ;   a  [        U R                  5      U l        g g [        R                  SU R                  < SU R                  [        ;   < SU R                  [
        ;   < S	35        S U l	        S U l        U R                  [        ;   a  [        U R                  S 5      U l	        U R                  [
        ;   a  [        U R                  5      U l        [        U5      U l        g )
NTzBFor binary input such as image audio video, only url is supported.descriptionrH   rF   Task:  input is defined: , output is defined:  which is not completed)r   r  r   r   r   r   _parameters_schemar   rK   _input_schemarS   _output_schemar  rl   rm   )r   rU   r   s      r!   r  PipelineInfomation._analyze  s{   9t//1 ??k)doo.M!*,'*M+ '!1$//4!HD"3DOO"DD*.D'!DU!KD!e &(D##D ,.&7&H# / NN??DOO!%"#'??l#BDE "&D"&D+-%5doot%L",.&7&H#&I'D#r#   c                     U R                   $ r&   )r   r   s    r!   rD   PipelineInfomation.task_name  s    r#   c                     U R                   $ r&   )r  r  s    r!   is_custom_call!PipelineInfomation.is_custom_call	  s    ***r#   c                     U R                   $ r&   )r  r  s    r!   rL   PipelineInfomation.input_schema  s    !!!r#   c                     U R                   $ r&   )r  r  s    r!   rQ    PipelineInfomation.output_schema  s    """r#   c                     U R                   $ r&   )r  r  s    r!   r   $PipelineInfomation.parameters_schema  s    &&&r#   c                     U R                   (       a  U R                   OU R                  U R                   (       a  U R                  O0 U R                  (       a  U R                  S.$ SS0S.$ )NrH   rF   rU   r   output)r  r  r  r  s    r!   schemaPipelineInfomation.schema  sc     ,0+=+=T''##'+'9'9D##r-1-@-@d))
 	
 G
 	
r#   c                 >    U R                   R                  SU-  5      $ )Nz_%s)__dict__r   )r   r^   s     r!   __getitem__PipelineInfomation.__getitem__%  s    }}  --r#   )r   r  r  r  r  r  r   N)rk   r   r   r   r   r8   r   r  propertyrD   r  rL   rQ   r   r  r#  r    r#   r!   r   r     s    # $L   + + " " # # ' ' 	
 	
.r#   r   urlc                 <    [        U 5      nUR                  S;   a  gg)z|Check the input url is valid url.

Args:
    url (str): The url

Returns:
    bool: If is url return True, otherwise False.
)httphttpsossTF)r   scheme)r'  
url_parseds     r!   is_urlr.  )  s"     #J44r#   c                    U R                  S5      (       d:  U R                  S5      (       d$  [        R                  R                  U 5      (       a  U $ SSKJn  [        R                  " U S5      nUR                  [        U5      5      $ )Nr)  r+  r   )Imagez-_)
r.   ospathexistsPILr0  base64	b64decoder   r   )contentr0  image_file_contents      r!   decode_base64_to_imager9  9  sk    &!!W%7%7& &ggnnW--))'48::g0122r#   c                     U R                  S5      (       d:  U R                  S5      (       d$  [        R                  R                  U 5      (       a  U $ [        R
                  " U 5      nU$ Nr)  r+  r.   r1  r2  r3  r5  r6  r7  file_contents     r!   decode_base64_to_audior?  C  V    &!!W%7%7& &ggnnW--##G,Lr#   c                     U R                  S5      (       d:  U R                  S5      (       d$  [        R                  R                  U 5      (       a  U $ [        R
                  " U 5      nU$ r;  r<  r=  s     r!   decode_base64_to_videorB  L  r@  r#   c                     U $ r&   r&  r7  s    r!   return_originrE  U  s    Nr#   c                     g r&   r&  rD  s    r!   
decode_boxrG  Y  s    r#   c                     g)zZConvert multipart data to pipeline input.

Args:
    body (dict): The multipart data body
Nr&  )bodys    r!   )service_multipart_input_to_pipeline_inputrJ  ]       	r#   c                     g)z^Convert multipart data to service multipart output.

Args:
    output (dict): Multipart body.
Nr&  )r  s    r!   +pipeline_output_to_service_multipart_outputrM  f  rK  r#   pipeline_inforI  c                 :    [        U S   U5      u  p4U" U40 UD6nU$ )zCall pipeline with json input.

Args:
    pipeline_info (PipelineInfomation): The pipeline information object.
    pipeline (Pipeline): The pipeline object.
    body (Dict): The input object, include input and parameters
rD   )&service_base64_input_to_pipeline_input)rN  r   rI  pipeline_inputsr   r   s         r!   call_pipeline_with_jsonrR  {  s0     #Ik"D#*Oo44FMr#   c                    SU;  a  [        S5      eUS   nSU;   a  US   nO0 n0 n[        U[        [        [        45      (       a  X#4$ [
        R                  " U S5      n[        U[        5      (       aQ  [        U[        5      (       a+  [        U   " [        UR                  5       5      S   5      U4$ [        U   " U5      U4$ [        U[        5      (       a  [        U5      nXC4$ [        U[        5      (       ad  UR                  5        HM  u  pgXV   n[        U[        5      (       d  XtU'   M$  U[        ;  a  [        SU-  5      e[        U   " U5      XF'   MO     XC4$ [        U[        5      (       aj  U Hc  n	[        U	[        5      (       d  M  UR                  5        H2  u  pgX   nU[        ;  a  [        SU-  5      e[        U   " U5      XF'   M4     XC4s  $    gX#4$ )zConvert service base64 input to pipeline input and parameters

Args:
    task_name (str): The task name.
    body (Dict): The input object, include input and parameters
rU   zNo input data!r   Nr   zInvalid input field: %s)r>   r7   r8   r   r   r   r   r;   base64_decoder_mapr:   valuesr9   r=   r   )
rD   rI  service_inputr   pipeline_inputtask_input_infor^   r_   r?   r@   s
             r!   rP  rP    s    d)**MMt,'

N-#sE!233((!ooi6O/3''mT**%o6t$$&8(()8+ ,-78 8 &o6 *+ +	OU	+	+}-))	OT	*	*'-- 
JC )-Jj#..&+s#+ !:Z!GHH"4Z"@"GN
 ))	O
 
#D$%%"/"5"5 #JC "&J!3()B+5*6 7 7*<Z*H*ON'# &11 $ ((r#   c                     SS K nUR                  SU 5      u  p#UR                  5       n[        [        R
                  " U5      S5      nU$ )Nr   z.pngutf-8)cv2imencodetobytesr8   r5  	b64encode)imager[  _
img_encode
bytes_data
base64_strs         r!   encode_numpy_image_to_base64rd    sB    LL/MA##%JV%%j17;Jr#   c                 B    [        [        R                  " U 5      S5      $ NrZ  r8   r5  r^  )videos    r!   encode_video_to_base64ri    s    v&00r#   c                 B    [        [        R                  " U 5      S5      $ rf  rg  )pcms    r!   encode_pcm_to_base64rl        v$g..r#   c                 B    [        [        R                  " U 5      S5      $ rf  rg  )wavs    r!   encode_wav_to_base64rp    rm  r#   c                 B    [        [        R                  " U 5      S5      $ rf  rg  )btss    r!   encode_bytes_to_base64rs    rm  r#   )r_  rh  rk  ro  bytesc                 l   [        U [        [        45      (       a'  / nU  H  nUR                  [	        U5      5        M     U$ [        U [
        5      (       aY  0 nU R                  5        HA  u  p4[        U5      [        ;   a  [        [        U5         " U5      X'   M4  [	        U5      X'   MC     U$ [        U [        R                  5      (       a  U R                  5       $ [        U [        R                  5      (       a  [        U 5      $ [        U [        R                  5      (       a  [        U 5      $ U $ r&   )r7   r:   r9   r   _convert_to_python_typer;   r=   rH   type_to_python_typenpndarraytolistfloatingr   r   r   )inputsresr@   rB   rC   s        r!   rv  rv    s    &4-((DJJ.t45 
	FD	!	!LLNDAAw--,T!W5a803	 #
 
	FBJJ	'	'}}	FBKK	(	(V}	FBJJ	'	'6{r#   c                 x   0 n[         R                  " U / 5      n[        U[        5      (       a  US   nUR	                  5        GH  u  pEXC;  aY  SSKn[        XVR                  5      (       a3  [        R                  " UR                  5       5      R                  5       nOUnXrU'   Md  U[        R                  [        R                  [        R                  [        R                  [        R                   [        R"                  4;   a  [        U[        5      (       al  / nU[        R                  :X  a  [        R                  n	O[        R                  n	U H(  n
UR%                  [&        [(        U	      " U
5      5        M*     XU'   GME  [&        [(        U      " U5      X$'   GM`  [(        U   [        R*                  4;   a4  [        U[        R*                  5      (       a  UR                  5       X$'   GM  [        U[        R*                  5      (       a  UR                  5       X$'   GM  XRU'   GM     [-        U5      $ )u   Convert pipeline output to service output,
convert binary fields to base64 encoding。

Args:
    task_name (str): The output task name.
    pipeline_output (object): The pipeline output.
r   N)r   r   r7   r:   r=   torchTensorrx  rJ   cpurz  r   
OUTPUT_IMGOUTPUT_IMGSOUTPUT_VIDEO
OUTPUT_PCMOUTPUT_PCM_LIST
OUTPUT_WAVr   base64_encoder_mapr	   ry  rv  )rD   pipeline_outputjson_serializable_outputrP   r^   r_   r  rC   r=   output_item_typer@   s              r!   (pipeline_output_to_service_base64_outputr  	  s     "##Ir2L/4(()!,%++-
"%..HHUYY[)002,-S)%%z'='='')>)>**J,A,A
 

 %&&*000'1'<'<$'1'<'<$!DLL!3#$45"77;"= > " 16-0B$1&1(- "**-*rzz3# 3#,1LLN$)rzz**,1LLN$),1S)E .H ##;<<r#   c                     [         R                  R                  [        5      n[	        US-   S5       n[
        R                  " U5      nS S S 5        U W;   a  X0   $ g ! , (       d  f       N= f)Nz/pipeline_inputs.jsonrr1  r2  dirname__file__r   jsonload)r   current_work_dirr   input_exampless       r!   get_task_input_examplesr  =  sW    wwx0	!88#	>!1 
?~##	 
?	>   A
A+c                     [         R                  R                  [        5      n[	        US-   S5       n[
        R                  " U5      nS S S 5        U W;   a  X0   $ g ! , (       d  f       N= f)Nz/pipeline_schema.jsonr  r  )r   r  r   r  s       r!   get_task_schemasr  F  sU    wwx0	!88#	>!1 
?v~|	 
?	>r  __main__)
load_indexindex	PIPELINESr   zvalue['filepath']: filepathz, class_name: r  r  r	  r
  r  rH   z./task_schema.jsonw)T)urc   r5  r   r'   r1  ior   typingr   urllib.parser   r  numpyrx  modelscope.hub.file_downloadr   modelscope.outputs.outputsr   r   r	   r
   modelscope.pipeline_inputsr   r   r   r   modelscope.pipelinesr   modelscope.pipelines.baser   modelscope.utils.configr   modelscope.utils.constantr   r   modelscope.utils.loggerr   rl   r8   r   r"   r3   r<   rH   rK   rS   rV   rZ   r`   ro   rs   r   NodeVisitorr   r   r   r   r   r   r   r.  r9  r?  rB  rE  rG  rJ  rM  IMAGETEXTAUDIOVIDEOBOXDICTLISTNUMBERrT  rR  rP  rd  ri  rl  rp  rs  r  int64r   rw  rv  r  r  r  rk   modelscope.utils.ast_utilsr  r  task_schemasr=   r^   r_   regrD   r   printrU   r   r   rL   rQ   r  rm   BaseExceptiondumpsr|   r   r   writer&  r#   r!   <module>r     s-   
    	   !   <: :@ @ ) . * 6 .	)\ 599c 9!9-19I I2/I /I /Id "Ic I.s % %*!&"6D/COO /d% %2***<   8 R. R.j  3			 OO+NNMOO+OO+MM:NNMNNMm	 += &.69*8)v1///
 *##  HHc 
01=h z5LELGn**,
U%("Y
+)y"8%eJ&7%8zlS !>j!:!/E:$+	\0I )L")$%#3It#DL$5i$@M!-&7"/F NN$i;&>	*A+,- $(L$(M K/'7	4'H L0(9)(D(K")$% 2>)-9)r3@-"HGF '-L#[ -^ 	

< A	"C	(A	
 
)	(i ^ ! 
 
)	(s%   3+LA0L4LLL
L,