
    FPhe                     |    d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
mZ ddZd ZddZd	 Zdd
ZddZddZy)    N)HUBDatasetStatsAuth)HUB_API_ROOTHUB_WEB_ROOTPREFIX)LOGGERSETTINGSc                     t        | d       y)a&  
    Log in to the Ultralytics HUB API using the provided API key.

    Args:
        api_key (str, optional): May be an API key or a combination API key and model ID, i.e. key_id

    Example:
        ```python
        from ultralytics import hub

        hub.login('API_KEY')
        ```
    T)verboseNr   )api_keys    cC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\ultralytics/hub/__init__.pyloginr      s     	$    c                  v    dt         d<   t        j                          t        j                  t         d       y)z
    Log out of Ultralytics HUB by removing the API key from the settings file. To log in again, use 'yolo hub login'.

    Example:
        ```python
        from ultralytics import hub

        hub.logout()
        ```
     r   u6   logged out ✅. To log in again, use 'yolo hub login'.N)r
   saver	   infor    r   r   logoutr      s+     HYMMO
KK6(PQRr   c                 ,   t        j                  t         dt               j                  | d      }|j
                  dk(  rt        j                  t         d       yt        j                  t         d|j
                   d|j                          y)	z,Reset a trained model to an untrained state.z/model-reset)apiKeymodelIdjson   zModel reset successfullyNzModel reset failure  )requestspostr   r   r   status_coder	   r   r   warningreason)model_idrs     r   reset_modelr%   ,   sn    l3TV^^`h:ijA}}vh678
NNfX1!--!((LMr   c                  D    ddl m}  t         |        d   dd       ddgz   S )z/Returns a list of HUB-supported export formats.r   export_formatsArgument   Nultralytics_tfliteultralytics_coreml)ultralytics.engine.exporterr(   listr'   s    r   export_fmts_hubr/   5   s+    : ,QR015IK_4```r   c                 b   |t               v sJ d| dt                       t        j                  t         d|  dd|idt	               j
                  i      }|j                  dk(  s)J t         | d	|j                   d
|j                          t        j                  t         | d       y)zExport a model to all formats.Unsupported export format '', valid formats are z/v1/models/z/exportformatz	x-api-key)r   headersr   z export failure r   u    export started ✅N)r/   r   r   r   r   r   r    r   r"   r	   r   r#   r3   r$   s      r   export_modelr6   ;   s    _&&v*EfXMbcrctbu(vv&k(7C$f-*DFNN;	=A ==C^F8F83CAMM?RSTUT\T\S]!^^
KK6(6("567r   c                 <   |t               v sJ d| dt                       t        j                  t         dt	               j
                  | |d      }|j                  dk(  s)J t         | d|j                   d|j                          |j                         S )	z3Get an exported model dictionary with download URL.r1   r2   z/get-export)r   r   r3   r   r   z get_export failure r   )
r/   r   r   r   r   r   r    r   r"   r   r5   s      r   
get_exportr8   E   s    _&&v*EfXMbcrctbu(vv&k2$(FNN%-$*,	-A
 ==CbF8F83GVWXYX`X`Wa!bb668Or   c                 t    t        | |      j                          t        j                  dt         d       y)a  
    Function for error-checking HUB dataset Zip file before upload. It checks a dataset for errors before it is uploaded
    to the HUB. Usage examples are given below.

    Args:
        path (str, optional): Path to data.zip (with data.yaml inside data.zip). Defaults to ''.
        task (str, optional): Dataset task. Options are 'detect', 'segment', 'pose', 'classify'. Defaults to 'detect'.

    Example:
        ```python
        from ultralytics.hub import check_dataset

        check_dataset('path/to/coco8.zip', task='detect')  # detect dataset
        check_dataset('path/to/coco8-seg.zip', task='segment')  # segment dataset
        check_dataset('path/to/coco8-pose.zip', task='pose')  # pose dataset
        ```
    pathtasku7   Checks completed correctly ✅. Upload this dataset to z/datasets/.N)r   get_jsonr	   r   r   r:   s     r   check_datasetr>   Q   s.    $ D)224
KKI,Wbcdr   )r   )r   torchscript)r   detect)r   ultralytics.data.utilsr   ultralytics.hub.authr   ultralytics.hub.utilsr   r   r   ultralytics.utilsr	   r
   r   r   r%   r/   r6   r8   r>   r   r   r   <module>rE      s@     2 % D D . "S Na8	er   