@@ -215,4 +215,39 @@ def __str__(self) -> str:
215215 parts .append (f"start_at={ self ._start_at .strftime ('%H:%M:%S.%f' )[:- 3 ]} " )
216216 if self ._finish_at is not None :
217217 parts .append (f"finish_at={ self ._finish_at .strftime ('%H:%M:%S.%f' )[:- 3 ]} " )
218- return ' ' .join (parts )
218+ return ' ' .join (parts )
219+
220+ def ref_funcstart (fname :str ,args_ :list , returns_ :list ):
221+ args = []
222+ for arg in args_ :
223+ if isinstance (arg ,Tensor ):
224+ args .append (Param .tensor (arg ))
225+ elif isinstance (arg ,int ) or isinstance (arg ,float ):
226+ args .append (Param .varnum (arg ))
227+ elif isinstance (arg ,bool ):
228+ args .append (Param .varbool (arg ))
229+ elif isinstance (arg ,str ):
230+ args .append (Param .varstr (arg ))
231+ else :
232+ raise TypeError (f"Unsupported argument type: { type (arg )} " )
233+ returns = []
234+ for ret in returns_ :
235+ if isinstance (ret ,Tensor ):
236+ returns .append (Param .tensor (ret ))
237+ elif isinstance (arg ,int ) or isinstance (arg ,float ):
238+ returns .append (Param .varnum (ret ))
239+ elif isinstance (ret ,bool ):
240+ returns .append (Param .varbool (ret ))
241+ elif isinstance (ret ,str ):
242+ returns .append (Param .varstr (ret ))
243+ else :
244+ raise TypeError (f"Unsupported return type: { type (ret )} " )
245+ ir = DeepxIR (fname , args , returns ,'' )
246+ #send(ir)
247+
248+ def FuseFunc (f ):
249+ fname = f .__name__
250+
251+ f ()
252+
253+ return
0 commit comments