
    vjey                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlZd dlZd dlmZ d dlmZmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dl m!Z!m"Z" d dl#m$Z$  e$            Z%	 	 dYde&de&de'fdZ(d Z)defdZ*de&de+fdZ,de&fdZ-de&fdZ.de&fdZ/de&fdZ0d Z1d Z2d Z3 G d d e j4                  Z5 G d! d"e j4                  Z6d#e&d$e&fd%Z7d&d'd(d)d*d*d+d+d*d*d*d,Z8d- Z9d.efd/Z: G d0 d1          Z;d2e&fd3Z<d4 Z=d5 Z>d6 Z?d7 Z@d8 ZAd9 ZBd: ZCejD        e=ejE        e@ejF        e>ejG        e?ejH        eAejI        e@ejJ        e@ejK        e@iZLd;e;d.ed<e&fd=ZMd> ZNd? ZOd@ ZPdA ZQdB ZRdC ZSeOePeQeReSdDZTejU        eViZWdE ZXdF ZYdG ZZdH Z[e\dIk    rdd dJl]m^Z^  e^            Z_i Z`e_dK         a                                D ]\  ZbZceb\  ZdZeZfeddLk    reedMk    r egdNecdO          dPef             e7ecdO         ef          \  ZhZi	 eeev r-eeev r) e9ei          Zj e,eed          Zk e-ee          ZlekejeldQZmnee%n                    dReedSeeev dTeeev dU           dZkdZleeev r e,eed          Zkeeev r e-ee          Zl e9ei          Zjekreknejekrejni elrelndVd*idQZmn# eo$ r Y w xY weme`ee<    ejp        e`          Zq erdWdX          5 Zsest                    eq           ddd           dS # 1 swxY w Y   dS dS )Z    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_loggerTmodel_idrevisionexternal_engine_for_llmc                     t          | t          j        |          }t          j        |          }t          |j        | ||          S )N)r   	file_pathr   )taskmodelmodel_revisionr   )r   r   CONFIGURATIONr   	from_filer   r   )r   r   r   model_configuration_filecfgs        m/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/modelscope/utils/input_output.pycreate_pipeliner"   F   s]      3)      
3
4
4CX 7	9 9 9 9    c                 J    t          j        | d           }d |D             }|S )Nc                 ,    t          j        |            S N)inspect	isroutine)as    r!   <lambda>z+get_class_user_attributes.<locals>.<lambda>V   s    8I!8L8L3M r#   c                 ~    g | ]:}|d                               d          r|d                              d          8|;S )r   __)
startswithendswith).0r)   s     r!   
<listcomp>z-get_class_user_attributes.<locals>.<listcomp>W   sV       1&&+,Q4==+>+>	  r#   )r'   
getmembers)cls
attributesuser_attributess      r!   get_class_user_attributesr5   U   s>    #C)M)MNNJ   O r#   task_inputsc                    t          | t                    rt          |          }|S t          | t                    st          | t                    r-| D ](}t          |t
                    rt          |          c S )dS t          | t
                    r0i }|                                 D ]\  }}t          |          ||<   |S t          d|            )zNGet 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)r6   
input_typeitem
input_infokvs         r!   r>   r>   ^   s     +s## I,
	K	'	' I:k4+H+H I 	 	D$    %d+++++	 	 
K	&	& I
%%'' 	. 	.DAq*1--JqMMG+GGHHHr#   	task_namerA   c                    |5t           |          }t          |t                    rd|t          |         idS n|}t          |t                    rt          |         S |Ct          |t                    r.|D ])}t          |t
                    rt          d|          c S *dS t          |t                    st          |t                    rSdi d}|D ]I}t          |t
                    rt          d|          }||d         d<   |c S t          |         |d<   |c S dS t          |t
                    r:di d}|                                D ]\  }}t          d|          |d         |<   |S t          d	|           )
zxGet task input schema.

    Args:
        task_name (str): The task name.
        input_type (type): The input type
    Nobjecttype
