Ë
    ˆ\;j¯$  ã                   óþ   — d dl Z d dlZd dlZd dlZd dlmZ g ZdZdZdZ	e j                  j                  e j                  j                  dddd	«      «      Zd
„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zdd„Zdd„Zdd„Zy)é    N)Úget_path_from_urlz~/.cacheÚdependenciesz
hubconf.pyÚ~z.cacheÚpaddleÚhubc                 óØ   — t         j                  j                  | «      rKt         j                  j                  | «      rt        j                  | «       y t        j                  | «       y y )N)ÚosÚpathÚexistsÚisfileÚremoveÚshutilÚrmtree)r
   s    úXG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/hapi/hub.pyÚ_remove_if_existsr      s>   € Ü	‡w�w‡~�~�dÔÜ�7‰7�>‰>˜$ÔÜ�I‰I�d�Oä�M‰M˜$Õð	 ó    c                 óH  — t         j                  j                  d|«       	 t        | «      }t         j                  j                  | «       t         j                  j                  |«       |S # t        $ r+ t         j                  j                  |«       t        d«      ‚w xY w)Nr   zPPlease make sure config exists or repo error messages above fixed when importing)	Úsysr
   ÚinsertÚ
__import__ÚmodulesÚpopÚImportErrorr   ÚRuntimeError)ÚnameÚrepo_dirÚ
hub_modules      r   Ú_import_moduler   &   s|   € Ü‡H�H‡O�O�A�xÔ ð
Ü Ó%ˆ
Ü�‰�‰˜Ôô ‡H�H‡O�O�HÔàÐøô ò 
Ü�‰�‰˜Ô!ÜØ^ó
ð 	
ð
ús   ¢*A- Á-4B!c                 óV   — |dk(  rd| › d|› d|› d�S |dk(  rdj                  | ||«      S y )NÚgithubzhttps://github.com/Ú/z	/archive/ú.zipÚgiteez1https://gitee.com/{}/{}/repository/archive/{}.zip)Úformat)Ú
repo_ownerÚ	repo_nameÚbranchÚsources       r   Ú_git_archive_linkr)   6   sP   € Ø�Òà! * ¨Q¨y¨k¸À6À(È$ÐOð	
ð 
�7Ò	ØB×IÑIØ˜	 6ó
ð 	
ð 
r   c                 ó|   — |dk(  rdnd}d| v r| j                  d«      \  }}n| }|j                  d«      \  }}|||fS )Nr    ÚmainÚmasterÚ:r!   )Úsplit)Úrepor(   r'   Ú	repo_infor%   r&   s         r   Ú_parse_repo_infor1   A   sN   € Ø Ò)‰V¨x€FØ
ˆd�{Ø ŸJ™J s›OÑˆ	‘6àˆ	Ø%ŸO™O¨CÓ0Ñ€J�	Ø�y &Ð(Ð(r   c                 ól   — 	 ddl m}  || «      j	                  d¬«       y # t        $ r	 ddlm} Y Œ*w xY w)Nr   )ÚPathT)Úexist_ok)Úpathlibr3   r   Úpathlib2Úmkdir)Údirnamer3   s     r   Ú
_make_dirsr9   K   s5   € ð"Ý ñ 	ˆƒM×Ñ ÐÕ&øô ò "ß!ð"ús   ‚! ¡3²3c                 óŽ  — t         }t        |«       t        | |«      \  }}}|j                  dd«      }t        j
                  j                  |dj                  |||g«      «      }	| xr t        j
                  j                  |	«      }
|
r'|r#t        j                  j                  d|	› d�«       |	S t        j
                  j                  ||dz   «      }t        |«       t        ||||¬«      }t        ||| d¬«      }t        j                  ||«       t!        j"                  |«      5 }|j%                  «       d	   j&                  }t        j
                  j                  ||«      }t        |«       |j)                  |«       d d d «       t        |«       t        |	«       t        j                  |	«       |	S # 1 sw Y   Œ7xY w)
