ó
    >:j„  ã                  ó¤   • S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  SS jr
SS jr\S 5       r\\R                  4S j5       rS	 r/ S
Qrg)é    )ÚannotationsN)Úcontextmanager)Úisclassc                óÐ   • [        U 5      (       d  U R                  n U R                  nUb  U[        R                  R                  :X  a  U R                  $ US-   U R                  -   $ )a  
Gives a full name (package_name.class_name) for a class / object in Python. Will
be used to load the correct classes from JSON files

Args:
    obj: The object for which to get the full name, e.g. an instance of a class or the class itself.

Returns:
    str: The full name of the object.

Example:
    >>> from sentence_transformers.sentence_transformer.losses import MultipleNegativesRankingLoss
    >>> from sentence_transformers import SentenceTransformer
    >>> from sentence_transformers.util import fullname
    >>> model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
    >>> loss = MultipleNegativesRankingLoss(model)
    >>> fullname(loss)
    'sentence_transformers.sentence_transformer.losses.multiple_negatives_ranking.MultipleNegativesRankingLoss'
Ú.)r   Ú	__class__Ú
__module__ÚstrÚ__name__)ÚobjÚmodules     Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sentence_transformers/util/misc.pyÚfullnamer      sR   € ô( �3�<‰<Ø�m‰mˆØ�^‰^€FØ�~˜¤3§=¡=×#;Ñ#;Ó;Ø�|‰|ÐØ�C‰<˜#Ÿ,™,Ñ&Ð&ó    c                óÔ  •  U R                  SS5      u  p[        R                  " 5          [        R
                  " S[        5         [        R                  " U 5      nSSS5         [        WU5      $ ! [         a    U  S3n[        U5      ef = f! [         a    [        R                  " U5      n NUf = f! , (       d  f       N_= f! [         a    SU SU S3n[        U5      ef = f)	aM  
Import a dotted module path and return the attribute/class designated by the
last name in the path. Raise ImportError if the import failed.

Args:
    dotted_path (str): The dotted module path.

Returns:
    Any: The attribute/class designated by the last name in the path.

Raises:
    ImportError: If the import failed.

Example:
    >>> import_from_string('sentence_transformers.sentence_transformer.losses.multiple_negatives_ranking.MultipleNegativesRankingLoss')
    <class 'sentence_transformers.sentence_transformer.losses.multiple_negatives_ranking.MultipleNegativesRankingLoss'>
r   é   z  doesn't look like a module pathÚignoreNzModule "z" does not define a "z" attribute/class)ÚrsplitÚ
ValueErrorÚImportErrorÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarningÚ	importlibÚimport_moduleÚ	ExceptionÚgetattrÚAttributeError)Údotted_pathÚmodule_pathÚ
class_nameÚmsgr   s        r   Úimport_from_stringr$   '   sê   € ð$Ø"-×"4Ñ"4°S¸!Ó"<Ñˆô 
×	 Ò	 Õ	"Ü×Ò˜hÔ(:Ô;ð	:Ü×,Ò,¨[Ó9ˆF÷ 
#ðÜ�v˜zÓ*Ð*øô ó Ø�Ð=Ð>ˆÜ˜#ÓÐðûô ó 	:Ü×,Ò,¨[Ó9ŠFð	:ú÷	 
#Õ	"ûô ó Ø˜˜Ð%:¸:¸,ÐFWÐXˆÜ˜#ÓÐðús@   ‚A3 «B7ÁBÁ'C Á3BÂ B4Â1B7Â3B4Â4B7Â7
CÃC'c               #  óš   #   • SSK Jn JnJn  U" 5       n U(       a  U " 5         Sv •  U(       a  U" 5         gg! U(       a  U" 5         f f = f7f)zF
A context manager that will disable caching in the datasets library.
r   )Údisable_cachingÚenable_cachingÚis_caching_enabledN)Údatasetsr&   r'   r(   )r&   r'   r(   Úis_originally_enableds       r   Údisable_datasets_cachingr+   N   sE   é € ÷
 MÑLá.Ó0ÐðÞ ÙÔÛæ ÙÕð !øÖ ÙÕð !üs   ‚A•7 §A·AÁAc              #  óì   #   • [         R                  R                  R                  n[         R                  " U 5         Sv •  [         R                  " U5        g! [         R                  " U5        f = f7f)z§
A context manager that will prevent any logging messages
triggered during the body from being processed.

Args:
    highest_level: the maximum logging level allowed.
N)ÚloggingÚrootÚmanagerÚdisable)Úhighest_levelÚprevious_levels     r   Údisable_loggingr3   `   sH   é € ô —\‘\×)Ñ)×1Ñ1€NÜ‡O‚O�MÔ"ð(Ûä�Š˜Õ'øŒ�Š˜Õ'üs   ‚;A4¾A ÁA4ÁA1Á1A4c                ór  • [        U SSS9 n[        R                  " U5      n[        U5      nS S S 5        [	        W5      S:”  aQ  US   R                  U5        [        U SSSS9 n[        R                  " U5      nUR                  U5        S S S 5        gg! , (       d  f       No= f! , (       d  f       g= f)	NÚ zutf-8)ÚnewlineÚencodingr   éÿÿÿÿÚwTF)ÚopenÚcsvÚreaderÚlistÚlenÚextendÚwriterÚ	writerows)Úcsv_pathÚadditional_dataÚfr<   Úrowsr@   s         r   Úappend_to_last_rowrF   r   s™   € ä	ˆh ¨WÒ	5¸Ü—’˜A“ˆÜ�F‹|ˆ÷ 
6ô ˆ4ƒy�1ƒ}àˆR‰�‰˜Ô(ô �(˜C¨°gÒ>À!Ü—Z’Z “]ˆFØ×Ñ˜TÔ"÷ ?ð Ø÷ 
6Õ	5ú÷ ?Ô>ð ús   Œ"BÁ%(B(Â
B%Â(
B6)Dzalbert-base-v1zalbert-base-v2zalbert-large-v1zalbert-large-v2zalbert-xlarge-v1zalbert-xlarge-v2zalbert-xxlarge-v1zalbert-xxlarge-v2zbert-base-cased-finetuned-mrpczbert-base-casedzbert-base-chinesezbert-base-german-casedzbert-base-german-dbmdz-casedzbert-base-german-dbmdz-uncasedzbert-base-multilingual-casedzbert-base-multilingual-uncasedzbert-base-uncasedz3bert-large-cased-whole-word-masking-finetuned-squadz#bert-large-cased-whole-word-maskingzbert-large-casedz5bert-large-uncased-whole-word-masking-finetuned-squadz%bert-large-uncased-whole-word-maskingzbert-large-uncasedzcamembert-baseÚctrlz%distilbert-base-cased-distilled-squadzdistilbert-base-casedzdistilbert-base-german-casedz"distilbert-base-multilingual-casedz'distilbert-base-uncased-distilled-squadz/distilbert-base-uncased-finetuned-sst-2-englishzdistilbert-base-uncasedÚ
distilgpt2zdistilroberta-basez
gpt2-largezgpt2-mediumzgpt2-xlÚgpt2z
openai-gptzroberta-base-openai-detectorzroberta-basezroberta-large-mnlizroberta-large-openai-detectorzroberta-largezt5-11bzt5-3bzt5-basezt5-largezt5-smallztransfo-xl-wt103zxlm-clm-ende-1024zxlm-clm-enfr-1024zxlm-mlm-100-1280zxlm-mlm-17-1280zxlm-mlm-en-2048zxlm-mlm-ende-1024zxlm-mlm-enfr-1024zxlm-mlm-enro-1024zxlm-mlm-tlm-xnli15-1024zxlm-mlm-xnli15-1024zxlm-roberta-basez)xlm-roberta-large-finetuned-conll02-dutchz+xlm-roberta-large-finetuned-conll02-spanishz+xlm-roberta-large-finetuned-conll03-englishz*xlm-roberta-large-finetuned-conll03-germanzxlm-roberta-largezxlnet-base-casedzxlnet-large-cased)Úreturnr
   )r    r
   rJ   Útype)Ú
__future__r   r;   r   r-   r   Ú
contextlibr   Úinspectr   r   r$   r+   ÚCRITICALr3   rF   ÚORIGINAL_TRANSFORMER_MODELS© r   r   Ú<module>rR      sd   ðÝ "ã 
Û Û Û Ý %Ý ô'ô8$ðN ñó ðð" Ø")×"2Ñ"2ó (ó ð(ò"ò(EÑ r   