propertiesarray)rJ   r?   r?   rJ   rK   r8   )
r   r9   r:   r   r<   r=   get_input_schemar;   r?   r@   )rF   rA   r6   rB   input_schemaitem_schemarD   rE   s           r!   rM   rM   w   s    !),k  	 !!2;!?  	 !+s## I --		
; = =	 	4 	4D$%% 4'd333334	4 	4 
K	'	' I:k4+H+H I '"55 	$ 	$D$%% $.tT::0;W%f-####(9$(?W%####	$ 	$ 
K	&	& 	I
 
  %%'' 	F 	FDAq,<T1,E,EL&q))G+GGHHHr#   c                     t           |          }di d}t          |t                    st          d| z            |D ]}t          |         |d         |<   |S )zOGet task output schema.

    Args:
        task_name (str): The task name.
    rH   rI    TASK_OUTPUTS for %s is not list.rK   )r   r9   r<   r@   r
   )rF   task_outputsoutput_schema
output_keys       r!   get_output_schemarU      sp      	*L%R88MlD)) ;iGHHH& 	 	J6F7M,'
33r#   c                    t           |          }t          |t                    rt          |         }|S t          |t                    r|S t          |t
                    r/|D ]*}t          |t                    rdt          |          ic S +d S t          |t                    r2i }|                                D ]\  }}t          |          ||<   d|iS t          d|           )Ninputr8   )
r   r9   r:   r   r;   r<   r=   r>   r?   r@   )rF   r6   rA   rB   rC   rD   rE   s          r!   get_input_inforX      s   i(K+s## I,
	K	'	' I	K	&	& I 	 	D$    !5!56666	 	 
K	&	& I
%%'' 	. 	.DAq*1--JqMM$$G+GGHHHr#   c                     t           |          }i }t          |t                    st          d| z            |D ]}t          |         ||<   |S )NrQ   )r   r9   r<   r@   r	   )rF   output_keysoutput_typerT   s       r!   get_output_infor\      s^    y)KKk4(( >;iGHHH% 	> 	>J&1*&=K
##r#   c                     t          t                    }d}|D ]\  }}|| k    s|| k    rd} n|sdS t          |           }t          |           }||fS )zUGet task input output schema.

    Args:
        task_name (str): The task name.
    FT)NN)r5   r   rX   r\   )rF   tasks
task_existkeyvaluer6   rR   s          r!   get_task_io_inforb      s     &e,,EJ  
U)u	11JE  2  z ++K"9--L$$r#   c                    | j         t          | j         t          j                  r| j        | j         j        j        fS t          | j         t          j                  r| j        | j         j        fS t          | j         t          j                  r| j        | j         j	        fS t          d| j         z            || j        t          |          j        fS t                              d| j        z             | j        dfS )NzInvalid annotation: %sz1arg: %s has no data type annotation, use default!rH   )
annotationr9   ast	Subscriptargra   idName	Attributeattr	ExceptionrJ   __name__loggerwarning)rg   default_values     r!   process_arg_type_annotationrq      s    
~!cncm44 	G7CN033311 	G7CN---66 	G7CN///4s~EFFF$7D//888J! 	" 	" 	"w  r#   c                 V   t          | t          j                  r| j        S t	          t          d          r!t          | t          j                  r| j        S t          | t          j                  rt          d | j        D                       S t          | t          j	                  r| j
        S t          | t          j                  r1t          |           }ddd d}|                    |j        |          S t          | t          j                  r| j        S t#                      S )NBytesc              3   4   K   | ]}t          |          V  d S r&   )convert_to_value)r/   is     r!   	<genexpr>z#convert_to_value.<locals>.<genexpr>
  s+      <<Q%a((<<<<<<r#   )rB   TF)TrueFalseNone)r9   re   Strshasattrrs   Tupler;   eltsNumnri   VariableKeygetnameNameConstantra   UnhandledKeyType)rB   resultconstants_lookups      r!   ru   ru     s   $   "v	g		 ":dCI#>#> "v	D#)	$	$ "<<$)<<<<<<	D#'	"	" "v	D#(	#	# "$'''
 

  ##K
 
 	
 
D#*	+	+ "z!!!r#   c                 F   g }t          | j                  }t          | j                  }| j        d||z
           D ]:}|j        dk    rt	          |d           \  }}|                    ||dd f           ;t          | j        ||z
  d          | j                  D ]@\  }}t          |          }t	          ||          \  }}|                    ||d|f           At          | j                  }	t          | j	                  }
| j        d|	|
z
           D ]-}t	          |          \  }}|                    ||dd f           .t          | j        |	|