Nr!   Ú_zUsing cache found in Ú
r"   ©r(   F)Úcheck_existÚ
decompressr   )ÚHUB_DIRr9   r1   Úreplacer	   r
   Újoinr   r   ÚstderrÚwriter   r)   r   r   ÚmoveÚzipfileÚZipFileÚinfolistÚfilenameÚ
extractall)r/   Úforce_reloadÚverboser(   Úhub_dirr%   r&   r'   Únormalized_brr   Ú	use_cacheÚcached_fileÚurlÚfpathÚcached_zipfileÚextraced_repo_nameÚextracted_repos                    r   Ú_get_cache_or_reloadrV   S   s†  € ä€GäˆwÔô %5°T¸6Ó$BÑ!€J�	˜6ð
 —N‘N 3¨Ó,€Mô
 �w‰w�|‰|Ø�—‘˜: y°-Ð@ÓAó€Hð "Ð!Ò?¤r§w¡w§~¡~°hÓ'?€IáÙÜ�J‰J×ÑÐ4°X°J¸bÐAÔBð6 €Oô3 —g‘g—l‘l 7¨M¸FÑ,BÓCˆÜ˜+Ô&ä 
¨I°vÀfÔMˆä!ØØØ(Ð(Øô	
ˆô 	�‰�E˜;Ô'ä�_‰_˜[Ô)¨^Ø!/×!8Ñ!8Ó!:¸1Ñ!=×!FÑ!FÐÜŸW™WŸ\™\¨'Ð3EÓFˆNÜ˜nÔ-à×%Ñ% gÔ.÷ *ô 	˜+Ô&Ü˜(Ô#ä�‰�N HÔ-à€O÷ *Ð)ús   Ä+AF;Æ;Gc                 óŽ   — t        |t        «      st        d«      ‚t        | |d«      }|�t	        |«      st        d|› d�«      ‚|S )zload entry from hubconfz5Invalid input: model should be a str of function nameNzCannot find callable z in hubconf)Ú
isinstanceÚstrÚ
ValueErrorÚgetattrÚcallabler   )Úmr   Úfuncs      r   Ú_load_entry_from_hubconfr_   Š   sQ   € ä�dœCÔ ÜØCó
ð 	
ô �1�d˜DÓ!€Dà€|œ8 Dœ>ÜÐ2°4°&¸ÐDÓEÐEà€Kr   c                 ó:   — 	 t        | «       y# t        $ r Y yw xY w)NTF)r   r   )r   s    r   Ú_check_module_existsra   ™   s$   € ðÜ�4ÔØøÜò Ùðús   ‚ Ž	™c                 óÔ   — t        | t        d «      }|�P|D �cg c]  }t        |«      rŒ|‘Œ }}t        |«      r)t	        dj                  dj                  |«      «      «      ‚y y c c}w )NzMissing dependencies: {}z, )r[   ÚVAR_DEPENDENCYra   Úlenr   r$   rB   )r]   r   ÚpkgÚmissing_depss       r   Ú_check_dependenciesrg   ¡   sw   € Ü˜1œn¨dÓ3€LàÐá'ó
Ù'�CÔ/CÀCÕ/HŠC˜<ð 	ð 
ô ˆ|ÔÜØ*×1Ñ1°$·)±)¸LÓ2IÓJóð ð ð	  ùò
s
   ˜A%©A%c           	      ó  — |dvrt        d|› d�«      ‚|dv rt        | |d|¬«      } t        t        j	                  d«      d   | «      }t        |«      D �cg c]*  }t        t        ||«      «      r|j                  d	«      s|‘Œ, }}|S c c}w )
a  
    List all entrypoints available in `github` hubconf.

    Args:
        repo_dir(str): Github or local path.

            - github path (str): A string with format "repo_owner/repo_name[:tag_name]" with an optional
              tag/branch. The default branch is `main` if not specified.
            - local path (str): Local repo path.

        source (str): `github` | `gitee` | `local`. Default is `github`.
        force_reload (bool, optional): Whether to discard the existing cache and force a fresh download. Default is `False`.

    Returns:
        entrypoints: A list of available entrypoint names.

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> paddle.hub.list('lyuwenyu/paddlehub_demo:main', source='github', force_reload=False)

    ©r    r#   ÚlocalúUnknown source: "ú0". Allowed values: "github" | "gitee" | "local".©r    r#   Tr=   Ú.r   r;   )	rZ   rV   r   ÚMODULE_HUBCONFr.   Údirr\   r[   Ú
