ó
    �®žj  ã                   óÊ   • S SK r S SKrS SKJr  S SKJrJrJrJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  \" S\S	9r\R$                  " \5      r " S
 S\5      r " S S\\   \S9rg)é    N)ÚABCMeta)ÚGenericÚOptionalÚTypeÚTypeVar)ÚPluginManager)Ú	BaseModel)ÚBaseOptions)ÚBaseModelWithOptionsÚA)Úboundc                   ó4   • \ rS rSr% \\S'   \\S'   \\S'   Srg)ÚFactoryMetaé   ÚkindÚplugin_nameÚmodule© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__Ú__static_attributes__r   ó    Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/models/factories/base_factory.pyr   r      s   ‡ Ø
ƒIØÓØ†Kr   r   c                   ó
  • \ rS rSrSr\4S\4S jjr\S\\   4S j5       r	S\
R                  4S jr\S 5       r\S	 5       rS
\S\4S jrS\S\4S jrS\4S jrS\\   S\S\4S jr SS\\   S\4S jjrS\S\4S jrSrg)ÚBaseFactoryé   ÚdoclingÚplugin_attr_namec                 ó8   • X l         Xl        0 U l        0 U l        g ©N)r   r"   Ú_classesÚ_meta)Úselfr"   r   s      r   Ú__init__ÚBaseFactory.__init__   s   € Ø&ÔØ 0Ôà:<ˆŒØ;=ˆ�
r   Úreturnc                 ót   • U R                   R                  5        Vs/ s H  oR                  PM     sn$ s  snf r$   )r%   Úkeysr   )r'   Úopts     r   Úregistered_kindÚBaseFactory.registered_kind%   s+   € à$(§M¡M×$6Ñ$6Ô$8Ó9Ò$8˜S—”Ñ$8Ñ9Ð9ùÒ9s   �5c                 óš   • [         R                  " U R                  S-   U R                   Vs0 s H  oU_M     sn[        [
        S9$ s  snf )NÚ_enum)ÚnamesÚtyper   )ÚenumÚEnumr"   r.   r   r   )r'   r   s     r   Úget_enumÚBaseFactory.get_enum)   sF   € Ü�yŠyØ×!Ñ! GÑ+Ø*.×*>Ò*>Ó?Ò*> $˜’:Ñ*>Ñ?ÜÜñ	
ð 	
ùâ?s   ­A
c                 ó   • U R                   $ r$   )r%   ©r'   s    r   ÚclassesÚBaseFactory.classes1   s   € à�}‰}Ðr   c                 ó   • U R                   $ r$   )r&   r9   s    r   Úregistered_metaÚBaseFactory.registered_meta5   s   € à�z‰zÐr   Úoptionsc                 ó¬   •  U R                   [        U5         nU" SSU0UD6$ ! [         a%    [        U R	                  UR
                  5      5      ef = f)Nr?   r   )r%   r3   ÚKeyErrorÚRuntimeErrorÚ_err_msg_on_class_not_foundr   )r'   r?   ÚkwargsÚ_clss       r   Úcreate_instanceÚBaseFactory.create_instance9   sX   € ð	OØ—=‘=¤ g£Ñ/ˆDÙÑ2 Ð2¨6Ñ2Ð2øÜó 	OÜ˜t×?Ñ?ÀÇÁÓMÓNÐNð	Oús	   ‚!$ ¤/Ar   c                 ó°   • U R                   R                  5        H  u  pEUR                  U:X  d  M  U" U0 UD6s  $    [        U R	                  U5      5      er$   )r%   Úitemsr   rB   rC   )r'   r   ÚargsrD   Úopt_clsÚ_s         r   Úcreate_optionsÚBaseFactory.create_options@   sO   € ØŸ-™-×-Ñ-Ö/‰JˆGØ�|‰|˜tÕ#Ù Ð/¨Ñ/Ò/ñ 0ô ˜4×;Ñ;¸DÓAÓBÐBr   c                 óÆ   • / nU R                   R                  5        H(  u  p4UR                  SUR                  < SU< 35        M*     SR	                  U5      nSU< SU 3$ )NÚ	z => Ú