z
  d          | j	                  D ]5\  }}t	          |          \  }}|                    ||d|j
        f           6|S )Nr   selfFT)lenargsdefaultsrg   rq   appendzipru   
kwonlyargskw_defaultsra   )r   	argumentsn_argsn_args_defaultrg   arg_namearg_typedftra   n_kwargsn_kwargs_defaultkwargs               r!   process_argsr     s   I^^F''Ny6N223 @ @7f!<S$!G!GHhh%>???? 	&>"9":":;T]KK < <S %%8eDD((HdE:;;;; 4?##H4+,,8.>#>!>? < <8??((HeT:;;;;$/(5E*E*F*FG*, , @ @
s8??((HdCI>????r#   c                   D     e Zd ZdZd fdZdej        defdZd Z	 xZ
S )	PipelineClassAnalyzerz>Analysis pipeline class define get inputs and parameters.
    returnNc                     t                                                       g | _        d| _        g | _        d| _        d| _        d| _        g | _        g | _	        d| _
        d| _        d S )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   zPipelineClassAnalyzer.__init__E  si    %'"#$ "$&(#r#   nodec                 j   |j         dk    r t          |j                  | _        d| _        |j         dk    r"t          |j                  | _        d| _        d S |j         dk    r"t          |j                  | _        d| _        d S |j         dk    r"t          |j                  | _	        d| _
        d S d S )N__call__T
preprocesspostprocessforward)r   r   r   r   r   r   r   r   r   r   r   r   r   s     r!   visit_FunctionDefz'PipelineClassAnalyzer.visit_FunctionDefR  s    9
""*4955DO DM9$$)5di)@)@D&"&DY-''*6ty*A*AD'#'D   Y)##&249&=&=D##D $#r#   c                 R   | j         r	| j        d fS g }| j        r"|                    | j        dd                     | j        r"|                    | j        dd                     | j        r"|                    | j        dd                     t          |          dk    rd |fS d g fS )N   r   )
r   r   r   extendr   r   r   r   r   r   )r   r   s     r!   get_input_parametersz*PipelineClassAnalyzer.get_input_parameters`  s    = 	) ?D((
 	>d8<=== 	;d5abb9::: 	?d9!""=>>>z??Q##8Or#   r   N)rm   
__module____qualname____doc__r   re   FunctionDefr   r   r   __classcell__r   s   @r!   r   r   A  sz              $co $# $ $ $ $      r#   r   c                   :     e Zd ZdZd fdZdej        fdZ xZS )!AnalysisSourceFileRegisterModulesah  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))
    r   Nc                 r    t                                                       || _        || _        d | _        d S r&   )r   r   source_file_path
class_nameclass_define)r   r   r   r   s      r!   r   z*AnalysisSourceFileRegisterModules.__init__  s6     0$ r#   r   c                 8    |j         | j        k    r	|| _        d S d S r&   )r   r   r   r   s     r!   visit_ClassDefz0AnalysisSourceFileRegisterModules.visit_ClassDef  s'    9'' $D ('r#   r   )	rm   r   r   r   r   re   ClassDefr   r   r   s   @r!   r   r   s  sd         ! ! ! ! ! !%3< % % % % % % % %r#   r   r   r   c                 v   t          | d          5 }|                                }t          | |          }|                    t	          j        ||                      t                      }|                    |j                   |                                \  }}||fcddd           S # 1 swxY w Y   dS )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   visitre   parser   r   r   )r   r   fsrcanalyzerclzrW   pipeline_parameterss           r!   get_pipeline_input_parametersr     s    
	%	% *ffhh45E5?A AI)  	 	 	 $%%		('(((%(%=%=%?%?""))* * * * * * * * * * * * * * * * * *s   BB..B25B2stringintegernumberbooleanrH   rL   )r:   intfloatboolDictr=   r<   ListUnionInputrH   c                     di d}| t          |           dk    ri S | D ]*}|\  }}}}dt          |         i}|r||d<   ||d         |<   +|S )NrH   rI   r   rJ   defaultrK   )r   meta_type_schema_map)r   parameters_schemaparamr   
param_typehas_defaultrp   props           r!   #generate_pipeline_parameters_schemar     s    !)<<S__11	 5 57<4j+},Z89 	,+DO04,'--r#   r   c                     | j         }| j        j        }t          j                            | j                  }|j        }t          |||          }|S )zcGet pipeline input output schema.

    Args:
        pipeline (Pipeline): The pipeline object.
    )		group_keyr   rm   	importlibutil	find_specr   originPipelineInfomation)r   rF   pipeline_classspecpipeline_file_pathinfos         r!   $get_pipeline_information_by_pipeliner     sN     "I'0N>##H$788Di9KLLDKr#   c                       e Zd ZdZdefdZd Zed             Zed             Z	ed             Z
ed             Zed	             Zed
             Zd ZdS )r   z5Analyze pipeline information, task_name, schema.
    rF   c                 f    || _         || _        || _        d| _        |                                  d S )NF)
_task_name_class_name_source_path_is_custom_call_method_analyze)r   rF   r   source_paths       r!   r   zPipelineInfomation.__init__  s2    #%'&+#r#   c           	      F   t          | j        | j                  \  }}| j        t          v ra| j        t
          v rS|i | _        nt          |          | _        t          | j        d           | _	        t          | j                  | _        d S |`d| _        t          |          | _	        d| j	        d<   i | _        ddi| _        | j        t
          v rt          | j                  | _        d S d S t                              d| j        d| j        t          v d| j        t
          v d	           d | _	        d | _        | j        t          v rt          | j        d           | _	        | j        t
          v rt          | j                  | _        t          |          | _        d S )