startswith)r   r(   rK   r   ÚfÚentrypointss         r   Úlistrt   ®   s°   € ð2 Ð1Ñ1ÜØ ˜xÐ'WÐXó
ð 	
ð Ð$Ñ$Ü'Ø�l D°ô
ˆô  ¤× 4Ñ 4°SÓ 9¸!Ñ <¸hÓG€Jô �Z”óá ˆAÜ”G˜J¨Ó*Ô+°A·L±LÀÔ4Eò 	
Ø ð ð ð Ðùòs   Á/B	c                 óÂ   — |dvrt        d|› d�«      ‚|dv rt        | |d|¬«      } t        t        j	                  d«      d   | «      }t        ||«      }|j                  S )	a±  
    Show help information of model

    Args:
        repo_dir(str): Github or local path.

            - github path (str): A string with format "repo_owner/repo_name[:tag_name]" with an optional
              tag/branch. The default branch is `main` if not specified.
            - local path (str): Local repo path.

        model (str): Model name.
        source (str): `github` | `gitee` | `local`. Default is `github`.
        force_reload (bool, optional): Default is `False`.

    Returns:
        docs

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> paddle.hub.help('lyuwenyu/paddlehub_demo:main', model='MM', source='github')

    ri   rk   rl   rm   Tr=   rn   r   )rZ   rV   r   ro   r.   r_   Ú__doc__)r   Úmodelr(   rK   r   Úentrys         r   Úhelpry   Ü   sy   € ð4 Ð1Ñ1ÜØ ˜xÐ'WÐXó
ð 	
ð Ð$Ñ$Ü'Ø�l D°ô
ˆô  ¤× 4Ñ 4°SÓ 9¸!Ñ <¸hÓG€Jä$ Z°Ó7€Eà�=‰=Ðr   c                 óÐ   — |dvrt        d|› d�«      ‚|dv rt        | |d|¬«      } t        t        j	                  d«      d   | «      }t        |«       t        ||«      } |d	i |¤ŽS )
aÓ  
    Load model

    Args:
        repo_dir(str): Github or local path.

            - github path (str): A string with format "repo_owner/repo_name[:tag_name]" with an optional
              tag/branch. The default branch is `main` if not specified.
            - local path (str): Local repo path.

        model (str): Model name.
        source (str): `github` | `gitee` | `local`. Default is `github`.
        force_reload (bool, optional): Default is `False`.
        **kwargs: Parameters using for model.

    Returns:
        paddle model.

    Examples:
        .. code-block:: python

            >>> import paddle
            >>> paddle.hub.load('lyuwenyu/paddlehub_demo:main', model='MM', source='github')

    ri   rk   rl   rm   Tr=   rn   r   © )rZ   rV   r   ro   r.   rg   r_   )r   rw   r(   rK   Úkwargsr   rx   s          r   Úloadr}     sƒ   € ð4 Ð1Ñ1ÜØ ˜xÐ'WÐXó
ð 	
ð Ð$Ñ$Ü'Ø�l D°ô
ˆô  ¤× 4Ñ 4°SÓ 9¸!Ñ <¸hÓG€Jä˜
Ô#ä$ Z°Ó7€Eá‰?�6‰?Ðr   )Tr    )r    F)r	   r   r   rF   Úpaddle.utils.downloadr   Ú__all__ÚDEFAULT_CACHE_DIRrc   ro   r
   Ú
expanduserrB   r@   r   r   r)   r1   r9   rV   r_   ra   rg   rt   ry   r}   r{   r   r   Ú<module>r‚      s‘   ðó 
Û Û 
Û å 3à
€àÐ Ø€Ø€Ø
�'‰'×
Ñ
˜RŸW™WŸ\™\¨#¨x¸À5ÓIÓ
J€ò òò 
ò)ò'ó4ònòò
ó+ó\(ôV*r   