
    rh؇                     V   d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZ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 ddlmZ dd	lmZmZmZmZmZm Z  dd
l!m"Z"m#Z#  e jH                  e%      Z& ejN                         Z(d Z)dee*ejV                  f   ddfdZ,dee*ejV                  f   de-e*   fdZ.dee*ejV                  f   de-e*   fdZ/dee*ejV                  f   de-e*   fdZ0dee*ejV                  f   de-e*   fdZ1ddde*dee*ejV                  f   de2de3fdZ4	 	 	 	 	 	 	 	 	 d1dee*ejV                  f   de*deee*ejV                  f      de2dee2   dee5e*e*f      d eee2e*f      d!ee*   d"e2d#ee*   d$ee*   de*fd%Z6	 	 	 	 	 	 	 	 	 d1d&e*dee*ejV                  f   deee*ejV                  f      de2dee2   dee5e*e*f      d eee2e*f      d!ee*   d"e2d#ee*   d'ee*   de3fd(Z7d2d)ed*ee*ejV                  f   d+ee5   de-e*   fd,Z8d- Z9d.Z:	 d3d/Z;d4d0Z<y)5z3Utilities to dynamically load objects from the Hub.    N)Path)
ModuleType)AnyOptionalUnion)try_to_load_from_cache)version   )HF_MODULES_CACHE TRANSFORMERS_DYNAMIC_MODULE_NAMEcached_fileextract_commit_hashis_offline_modelogging)VersionComparisonsplit_package_versionc                  <   t         t        j                  v ryt        j                  j                  t                t	        j
                  t         d       t        t               dz  } | j                         s%| j                          t        j                          yy)z_
    Creates the cache directory for modules with an init, and adds it to the Python path.
    NTexist_ok__init__.py)r   syspathappendosmakedirsr   existstouch	importlibinvalidate_caches)	init_paths    t/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/dynamic_module_utils.pyinit_hf_modulesr"   3   sj    
 388#HHOO$%KK 40%&6I##%     namereturnc                 X   t                t        t              | z  j                         }|j                  j                         st        |j                         t        j                  |d       |dz  }|j                         s%|j                          t        j                          yy)z
    Creates a dynamic module in the cache directory for modules.

    Args:
        name (`str` or `os.PathLike`):
            The name of the dynamic module to create.
    Tr   r   N)r"   r   r   resolveparentr   create_dynamic_moduler   r   r   r   r   )r$   dynamic_module_pathr    s      r!   r)   r)   C   s      01D8AAC%%,,.1889KK#d3#m3I 	##%	 r#   module_filec                 ,   t        | d      5 }|j                         }ddd       t        j                  dt        j                        }|t        j                  d|t        j                        z  }t        t        |            S # 1 sw Y   lxY w)z
    Get the list of modules that are relatively imported in a module file.

    Args:
        module_file (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of relative imports in the module.
    utf-8encodingNz^\s*import\s+\.(\S+)\s*$)flagsz^\s*from\s+\.(\S+)\s+import)openreadrefindall	MULTILINElistset)r+   fcontentrelative_importss       r!   get_relative_importsr;   Y   s{     
kG	, &&( zz"=wbll[

#A7RTR^R^__$%&& s   B

Bc                 l   d}| g}g }|sg }|D ]  }|j                  t        |              t        |       j                  }|D cg c]  }t	        ||z         }}|D cg c]	  }||vs| }}|D cg c]  }| d	 }}t        |      dk(  }|j                  |       |s|S c c}w c c}w c c}w )a  
    Get the list of all files that are needed for a given module. Note that this function recurses through the relative
    imports (if a imports b and b imports c, it will return module files for b and c).

    Args:
        module_file (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of all relative imports a given module needs (recursively), which will give us the list
        of module files a given module needs.
    F.pyr   )extendr;   r   r(   strlen)	r+   	no_changefiles_to_checkall_relative_importsnew_importsr8   module_pathmnew_import_filess	            r!   get_relative_import_filesrH   n   s     I!]N  	8A3A67	8 ;'..:EFQCa0FF'7Y!1DX;XAYY-=>QCs)>>()Q.	##N3    GY>s   B'!	B,+B,5B1filenamec                     t        | d      5 }|j                         }ddd       t               ddlfdt	        j
                        } |       t              S # 1 sw Y   FxY w)a  
    Extracts all the libraries (not relative imports this time) that are imported in a file.

    Args:
        filename (`str` or `os.PathLike`): The module file to inspect.

    Returns:
        `list[str]`: The list of all packages required to use the input module.
    r-   r.   Nr   c                 v   t        | t        j                        ry t        | t        j                        r| j                  }t        j
                  |      D ]x  }t        |t        j                        st        |j                  dd      }|j                  d      r|j                  d      s!t        	j                  j                  |      sx y  nt        | t        j                        rD| j                  D ]4  }|j                   j#                  d      d   }|s$j%                  |       6 nft        | t        j&                        rL| j(                  dk(  r=| j*                  r1| j*                  j#                  d      d   }|rj%                  |       t        j,                  |       D ]
  } |        y )Nid 	availableis_flash_attn.r   )