NTzBFor binary input such as image audio video, only url is supported.descriptionrJ   rH   Task:  input is defined: , output is defined:  which is not completed)r   r   r   r   r   r   _parameters_schemar   rM   _input_schemarU   _output_schemar   rn   ro   )r   rW   r   s      r!   r   zPipelineInfomation._analyze  s   9t/1 1z ?k))do.M.M!*,''*M+  + '!1$/4!H!HD"3DO"D"DD*.D'!DU!K!KD!e &(D##D ,..&7&H&H### /. NNN???DO!%" %" %"#'?l#B#B#BDE E E "&D"&D+--%5dot%L%L",..&7&H&H#&I' 'D###r#   c                     | j         S r&   )r   r   s    r!   rF   zPipelineInfomation.task_name  s
    r#   c                     | j         S r&   )r   r  s    r!   is_custom_callz!PipelineInfomation.is_custom_call	  s    **r#   c                     | j         S r&   )r  r  s    r!   rN   zPipelineInfomation.input_schema  s    !!r#   c                     | j         S r&   )r  r  s    r!   rS   z PipelineInfomation.output_schema  s    ""r#   c                     | j         S r&   )r  r  s    r!   r   z$PipelineInfomation.parameters_schema  s    &&r#   c                 p    | j         r| j         n| j        | j         r| j        ni | j        r| j        nddidS )NrJ   rH   rW   r   output)r  r  r  r  s    r!   schemazPipelineInfomation.schema  s]     ,0+= $T''#'+'9AD##r-1-@ d))G
 
 	
r#   c                 <    | j                             d|z            S )Nz_%s)__dict__r   )r   r`   s     r!   __getitem__zPipelineInfomation.__getitem__%  s    }  ---r#   N)rm   r   r   r   r:   r   r   propertyrF   r
  rN   rS   r   r  r   r#   r!   r   r     s         #    $ $ $L   X + + X+ " " X" # # X# ' ' X' 	
 	
 X	
. . . . .r#   r   urlc                 :    t          |           }|j        dv rdS dS )zCheck 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4tur#   c                    |                      d          s4|                      d          st          j                            |           r| S ddlm} t          j        | d          }|                    t          |                    S )Nr  r  r   )Imagez-_)
r-   ospathexistsPILr   base64	b64decoder   r   )contentr   image_file_contents      r!   decode_base64_to_imager)  9  s    &!! W%7%7& & gnnW--)'488::g011222r#   c                     |                      d          s4|                      d          st          j                            |           r| S t	          j        |           }|S Nr  r  r-   r!  r"  r#  r%  r&  r'  file_contents     r!   decode_base64_to_audior/  C  c    &!! W%7%7& & gnnW--#G,,Lr#   c                     |                      d          s4|                      d          st          j                            |           r| S t	          j        |           }|S r+  r,  r-  s     r!   decode_base64_to_videor2  L  r0  r#   c                     | S r&   r  r'  s    r!   return_originr5  U  s    Nr#   c                     d S r&   r  r4  s    r!   
decode_boxr7  Y  s    Dr#   c                     dS )zfConvert multipart data to pipeline input.

    Args:
        body (dict): The multipart data body
    Nr  )bodys    r!   )service_multipart_input_to_pipeline_inputr:  ]  	     	Dr#   c                     dS )zjConvert multipart data to service multipart output.

    Args:
        output (dict): Multipart body.
    Nr  )r  s    r!   +pipeline_output_to_service_multipart_outputr=  f  r;  r#   pipeline_infor9  c                 J    t          | d         |          \  }} ||fi |}|S )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
    rF   )&service_base64_input_to_pipeline_input)r>  r   r9  pipeline_inputsr   r   s         r!   call_pipeline_with_jsonrB  {  s?     #Ik"D#* #*OZXo4444FMr#   c                 L   d|vrt          d          |d         }d|v r	|d         }ni }i }t          |t          t          t          f          r||fS t          j        | d          }t          |t                    rht          |t                    r<t          |         t          |
                                          d                   |fS t          |         |          |fS t          |t                    rt          |          }||fS t          |t                    rt|                                D ][\  }}||         }t          |t                    s|||<   (|t          vrt          d|z            t          |         |          ||<   \||fS t          |t                    rw|D ]r}	t          |	t                    r[|                                D ]@\  }}|	|         }|t          vrt          d|z            t          |         |          ||<   A||fc S sdS ||fS )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
    rW   zNo input data!r   Nr   zInvalid input field: %s)r@   r9   r:   r   r   r   r   r=   base64_decoder_mapr<   valuesr;   r?   r   )
