
    jL                        d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZm	Z	 d dl
mZmZ d dlmZmZmZ d dlmZ ej        j        d             Zej                             edd	
           d          d             Zej                             edd	
           d          d             Zej                            dd          ej                             edd	
           d          d                         Zej                             edd	
           d          d             Zej                             edd	
           d          d             ZdS )    N)Path)MODELSOURCE)YOLOdownload)
ASSETS_URLDATASETS_DIRSETTINGS)check_requirementsc                  |    dt           d<   t          d                              ddddd	           dt           d<   d
S )z/Test training with TensorBoard logging enabled.Ttensorboardyolo26n-cls.yaml
imagenet10       FcpudataimgszepochsplotsdeviceNr
   r   train     \/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/tests/test_integrations.pytest_tensorboardr      sH     #H]	""BqPU^c"ddd#H]r   rayF)installzray[tune] not installed)reasonc            
      Z    t          d                              dddddddd           d	S )
z:Tune YOLO model using Ray for hyperparameter optimization.r   Tr      r   Fr   )use_rayr   grace_period
iterationsr   r   r   r   N)r   tuner   r   r   test_model_ray_tuner(      sH     		!!<aARXYafot "     r   mlflowzmlflow not installedc                  |    dt           d<   t          d                              ddddd	           dt           d<   d
S )z+Test training with MLflow tracking enabled.Tr)   r   r   r   r   Fr   r   Nr   r   r   r   test_mlflowr+   !   sH     HX	""BqPU^c"dddHXr   TzQTest failing in scheduled CI https://github.com/ultralytics/ultralytics/pull/8868c                     ddl } dt          d<   d}|t          j        d<   dt          j        d<   t	          d	                              d
dddd           |                                 j        j        }|dk    s
J d            |                                 j        j	        }dt          j        d<   t	          d	                              d
dddd           | 
                    |          j        j        }|dk    s
J d            t          j                            dd           t	          d	                              d
dddd           | 
                    |          j        j        }|dk    s
J d            dt          d<   dS )zVEnsure MLflow run status matches MLFLOW_KEEP_RUN_ACTIVE environment variable settings.r   NTr)   zTest Run
MLFLOW_RUNTrueMLFLOW_KEEP_RUN_ACTIVEr   r   r   r#   Fr   r   RUNNINGz<MLflow run should be active when MLFLOW_KEEP_RUN_ACTIVE=TrueFalse)run_idFINISHEDz<MLflow run should be ended when MLFLOW_KEEP_RUN_ACTIVE=FalsezLMLflow run should be ended by default when MLFLOW_KEEP_RUN_ACTIVE is not set)r)   r
   osenvironr   r   
active_runinfostatusr2   get_runpop)r)   run_namer8   r2   s       r   test_mlflow_keep_run_activer<   )   s    MMMHXH'BJ| ,2BJ'(	""BqPU^c"ddd  %,FY ^  %,F ,3BJ'(	""BqPU^c"ddd^^6^**/6FZ!_ JNN+T222	""BqPU^c"ddd^^6^**/6FZ!oHXr   tritonclientztritonclient[all] not installedc                 v   t          d           ddlm} d}| dz  }||z  }t          t                                        dd          }|d	z                      dd
           t          |                              |d	z  dz             |dz  	                                 d}t          j        d| d           t          j        d| d| dd                              d                                          } |ddd          }t          d          D ]`}	t!          j        t$                    5  |                    |          sJ 	 ddd            n # 1 swxY w Y   t)          j        d           a t          d| d          t,                     t          j        d| d           dS )z:Test NVIDIA Triton Server functionalities with YOLO model.ztritonclient[all]r   )InferenceServerClientyolotriton_repoonnxT)formatdynamic1)parentsexist_okz
model.onnxzconfig.pbtxtz%nvcr.io/nvidia/tritonserver:23.09-py3zdocker pull )shellzdocker run -d --rm -v z:/models -p 8000:8000 z( tritonserver --model-repository=/modelszutf-8zlocalhost:8000F)urlverbosessl
   Nr#   zhttp://localhost:8000/detectzdocker kill )r   tritonclient.httpr?   r   r   exportmkdirr   renametouch
subprocesscallcheck_outputdecodestriprange
contextlibsuppress	Exceptionis_model_readytimesleepr   )
tmp_pathr?   
model_namerA   triton_modelftagcontainer_idtriton_client_s
             r   test_tritonrg   I   sA    *+++777777 J]*K+L 	U&$77A Ctd;;;GGNN<#%4555N"))+++ 2C O(3((5555 	u[uuuuu	
 	
 	
 
	  *).>SXYYYM 2YY   ++ 	 	 //
;;;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
1 :D	.*	.	.99&AAA O1<11>>>>>>s   9EE#	&E#	zfaster-coco-evalzfaster-coco-eval not installedc                  d   ddl m}  ddlm} ddlm} ddddd	} | |
          } |             d|_        t          t           dt          dz             |
                    |j                  }ddddd	} ||
          } |             d|_        t          t           dt          dz             |
                    |j                  }ddddd	} ||
          } |             d|_        t          t           dt          dz             |
                    |j                  }dS )zGValidate YOLO model predictions on COCO dataset using faster-coco-eval.r   )DetectionValidator)PoseValidator)SegmentationValidatorz
yolo26n.ptz
coco8.yamlT@   )modelr   	save_jsonr   )argsz/instances_val2017.jsonzcoco8/annotations)dirzyolo26n-seg.ptzcoco8-seg.yamlzcoco8-seg/annotationszyolo26n-pose.ptzcoco8-pose.yamlz/person_keypoints_val2017.jsonzcoco8-pose/annotationsN)ultralytics.models.yolo.detectri   ultralytics.models.yolo.poserj   ultralytics.models.yolo.segmentrk   is_cocor   r   r	   	eval_jsonstats)ri   rj   rk   ro   	validatorrf   s         r   test_faster_coco_evalrx   }   s    BAAAAA::::::EEEEEE!<dUWXXD""---IIKKKI
333H[9[\\\\IO,,A%/?d]_``D%%4000IIKKKI
333H_9_````IO,,A&0APT_abbD4(((IIKKKI
:::Og@ghhhhIO,,AAAr   )rY   r4   rS   r]   pathlibr   pytesttestsr   r   ultralyticsr   r   ultralytics.utilsr   r	   r
   ultralytics.utils.checksr   markslowr   skipifr(   r+   r<   rg   rx   r   r   r   <module>r      s^       				                     & & & & & & & & @ @ @ @ @ @ @ @ @ @ 7 7 7 7 7 7 $ $ $ **5%@@@@Ibcc  dc **8UCCCCLbcc  dc D!tuu**8UCCCCLbcc  dc vu< **>5IIIIRstt0? 0? ut0?f **+=uMMMMVvww- - xw- - -r   