
    HThiA                     t   S SK r S SKrS SKJr  S SKJrJr  S SKJrJ	r	J
r
JrJr  S SKJr  S SKJrJr  S SKJr  S SKJrJrJrJr  S	S
KJrJr  S	SKJr  \R<                  " \5      r   S+S\!S\!4S jjr"  S+S\!S\!S\!4S jjr#Sr$S\" 5        S\" 5        S\" 5        S3r%S\4S jr&S\4S jr' S,S\\!\4   S\\	\!\4      4S jjr(\ S,S\!S\\!   4S jj5       r)\SSSSSSSSSSS .
S\!S!\!S"\\*   S#\\!   S\\+   S$\\!   S%\\*   S&\\\
\!   \!4      S'\\\
\!   \!4      S(\\\
\!   \!4      S)\\!   4S* jj5       r,g)-    N)Path)DEFAULT_PROTOCOLPicklingError)AnyDictListOptionalUnion)version)	constantssnapshot_download)HfApi)SoftTemporaryDirectoryget_fastai_versionget_fastcore_versionget_python_version   )loggingvalidate_hf_hub_args)_PY_VERSIONfastai_min_versionfastcore_min_versionc                    [        5       =(       d
    [        5       S:X  a(  [        SU  SU S[        5        S[        5        S3	5      e[        R                  " [        5       5      n[        R                  " [        5       5      nU[        R                  " U 5      :  a  [        SU  S[        5        S	35      eU[        R                  " U5      :  a  [        S
U S[        5        S35      eg)a  
Checks that the installed fastai and fastcore versions are compatible for pickle serialization.

Args:
    fastai_min_version (`str`, *optional*):
        The minimum fastai version supported.
    fastcore_min_version (`str`, *optional*):
        The minimum fastcore version supported.

<Tip>
Raises the following error:

    - [`ImportError`](https://docs.python.org/3/library/exceptions.html#ImportError)
      if the fastai or fastcore libraries are not available or are of an invalid version.

</Tip>
zN/Azfastai>=z and fastcore>=z' are required. Currently using fastai==z and fastcore==.zD`push_to_hub_fastai` and `from_pretrained_fastai` require a fastai>=z+ version, but you are using fastai version zA which is incompatible. Upgrade with `pip install fastai==2.5.6`.zF`push_to_hub_fastai` and `from_pretrained_fastai` require a fastcore>=- version, but you are using fastcore version zD which is incompatible. Upgrade with `pip install fastcore==1.3.27`.N)r   r   ImportErrorr   Version)r   r   current_fastai_versioncurrent_fastcore_versions       T/var/www/auris/envauris/lib/python3.13/site-packages/huggingface_hub/fastai_utils.py_check_fastai_fastcore_versionsr!      s   , 	6"4"65@)*/:N9O P22D2F1G H.014
 	
 %__-?-AB&/C/EF0B CC*+ ,"$% &
 	
  '//2F"GG./ 0,./ 0//
 	
 H    storage_folderc                     SSK n[        R                  R                  U  S35      (       d  [        R                  S5        gUR                  U  S35      nSUR                  5       ;  a  [        R                  S5        gUS   nSUR                  5       ;  a  [        R                  S	5        gUS   nU Vs/ s H  owR                  S
5      (       d  M  UPM     nn[        U5      S:X  a  [        R                  S5        Of[        US   5      R                  S5      S   n	U	S:w  a@  [        R                  " U	5      [        R                  " U5      :  a  [        SU SU	 S35      eU Vs/ s H  owR                  S5      (       d  M  UPM     n
n[        U
5      S:X  a  [        R                  S5        g[        U
S   5      R                  S5      S   nUS:w  aA  [        R                  " U5      [        R                  " U5      :  a  [        SU SU S35      egg! [         a    [        S5      ef = fs  snf s  snf )a  
Checks that the `pyproject.toml` file in the directory `storage_folder` has fastai and fastcore versions
that are compatible with `from_pretrained_fastai` and `push_to_hub_fastai`. If `pyproject.toml` does not exist
or does not contain versions for fastai and fastcore, then it logs a warning.

Args:
    storage_folder (`str`):
        Folder to look for the `pyproject.toml` file.
    fastai_min_version (`str`, *optional*):
        The minimum fastai version supported.
    fastcore_min_version (`str`, *optional*):
        The minimum fastcore version supported.

<Tip>
Raises the following errors:

    - [`ImportError`](https://docs.python.org/3/library/exceptions.html#ImportError)
      if the `toml` module is not installed.
    - [`ImportError`](https://docs.python.org/3/library/exceptions.html#ImportError)
      if the `pyproject.toml` indicates a lower than minimum supported version of fastai or fastcore.

</Tip>
r   Nzn`push_to_hub_fastai` and `from_pretrained_fastai` require the toml module. Install it with `pip install toml`.z/pyproject.tomlzThere is no `pyproject.toml` in the repository that contains the fastai `Learner`. The `pyproject.toml` would allow us to verify that your fastai and fastcore versions are compatible with those of the model you want to load.zbuild-systemzThere is no `build-system` section in the pyproject.toml of the repository that contains the fastai `Learner`. The `build-system` would allow us to verify that your fastai and fastcore versions are compatible with those of the model you want to load.requireszThere is no `requires` section in the pyproject.toml of the repository that contains the fastai `Learner`. The `requires` would allow us to verify that your fastai and fastcore versions are compatible with those of the model you want to load.fastaizPThe repository does not have a fastai version specified in the `pyproject.toml`.=    z*`from_pretrained_fastai` requires fastai>=z$ version but the model to load uses z which is incompatible.fastcorezRThe repository does not have a fastcore version specified in the `pyproject.toml`.z,`from_pretrained_fastai` requires fastcore>=r   )tomlModuleNotFoundErrorr   ospathisfileloggerwarningloadkeys
startswithlenstr	partitionr   r   )r#   r   r   r+   pyproject_tomlbuild_system_tomlpackage_versionspckfastai_packagesfastai_versionfastcore_packagesfastcore_versions               r    )_check_fastai_fastcore_pyproject_versionsr@   J   sI   :
 77>>^,O<==	
 	YY.!1ABN^0022.	
 	&~6*//11.	
 	(4 '7S&6s..:Rs&6OS
?q ij _Q/0::3?BRGOON$CgooVhFi$i./ 0"##:<  )9W(8NN:<V(8W
"kl 034>>sCAFr!goo6F&G'//ZnJo&o23 4,--DF  'p!u  
3
 	

N T Xs#   H 9H8H8-H=
H=H5u   ---
tags:
- fastai
---

# Amazing!

🥳 Congratulations on hosting your fastai model on the Hugging Face Hub!

# Some next steps
1. Fill out this model card with more information (see the template below and the [documentation here](https://huggingface.co/docs/hub/model-repos))!

2. Create a demo in Gradio or Streamlit using 🤗 Spaces ([documentation here](https://huggingface.co/docs/hub/spaces)).

3. Join the fastai community on the [Fastai Discord](https://discord.com/invite/YKrxeNn)!

Greetings fellow fastlearner 🤝! Don't forget to delete this content from your model card.


---


# Model card

## Model description
More information needed

## Intended uses & limitations
More information needed

## Training and evaluation data
More information needed
zB[build-system]
requires = ["setuptools>=40.8.0", "wheel", "python=z", "fastai=z", "fastcore=z6"]
build-backend = "setuptools.build_meta:__legacy__"
repo_dirc                     U S-  nUR                  5       (       d/  UR                  SSS9 nUR                  [        5        SSS5        gg! , (       d  f       g= f)zw
Creates a model card for the repository.

Args:
    repo_dir (`Path`):
        Directory where model card is created.
z	README.mdwutf-8encodingN)existsopenwriteREADME_TEMPLATE)rA   readme_pathfs      r    _create_model_cardrM      sR     [(KcG4GGO$ 54  44   A
Ac                     U S-  nUR                  5       (       d/  UR                  SSS9 nUR                  [        5        SSS5        gg! , (       d  f       g= f)z
Creates a `pyproject.toml` for the repository.

Args:
    repo_dir (`Path`):
        Directory where `pyproject.toml` is created.
zpyproject.tomlrC   rD   rE   N)rG   rH   rI   PYPROJECT_TEMPLATE)rA   pyproject_pathrL   s      r    _create_model_pyprojectrR      sT      00N  ""  w 71GG&' 87 #77rN   save_directoryconfigc                 l   [        5         [        R                  " USS9  Ub  [        U[        5      (       d  [        S[        U5       S35      e[        R                  R                  U[        R                  5      n[        US5       n[        R                  " X$5        SSS5        [        [        U5      5        [!        [        U5      5        [        U5      U l        [        R                  " USS9   U R#                  S[$        S9  g! , (       d  f       Nq= f! [&         a    ['        S	5      ef = f)
a  
Saves a fastai learner to `save_directory` in pickle format using the default pickle protocol for the version of python used.

Args:
    learner (`Learner`):
        The `fastai.Learner` you'd like to save.
    save_directory (`str` or `Path`):
        Specific directory in which you want to save the fastai learner.
    config (`dict`, *optional*):
        Configuration object. Will be uploaded as a .json file. Example: 'https://huggingface.co/espejelomar/fastai-pet-breeds-classification/blob/main/config.json'.

<Tip>

Raises the following error:

    - [`RuntimeError`](https://docs.python.org/3/library/exceptions.html#RuntimeError)
      if the config file provided is not a dictionary.

</Tip>
T)exist_okNz(Provided config should be a dict. Got: ''rC   	model.pkl)fnamepickle_protocolzYou are using a lambda function, i.e., an anonymous function. `pickle` cannot pickle function objects and requires that all functions have names. One possible solution is to name the function.)r!   r-   makedirs
isinstancedictRuntimeErrortyper.   joinr   CONFIG_NAMErH   jsondumprM   r   rR   exportr   r   )learnerrS   rT   r.   rL   s        r    _save_pretrained_fastairf      s    2 $%KK. &$''!I$v,WXYZZww||NI,A,AB$_IIf   tN+,D01 'GLKK.

, 	 	
 _  
E
 	

s   
D7D 
DD3repo_idrevisionc                     [        5         [        R                  R                  U 5      (       d  [	        U US[        5       S9nOU n[        U5        SSKJn  U" [        R                  R                  US5      5      $ )a4  
Load pretrained fastai model from the Hub or from a local directory.

Args:
    repo_id (`str`):
        The location where the pickled fastai.Learner is. It can be either of the two:
            - Hosted on the Hugging Face Hub. E.g.: 'espejelomar/fatai-pet-breeds-classification' or 'distilgpt2'.
              You can add a `revision` by appending `@` at the end of `repo_id`. E.g.: `dbmdz/bert-base-german-cased@main`.
              Revision is the specific model version to use. Since we use a git-based system for storing models and other
              artifacts on the Hugging Face Hub, it can be a branch name, a tag name, or a commit id.
            - Hosted locally. `repo_id` would be a directory containing the pickle and a pyproject.toml
              indicating the fastai and fastcore versions used to build the `fastai.Learner`. E.g.: `./my_model_directory/`.
    revision (`str`, *optional*):
        Revision at which the repo's files are downloaded. See documentation of `snapshot_download`.

Returns:
    The `fastai.Learner` model in the `repo_id` repo.
r&   )rg   rh   library_namelibrary_versionr   )load_learnerrX   )
r!   r-   r.   isdirr   r   r@   fastai.learnerrl   r`   )rg   rh   r#   rl   s       r    from_pretrained_fastairo   )  sd    . $%
 77==!!*!.0	
 !-n=+^[ABBr"   z(Push FastAI model using huggingface_hub.)
commit_messageprivatetokenrT   branch	create_prallow_patternsignore_patternsdelete_patternsapi_endpointrp   rq   rr   rs   rt   ru   rv   rw   rx   c                   [        5         [        US9nUR                  XUSS9R                  n[	        5        n[        U5      U-  n[        XUS9  UR                  UUUUUUUU	U
S9	sSSS5        $ ! , (       d  f       g= f)a	  
Upload learner checkpoint files to the Hub.

Use `allow_patterns` and `ignore_patterns` to precisely filter which files should be pushed to the hub. Use
`delete_patterns` to delete existing remote files in the same commit. See [`upload_folder`] reference for more
details.

Args:
    learner (`Learner`):
        The `fastai.Learner' you'd like to push to the Hub.
    repo_id (`str`):
        The repository id for your model in Hub in the format of "namespace/repo_name". The namespace can be your individual account or an organization to which you have write access (for example, 'stanfordnlp/stanza-de').
    commit_message (`str`, *optional*):
        Message to commit while pushing. Will default to :obj:`"add model"`.
    private (`bool`, *optional*):
        Whether or not the repository created should be private.
        If `None` (default), will default to been public except if the organization's default is private.
    token (`str`, *optional*):
        The Hugging Face account token to use as HTTP bearer authorization for remote files. If :obj:`None`, the token will be asked by a prompt.
    config (`dict`, *optional*):
        Configuration object to be saved alongside the model weights.
    branch (`str`, *optional*):
        The git branch on which to push the model. This defaults to
        the default branch as specified in your repository, which
        defaults to `"main"`.
    create_pr (`boolean`, *optional*):
        Whether or not to create a Pull Request from `branch` with that commit.
        Defaults to `False`.
    api_endpoint (`str`, *optional*):
        The API endpoint to use when pushing the model to the hub.
    allow_patterns (`List[str]` or `str`, *optional*):
        If provided, only files matching at least one pattern are pushed.
    ignore_patterns (`List[str]` or `str`, *optional*):
        If provided, files matching any of the patterns are not pushed.
    delete_patterns (`List[str]` or `str`, *optional*):
        If provided, remote files matching any of the patterns will be deleted from the repo.

Returns:
    The url of the commit of your model in the given repository.

<Tip>

Raises the following error:

    - [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
      if the user is not log on to the Hugging Face Hub.

</Tip>
)endpointT)rg   rr   rq   rV   )rT   )	rg   rr   folder_pathrp   rh   rt   ru   rv   rw   N)r!   r   create_reporg   r   r   rf   upload_folder)re   rg   rp   rq   rr   rT   rs   rt   ru   rv   rw   rx   apitmp
saved_paths                  r    push_to_hub_fastair   V  s    B $%

&CoogGVZo[ccG 
 	!S#Y(
FC  "))++ ! 

 
"	!	!s   /A22
B )z2.4z1.3.27)N)-rb   r-   pathlibr   pickler   r   typingr   r   r   r	   r
   	packagingr   huggingface_hubr   r   huggingface_hub.hf_apir   huggingface_hub.utilsr   r   r   r   utilsr   r   utils._runtimer   
get_logger__name__r0   r6   r!   r@   rJ   rP   rM   rR   rf   ro   boolr]   r    r"   r    <module>r      sP    	  2 3 3  8 (  1 ' 
		H	% $ (.
.
.
f $ (^^^ ^B D44F4H3IUgUiTjjw  yM  yO  xP P % %(d ($ (,5
#t)$5
 T#s(^$5
p  #)C)Csm)C )CX 
 E"!  $6:7;7;"&R
 R
 	R

 d^R
 C=R
 TNR
 SMR
 ~R
 U49c>23R
 eDIsN34R
 eDIsN34R
 3-R
 R
r"   