rF   r9  service_inputr   pipeline_inputtask_input_infor`   ra   rA   rB   s
             r!   r@  r@    s    d)***MMt,'


N-#sE!233 )j((!oi66O/3'' %)mT** 	+%o6t$$&&8( 8(()8+ , ,-78 8 &o6  *+ +	OU	+	+ )}--z))	OT	*	* )'-- 
 
 
	H 
	HJC )-Jj#.. &+s#++ !:Z!GHHH"4Z"@"G"GN3z))	O
 
 )# 
	2 
	2D$%% 	2"/"5"5 # # P PJC "&cJ!33()B+5*6 7 7 7*<Z*H*O*ON3''%z1111	2
	2 
	2 j((r#   c                     dd l }|                    d|           \  }}|                                }t          t	          j        |          d          }|S )Nr   z.pngutf-8)cv2imencodetobytesr:   r%  	b64encode)imagerK  _
img_encode
bytes_data
base64_strs         r!   encode_numpy_image_to_base64rT    sS    JJJLL//MAz##%%JV%j117;;Jr#   c                 F    t          t          j        |           d          S NrJ  r:   r%  rN  )videos    r!   encode_video_to_base64rY    s    v&&000r#   c                 F    t          t          j        |           d          S rV  rW  )pcms    r!   encode_pcm_to_base64r\        v$$g...r#   c                 F    t          t          j        |           d          S rV  rW  )wavs    r!   encode_wav_to_base64r`    r]  r#   c                 F    t          t          j        |           d          S rV  rW  )btss    r!   encode_bytes_to_base64rc    r]  r#   )rO  rX  r[  r_  bytesc                    t          | t          t          f          r+g }| D ]$}|                    t	          |                     %|S t          | t
                    rli }|                                 D ]S\  }}t          |          t          v r&t          t          |                   |          ||<   At	          |          ||<   T|S t          | t          j
                  r|                                 S t          | t          j                  rt          |           S t          | t          j                  rt          |           S | S r&   )r9   r<   r;   r   _convert_to_python_typer=   r?   rJ   type_to_python_typenpndarraytolistfloatingr   r   r   )inputsresrB   rD   rE   s        r!   rf  rf    s0   &4-((  	6 	6DJJ.t445555
	FD	!	! LLNN 	4 	4DAqAww---,T!WW5a88A033A
	FBJ	'	' }}	FBK	(	( V}}	FBJ	'	' 6{{r#   c                 Z   i }t          j        | g           }t          |t                    r|d         }|                                D ]\  }}||vrZddl}t          ||j                  r9t          j        |	                                          
                                }n|}|||<   d|t          j        t          j        t          j        t          j        t          j        t          j        fv rt          |t                    rjg }|t          j        k    rt          j        }	nt          j        }	|D ]5}