isinstanceastTryIftestwalkCallgetattrfuncendswith
startswithhasattrutilsimport_utilsImportnamesr$   splitadd
ImportFromlevelmoduleiter_child_nodes)
noderU   condition_nodecheck_functionalias
top_modulechildimported_modulesrecursive_look_for_importstransformerss
          r!   rn   z/get_imports.<locals>.recursive_look_for_imports   sW   dCGG$cff%99D"%((4. 
nchh7%,^-@-@$%KN&//<*55oF"<#5#5#B#BNS 
 cjj) 5"ZZ--c215
$((45 cnn-zzQ4;;![[..s3A6
$((4 ))$/ 	.E&u-	.r#   )r1   r2   r7   transformers.utilsrR   parsesorted)rI   r8   r9   treerm   rn   ro   s       @@@r!   get_importsrt      sg     
h	) Q&&(u.B 99WDt$"##U s   A''A0c                    t        |       }g }|D ]  }	 t        j                  |        t        |      dkD  r0t        ddj                  |       dd	j                  |       d
      t        |       S # t        $ rE}t        j                  d| d|        dt        |      v r|j                  |       n Y d}~d}~ww xY w)a.  
    Check if the current Python environment contains all the libraries that are imported in a file. Will raise if a
    library is missing.

    Args:
        filename (`str` or `os.PathLike`): The module file to check.

    Returns:
        `list[str]`: The list of relative imports in the file.
    z&Encountered exception while importing z: zNo module namedNr   z\This modeling file requires the following packages that were not found in your environment: z, z. Run `pip install  `)rt   r   import_moduleImportErrorloggerwarningr?   r   r@   joinr;   )rI   importsmissing_packagesimp	exceptions        r!   check_importsr      s     (#G 
	##C( q jyy)*++>sxxHX?Y>ZZ[]
 	

  ))!  	NNCC59+VW !C	N2 '', -	s   A44	C=;B==CFforce_reload
class_namerE   r   c          
         t         j                  j                  |      }|j                  d      r|dd }|j	                  t         j                  j
                  d      }t        t              |z  }t        5  |r4t        j                  j                  |d       t        j                          t        j                  j                  |      }t        j                  j!                  ||      }|gt#        t%        t        t'        |                  z   }t)        j*                  dj-                  d |D                    j/                         }|3t        j                  j1                  |      }	|	t        j                  |<   n|}	t3        |	dd	      |k7  r"|j4                  j7                  |	       ||	_        t3        |	|       cddd       S # 1 sw Y   yxY w)
a  
    Import a module on the cache directory for modules and extract a class from it.

    Args:
        class_name (`str`): The name of the class to import.
        module_path (`str` or `os.PathLike`): The path to the module to import.
        force_reload (`bool`, *optional*, defaults to `False`):
            Whether to reload the dynamic module from file if it already exists in `sys.modules`.
            Otherwise, the module is only reloaded if the file has changed.

    Returns:
        `typing.Type`: The class looked for.
    r=   NrP   )locationr#   c              3   T   K   | ]   }t        |      |j                         z    " y wN)bytes
read_bytes).0r8   s     r!   	<genexpr>z&get_class_in_module.<locals>.<genexpr>
  s      2cQR58alln3L2cs   &(__transformers_module_hash__rM   )r   r   normpathrZ   replacesepr   r   _HF_REMOTE_CODE_LOCKr   modulespopr   r   getutilspec_from_file_locationrr   maprH   hashlibsha256r|   	hexdigestmodule_from_specrX   loaderexec_moduler   )