zNo class found with the name z, known classes are:
)r%   rI   Úappendr   Újoin)r'   r   Úmsgr-   ÚclsÚmsg_strs         r   rC   Ú'BaseFactory._err_msg_on_class_not_foundF   s`   € ØˆàŸ™×+Ñ+Ö-‰HˆCØ�J‰J˜˜CŸH™H™< t¨C©7Ð3Ö4ñ .ð —)‘)˜C“.ˆà.¨t©hÐ6LÈWÈIÐVÐVr   rU   r   Úplugin_module_namec                 óò   • UR                  5       nX@R                  ;   a)  [        UR                  < SU R                  U   < 35      eXR                  U'   [	        UR                  X#S9U R
                  U'   g )Nz already registered to class )r   r   r   )Úget_options_typer%   Ú
ValueErrorr   r   r&   )r'   rU   r   rX   Úopt_types        r   ÚregisterÚBaseFactory.registerP   so   € Ø×'Ñ'Ó)ˆà—}‘}Ó$ÜØ—=‘=Ñ#Ð#@ÀÇÁÈxÑAXÑ@[Ð\óð ð #&�‰�hÑÜ*Ø—‘¨Kñ 
ˆ�
‰
�8Òr   NÚallow_external_pluginsc                 óà  • U=(       d    U R                   n[        U5      nUR                  U5        UR                  5        H©  u  p[	        UR
                  5      nU(       d1  UR                  S5      (       d  [        R                  SU S35        MR  [        X@R                  S 5      n[        U5      (       d  Mz  [        R                  SU5        U" 5       nU R                  XqU5        M«     g )Nzdocling.zThe plugin zX will not be loaded because Docling is being executed with allow_external_plugins=false.zLoading plugin %r)r   r   Úload_setuptools_entrypointsÚlist_name_pluginr   r   Ú
startswithÚloggerÚwarningÚgetattrr"   ÚcallableÚinfoÚprocess_plugin)r'   r   r_   Úplugin_managerÚplugin_modulerX   ÚattrÚconfigs           r   Úload_from_pluginsÚBaseFactory.load_from_plugins]   sÕ   € ð "×5 T×%5Ñ%5ˆä& {Ó3ˆØ×2Ñ2°;Ô?à*8×*IÑ*IÖ*KÑ&ˆKÜ!$ ]×%;Ñ%;Ó!<Ðæ)Ð2D×2OÑ2OØ÷3ñ 3ô —‘Ø! + ð  /Gð  Hôñ ä˜=×*?Ñ*?ÀÓFˆDä˜�~‹~Ü—‘Ð/°Ô=á›�Ø×#Ñ# FÐ9KÖLò# +Lr   c                 ó¢   • XR                       H  n U R                  XBU5        M     g ! [         a    [        R	                  SU5         M>  f = f)Nz%r already registered)r"   r]   r[   rd   re   )r'   rm   r   rX   Úitems        r   ri   ÚBaseFactory.process_pluginx   sI   € Ø×0Ñ0Ô1ˆDð>Ø—‘˜dÐ1CÖDò 2øô ó >Ü—‘Ð6¸×=ð>ús   “*ª AÁA)r%   r&   r"   r   )NF)r   r   r   r   Údefault_plugin_namer   r(   ÚpropertyÚlistr.   r4   r5   r6   r:   r=   r
   r   rF   rM   rC   r   r]   r   Úboolrn   ri   r   r   r   r   r   r      sü   † Ø#Ðà:Mñ >¨õ >ð ð:  c¡ó :ó ð:ð
˜$Ÿ)™)ô 
ð ñó ðð ñó ððO {ð OÀô OðC 3ð C¸Kô CðW°ô Wð
˜D ™Gð 
°#ð 
È3ô 
ð QVñMØ# C™=ðMØIMõMð6>°#ð >È3÷ >r   r   )Ú	metaclass)r4   ÚloggingÚabcr   Útypingr   r   r   r   Úpluggyr   Úpydanticr	   Ú"docling.datamodel.pipeline_optionsr
   Údocling.models.base_modelr   r   Ú	getLoggerr   rd   r   r   r   r   r   Ú<module>r€      sa   ðó Û Ý ß 3Ó 3å  Ý å :Ý :áˆCÐ+Ñ,€ð 
×	Ò	˜8Ó	$€ô�)ô ôb>�'˜!‘*¨ó b>r   