|                    t'          t(          |	                  |
                     6|||<   )t'          t(          |                  |          ||<   Nt(          |         t          j        fv r3t          |t          j                  r|
                                ||<   t          |t          j                  r|
                                ||<   |||<   t-          |          S )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   r9   r<   r?   torchTensorrh  rL   cpurj  r   
OUTPUT_IMGOUTPUT_IMGSOUTPUT_VIDEO
OUTPUT_PCMOUTPUT_PCM_LIST
OUTPUT_WAVr   base64_encoder_mapr	   ri  rf  )rF   pipeline_outputjson_serializable_outputrR   r`   ra   ro  rE   r?   output_item_typerB   s              r!   (pipeline_output_to_service_base64_outputr|  	  s-     "#Ir22L/4(( -)!,%++-- "2 "2
Ul""LLL%.. HUYY[[))0022,-$S)%z'=')>*J,A
 
 

 %&& *000'1'<$$'1'<$! > >DLL!3#$45"77;"= "= > > > >05(--0B$1&1 1(-- "*--*rz3# 3#-,1LLNN$S))rz** 	2,1LLNN$S)),1$S))"#;<<<r#   c                     t           j                            t                    }t	          |dz   d          5 }t          j        |          }d d d            n# 1 swxY w Y   | |v r||          S d S )Nz/pipeline_inputs.jsonrr!  r"  dirname__file__r   jsonload)r   current_work_dirr   input_exampless       r!   get_task_input_examplesr  =  s    wx00	!88#	>	> &!1& & & & & & & & & & & & & & &~d##4   AA Ac                     t           j                            t                    }t	          |dz   d          5 }t          j        |          }d d d            n# 1 swxY w Y   | |v r||          S d S )Nz/pipeline_schema.jsonr~  r  )r   r  r   r  s       r!   get_task_schemasr  F  s    wx00	!88#	>	> !1              v~~d|4r  __main__)
load_indexindex	PIPELINESr   zvalue['filepath']: filepathz, class_name: r  r   r  r  r  rJ   z./task_schema.jsonw)T)ure   r%  r   r'   r!  ior   typingr   urllib.parser   r  numpyrh  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   rn   r:   r   r"   r5   r>   rJ   rM   rU   rX   r\   rb   rq   ru   r   NodeVisitorr   r   r   r   r   r   r   r  r)  r/  r2  r5  r7  r:  r=  IMAGETEXTAUDIOVIDEOBOXDICTLISTNUMBERrD  rB  r@  rT  rY  r\  r`  rc  rx  int64r   rg  rf  r|  r  r  rm   modelscope.utils.ast_utilsr  r  task_schemasr?   r`   ra   regrF   r   printrW   r   r   rN   rS   r  ro   BaseExceptiondumpsr|   r   r   writer  r#   r!   <module>r     sW   



       				             ! ! ! ! ! !      < < < < < <: : : : : : : : : : : :@ @ @ @ @ @ @ @ @ @ @ @ ) ) ) ) ) ) . . . . . . * * * * * * 6 6 6 6 6 6 6 6 . . . . . .	)\ 599 9c 9!9-19 9 9 9  I I I I I2/I /I /I /I /I /Id    "Ic I I I I.s    % % % % %*! ! !&" " "6  D/ / / / /CO / / /d% % % % % % % %2*** * * *<      8    R. R. R. R. R. R. R. R.j     3 3 3      	 	 		 	 		 	 	 O+NMO+O+M:NMNMm	 += &.69   *8) 8) 8)v  1 1 1/ / // / // / /
 *##   Hc 
  01= 1= 1=h     z555555JLLELGn**,, -- --
U%("Y
+)y"8"8ESeJ&7SSzSS   !> =j!:!/ !/E:$++	\0I0I )L(K")$ )$%#3#3It#D#DL$5$5i$@$@M!-&7"/ FF NNN$99i;&>&>&>	*A+ A+ A+,- - - $(L$(M K//'7'7	4'H'H L00(9(9)(D(D(K(K")$ )$% 2> "*)-9A))r3@ #--"HG F !   &,L#
<  A	"C	(	( A	


                 i s%   BJ$$J,+J,K44K8;K8