r   rE   r   r$   r+   cached_modulemodule_specmodule_filesmodule_hashre   s
             r!   get_class_in_moduler      sj   & 77K(D}}UCRy<<S)D-.<K	 +KKOOD$''').1kkood.Cnn<<TK<X %0=6#dD]^iDj:k3l#l">>#((2cVb2c*cdnnp  ^^44[AF &CKK"F692>+M**622=F/vz*-+ + +s   8E
GGpretrained_model_name_or_path	cache_dirforce_downloadresume_downloadproxiestokenrevisionlocal_files_only	repo_type_commit_hashc                    |j                  dd      }|)t        j                  dt               |t	        d      |}t               r|st        j                  d       d}t        |       } t        j                  j                  |       }|r t        j                  j                  |       }n:| j                  dt        j                  j                        }t        | |||
|	      }g }	 t!        | |||||||||	|
	      }|s|k7  r|j#                  |       t'        |      }t(        t        j                  j                  z   |z   }t+        |       t-        t.              |z  }|t        j                  j                  |       k(  r(||z  j1                         r"t3        j4                  |t        ||z              sM||z  j6                  j9                  dd       t;        j<                  |||z         t?        j@                          |D ]  }t-        |      j6                  | dz  }t        j                  jC                  | |      }||z  j1                         r#t3        j4                  |t        ||z              rtt;        j<                  |||z         t?        j@                           ntE        ||
      }||z  }|t        j                  j                  z   |z   }t        j                  jC                  ||      }t+        t-        |      j6                         ||z  j1                         s-t;        j<                  |||z         t?        j@                          |D ]E  }|| dz  j1                         rtG        | | d||||||||
       |j#                  | d       G tI        |      dkD  rP|NdjC                  |D cg c]  }d| 	 c}      }|	dn|	 d}d| |  }t        jK                  d| d| d       t        j                  jC                  ||      S # t$        $ r t        j                  d
| d|  d        w xY wc c}w )a	  
    Prepares Downloads a module from a local folder or a distant repo and returns its path inside the cached
    Transformers module.

    Args:
        pretrained_model_name_or_path (`str` or `os.PathLike`):
            This can be either:

            - a string, the *model id* of a pretrained model configuration hosted inside a model repo on
              huggingface.co.
            - a path to a *directory* containing a configuration file saved using the
              [`~PreTrainedTokenizer.save_pretrained`] method, e.g., `./my_model_directory/`.

        module_file (`str`):
            The name of the module file containing the class to look for.
        cache_dir (`str` or `os.PathLike`, *optional*):
            Path to a directory in which a downloaded pretrained model configuration should be cached if the standard
            cache should not be used.
        force_download (`bool`, *optional*, defaults to `False`):
            Whether or not to force to (re-)download the configuration files and override the cached versions if they
            exist.
        resume_download:
            Deprecated and ignored. All downloads are now resumed by default when possible.
            Will be removed in v5 of Transformers.
        proxies (`dict[str, str]`, *optional*):
            A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
            'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
        token (`str` or *bool*, *optional*):
            The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
            when running `hf auth login` (stored in `~/.huggingface`).
        revision (`str`, *optional*, defaults to `"main"`):
            The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
            git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
            identifier allowed by git.
        local_files_only (`bool`, *optional*, defaults to `False`):
            If `True`, will only try to load the tokenizer configuration from local files.
        repo_type (`str`, *optional*):
            Specify the repo type (useful when downloading from a space for instance).

    <Tip>

    Passing `token=True` is required when you want to use a private model.

    </Tip>

    Returns:
        `str`: The path to the module inside the cache.
    use_auth_tokenNrThe `use_auth_token` argument is deprecated and will be removed in v5 of Transformers. Please use `token` instead.V`token` and `use_auth_token` are both specified. Please set only the argument `token`.z+Offline mode: forcing local_files_only=TrueT/)r   r   r   )	r   r   r   r   r   r   r   r   r   zCould not locate the z inside rP   )parentsr   r=   )r   r   r   r   r   r   r   r   r   
z- rM   zs/zhttps://huggingface.co/z9A new version of the following files was downloaded from z:
z
. Make sure to double-check they do not contain any added malicious code. To avoid downloading new versions of the code file, you can pin a revision.)&r   warningswarnFutureWarning
ValueErrorr   rz   infor?   r   r   isdirbasenamer   r   r   r   r   OSErrorr   r   r)   r   r   r   filecmpcmpr(   mkdirshutilcopyr   r   r|   r   get_cached_module_filer@   r{   )r   r+   r   r   r   r   r   r   r   r   r   deprecated_kwargsr   is_local	submoduler   	new_filesresolved_module_filemodules_neededfull_submodulesubmodule_pathmodule_neededmodule_needed_filecommit_hashfull_submodule_module_file_pathr8   repo_type_strurls                               r!   r   r     s;   | '**+;TBN! A	
 uvv!1AB %((E$F!ww}}:;HGG$$%BC	199#rww{{K	.);)Vbnw
 I*))+-% 
 M-AA[) ##78N 6CiON.)*+n<NBGG$$%BCC ,446gkk #n{&B"C?
 k)1177t7TKK,n{.JK'')+ 	.M -44-7LLM!#.K]!["]2::<GKK"C(F$GE .0NO++-	. **>M (+5'"''++5C*,'',,~{*S'd#BCJJK,446KK,n{.JK'')+ 	8M"c%::BBD&1$oS)'#1$3#%%5!,   M?#!67	8  9~h.II;AA3x;<	'/	{"5E'7T6UVGuCPY{AA	
 77<<44K  +K=A^@__`abx <s   *.P& Q&'Qclass_referencecode_revisionc                 8   |j                  dd      }|)t        j                  dt               |t	        d      |}d| v r| j                  d      \  }} n|}| j                  d      \  }}|
||k(  r|}
t        ||dz   ||||||
||	
      }t        |||	      S )
a6  
    Extracts a class from a module file, present in the local folder or repository of a model.

    <Tip warning={true}>

    Calling this function will execute the code in the module file found locally or downloaded from the Hub. It should
    therefore only be called on trusted repos.

    </Tip>



    Args:
        class_reference (`str`):
            The full name of the class to load, including its module and optionally its repo.
        pretrained_model_name_or_path (`str` or `os.PathLike`):
            This can be either:

            - a string, the *model id* of a pretrained model configuration hosted inside a model repo on
              huggingface.co.
            - a path to a *directory* containing a configuration file saved using the
              [`~PreTrainedTokenizer.save_pretrained`] method, e.g., `./my_model_directory/`.

            This is used when `class_reference` does not specify another repo.
        module_file (`str`):
            The name of the module file containing the class to look for.
        class_name (`str`):
            The name of the class to import in the module.
        cache_dir (`str` or `os.PathLike`, *optional*):
            Path to a directory in which a downloaded pretrained model configuration should be cached if the standard
            cache should not be used.
        force_download (`bool`, *optional*, defaults to `False`):
            Whether or not to force to (re-)download the configuration files and override the cached versions if they
            exist.
        resume_download:
            Deprecated and ignored. All downloads are now resumed by default when possible.
            Will be removed in v5 of Transformers.
        proxies (`dict[str, str]`, *optional*):
            A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
            'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
        token (`str` or `bool`, *optional*):
            The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
            when running `hf auth login` (stored in `~/.huggingface`).
        revision (`str`, *optional*, defaults to `"main"`):
            The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
            git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
            identifier allowed by git.
        local_files_only (`bool`, *optional*, defaults to `False`):
            If `True`, will only try to load the tokenizer configuration from local files.
        repo_type (`str`, *optional*):
            Specify the repo type (useful when downloading from a space for instance).
        code_revision (`str`, *optional*, defaults to `"main"`):
            The specific revision to use for the code on the Hub, if the code leaves in a different repository than the
            rest of the model. It can be a branch name, a tag name, or a commit id, since we use a git-based system for
            storing models and other artifacts on huggingface.co, so `revision` can be any identifier allowed by git.

    <Tip>

    Passing `token=True` is required when you want to use a private model.

    </Tip>

    Returns:
        `typing.Type`: The class, dynamically imported from the module.

    Examples:

    ```python
    # Download module `modeling.py` from huggingface.co and cache then extract the class `MyBertModel` from this
    # module.
    cls = get_class_from_dynamic_module("modeling.MyBertModel", "sgugger/my-bert-model")

    # Download module `modeling.py` from a given repo and cache then extract the class `MyBertModel` from this
    # module.
    cls = get_class_from_dynamic_module("sgugger/my-bert-model--modeling.MyBertModel", "sgugger/another-bert-model")
    ```r   Nr   r   z--rP   r=   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   ra   r   r   )r   r   r   r   r   r   r   r   r   r   r   kwargsr   repo_idr+   r   final_modules                    r!   get_class_from_dynamic_moduler     s    t ZZ 0$7N! A	
 uvv #2#8#8#> /-33C8K!>'!I )e%')L z<nUUr#   objfolderconfigc                 \     j                   dk(  rt        j                  d  d| d       y fd}t        |t        t
        f      r|D ]
  } ||        n
| ||       g }t        j                   j                      j                  }t        |      t        |      j                  z  }t        j                  ||       |j                  |       t        |      D ]J  }t        |      t        |      j                  z  }t        j                  ||       |j                  |       L |S )a  
    Save the modeling files corresponding to a custom model/configuration/tokenizer etc. in a given folder. Optionally
    adds the proper fields in a config.

    Args:
        obj (`Any`): The object for which to save the module files.
        folder (`str` or `os.PathLike`): The folder where to save.
        config (`PretrainedConfig` or dictionary, `optional`):
            A config in which to register the auto_map corresponding to this custom object.

    Returns:
        `list[str]`: The list of files saved.
    __main__z We can't save the code defining z in z as it's been defined in __main__. You should put this code in a separate module so we can include it in the saved folder and make it easier to share via the Hub.Nc                    
j                   j                  }|j                  d      d   }| d
j                   j                   }d|v rd }d }
j                   j                  j	                  d      rf| d
j                   j                   }t        
dd       Yt        
d      }|j                  }|j                  d      d   }| d|j                   }n| d
j                   j                   }||f}t        | t              r'| j                  di       }	||	
j                  <   |	| d<   y t        | dd       || j                  
j                  <   y 
j                  |i| _
        y )NrP   	TokenizerFastslow_tokenizer_classauto_map)	__class__
__module__ra   __name__rZ   rX   rQ   dictr   _auto_classr   )_configmodule_namelast_module	full_namer   fast_tokenizer_classslow_tokenizerslow_tok_module_namelast_slow_tok_moduler   r   s             r!   _set_auto_map_in_configz3custom_object_save.<locals>._set_auto_map_in_config_  sq   mm..!'',R0"m1S]]%;%;$<=	)##' #' }}%%..v6*5a8N8N7O'P$3 6=I%,S2H%IN+9+D+D(+?+E+Ec+J2+N(.B-C1^E\E\D]+^( +6a8N8N7O'P$-/CDIgt${{:r2H(1HS__%"*GJWj$/;09GS__- #;Gr#   )r   rz   r{   rQ   r6   tupler   r   __file__r   r$   r   r   r   rH   )	r   r   r   r   cfgresultobject_file	dest_fileneeded_files	   `        r!   custom_object_saver   I  s    ~~#.se4x @ 	

 	<@ &4-( 	)C#C(	)		'F++cnn-66KV[ 1 6 67I
KKY'
MM) 1= !LD$5$:$:;	K+i !
 Mr#   c                     t        d      )NzLoading this model requires you to execute custom code contained in the model repository on your local machine. Please set the option `trust_remote_code=True` to permit loading of this model.)r   )signumframes     r!   _raise_timeout_errorr     s    
	c r#      c                    |^|d| d| d| d}nOt         j                  j                  |      r'd| dt         j                  j                  |       d}n	d| d| d}| |rd} n|rt        d	kD  rd}	 t        j
                  t
        j                  t              }t        j                  t               | =t        | d
| d      }|j                         dv rd} n|j                         dv rd} | =t        j                  d	       	 |Ht        j
                  t
        j                  |       t        j                  d	       n|rt        dd       |r|s| st        | d
| d      | S # t        $ r t        | d
| d      w xY w# |:t        j
                  t
        j                  |       t        j                  d	       w w xY w)a  
    Resolves the `trust_remote_code` argument. If there is remote code to be loaded, the user must opt-in to loading
    it.

    Args:
        trust_remote_code (`bool` or `None`):
            User-defined `trust_remote_code` value.
        model_name (`str`):
            The name of the model repository in huggingface.co.
        has_local_code (`bool`):
            Whether the model has local code.
        has_remote_code (`bool`):
            Whether the model has remote code.
        error_message (`str`, *optional*):
            Custom error message to display if there is remote code to load and the user didn't opt-in. If unset, the error
            message will be regarding loading a model with custom code.

    Returns:
        The resolved `trust_remote_code` value.
    NzThe repository z% references custom code contained in zm which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/z .
zt contains custom code which must be executed to correctly load the model. You can inspect the repository content at z contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/Fr   z9 You can inspect the repository content at https://hf.co/z.
You can avoid this prompt in future by passing the argument `trust_remote_code=True`.

Do you wish to run the custom code? [y/N] )yesy1T)non0rM   zS.
Please pass the argument `trust_remote_code=True` to allow custom code to be run.)r   r   r   abspathTIME_OUT_REMOTE_CODEsignalSIGALRMr   alarminputlower	Exceptionr   )trust_remote_code
model_namehas_local_codehas_remote_codeerror_messageupstream_repoprev_sig_handleranswers           r!   resolve_trust_remote_coder    s   . $!*-RS`Ra b,,9?$@ 
 WW]]:&!* . ggooj9:$@  "* .,,6<t=    %!5!9#$#)==AU#V 12'/"(/)bcmbn oE FF
 ||~)::,0)+??,1) (/ Q $/MM&..2BCLLO t,~6GoVWaVb c` a
 	

 )   $o%^_i^j kh i  $/MM&..2BCLLO 0s   6A?E/ 6E/ /F

F >Gc                    g }	 t        d| |d|}t        |d      5 }|j                         }ddd       |D ]  }|j                         }|r|j	                  d      r'	 t        |      \  }}}		 t        j                  j                  |      }
|E|	C t        j                  |      t        j                  |
      t        j                  |	            }nd}|r|j                  | d|
 d	        	 |r!t!        d
|  ddj#                  |      z         y# 1 sw Y   xY w# t        $ r
 |}d\  }}	Y w xY w# t        j                  j                  $ r |j                  | d       Y 7w xY w# t        $ r Y w xY w)a  
    Tries to locate `requirements_file` in a local folder or repo, and confirms that the environment has all the
    python dependencies installed.

    Args:
        path_or_repo_id (`str` or `os.PathLike`):
            This can be either:
            - a string, the *model id* of a model repo on huggingface.co.
            - a path to a *directory* potentially containing the file.
        kwargs (`dict[str, Any]`, *optional*):
            Additional arguments to pass to `cached_file`.
    )path_or_repo_idrI   rN#NNz (installed: None)Tz (installed: )z4Missing requirements in your local environment for `z`:
r    )r   r1   	readlinesstripr[   r   r   r   metadatar	   PackageNotFoundErrorr   r   from_stringrq   r   ry   r|   )r  requirements_filer   failedrequirementsr8   requirementpackage_name	delimiterversion_numberlocal_package_versionis_satisfieds               r!   check_python_requirementsr+    s    F""i?M^ibhi,$ 	);;=L	) ( 	UK%++-K+"8"8"=7:OP[:\7i
(1(:(:(B(B<(P%
 $)CG0<<YGMM"78'--:W   $];P:QQRST5	U> B?BSSWX[_[d[dek[ll
 	
 E	) 	)  7*,6)	>7 %%:: -?@A  sp   E4 D1E4 !D&1D<AE4 E4 D#E4 &D96E4 8D99E4 <1E1-E4 0E11E4 4	F ?F )	NFNNNNFNNr   r  )zrequirements.txt)=__doc__rR   r   r   r   importlib.metadataimportlib.utilr   r3   r   r  r   	threadingr   pathlibr   typesr   typingr   r   r   huggingface_hubr   	packagingr	   r]   r   r   r   r   r   r   utils.import_utilsr   r   
get_loggerr   rz   Lockr   r"   r?   PathLiker)   r6   r;   rH   rt   r   booltyper   r   r   r   r   r   r  r  r+  r  r#   r!   <module>r;     s   : 
      	 	   
     ' ' 2   I 
		H	%%y~~' & &c2;;&6 7 &D &,'eC,<&= '$s) '* 5bkk1A+B  tCy  B4$%R[[ 01 4$d3i 4$n *E#r{{"23  *S	  *N 	.+.+sBKK'(.+ 	.+
 
.+h 48 &*(,(,""#"&o5#(bkk)9#:o5o5 c2;;./0o5 	o5
 d^o5 d38n%o5 E$)$%o5 smo5 o5 }o5 3-o5 	o5j 48 &*(,(,""##'zVzV#(bkk)9#:zV c2;;./0zV 	zV
 d^zV d38n%zV E$)$%zV smzV zV }zV C=zV 
zVzIC IsBKK/?)@ I(SW. Idhildm IX   gkRj5
r#   