ó
    �®žj$  ã                   ó0	  • % S r SSKrSSKrSSKJr  \ V s0 s H  o R
                  R                  5       U _M     sn r\\	\4   \
S'   0 S\R                  _S\R                  _S\R                  _S\R                  _S	\R                  _S
\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                   _S\R                   _S\R"                  _S\R$                  _0 S\R$                  _S\R$                  _S\R$                  _S\R$                  _S\R$                  _S\R$                  _S\R&                  _S\R&                  _S\R&                  _S\R(                  _S \R*                  _S!\R,                  _S"\R,                  _S#\R.                  _S$\R.                  _S%\R0                  _S&\R2                  _E\R2                  \R4                  \R4                  \R4                  S'.ErS(r\R&                  \R&                  \R&                  \R                  \R:                  \R<                  \R                  \R(                  S).r\R@                  " S*5      r!\R@                  " S+5      r"\R@                  " S,\RF                  5      r$\R@                  " S-\RF                  \RJ                  -  5      r&\R@                  " S.\RF                  \RJ                  -  5      r'\R@                  " S/5      r(\R@                  " S05      r)S1r*\R                  \R@                  " S2\RJ                  5      4\R*                  \R@                  " S35      4\R                  \R@                  " S4\RJ                  5      4\RV                  \R@                  " S55      4\R                   \R@                  " S65      4\R$                  \R@                  " S7\RF                  \RJ                  -  5      4\R                  \R@                  " S85      4\R                  \R@                  " S95      44r,S:\	S-  S;\4S< jr-SAS=\	S:\	S-  S;\4S> jjr.S=\	S;\4S? jr/S=\	S;\04S@ jr1gs  sn f )Ba�  Best-effort detection of a code block's programming language.

The blocks docling extracts are usually only a few lines. An explicit hint (a
Markdown fence token, an HTML ``language-*`` class) is therefore trusted first,
and content detection commits to a language only on a strong marker: downstream
consumers treat ``code_language`` as authoritative, so a wrong guess is worse
than ``UNKNOWN``.
é    N)ÚCodeLanguageLabelÚ_LABEL_BY_VALUEÚpyÚpython2Úpython3ÚgolangÚjsÚjsxÚnodeÚnodejsÚtsÚtsxÚcppÚcxxÚccÚcsÚcsharpÚymlÚmysqlÚpostgresÚ
postgresqlÚpsqlÚsqliteÚplsqlÚtsqlÚshÚshellÚzshÚrbÚrsÚktÚktsÚobjczobjective-cÚtexÚvb)ÚvbnetÚhtmÚhtml5Úxhtml)z	language-zlang-)Úbashr   r   r   ÚperlÚphpÚpythonÚrubyz<^#![^\n]*?\b(bash|zsh|sh|node|perl|php|python|ruby)[0-9.]*\bz<\?php\bz8<!doctype\s+html\b|</(html|head|body)>|<(head|body)[\s>]z^[ \t]*FROM\s+\S+z9^[ \t]*(RUN|CMD|COPY|ADD|ENTRYPOINT|WORKDIR|ENV|EXPOSE)\bz-\bstd::|\bcout\b|\btemplate\s*<|\bnamespace\bz,\bint\s+main\s*\(|\bprintf\s*\(|\bscanf\s*\()Ú{Ú[zQ^[ \t]*package\s+main\b|\bfunc\s+\(\w+\s+\*?\w+\)|\bfmt\.(Print|Println|Printf)\bzA\bfn\s+main\s*\(|\blet\s+mut\b|\bprintln!\s*\(|\bfn\s+\w+[^\n]*->ze^[ \t]*def\s+\w+\s*\([^\n]*\)\s*(->[^\n:]+)?:|^[ \t]*elif\b|\b__name__\b|^[ \t]*from\s+\S+\s+import\bzF\bimport\s+java\.|\bSystem\.out\.print|\bpublic\s+static\s+void\s+mainzM\busing\s+System\b|\bConsole\.(Write|WriteLine)\b|\bnamespace\s+[\w.]+\s*[{;]a  ^[ \t]*select\b(?:(?!\bfrom\b)[^\n])*(?:\n[ \t]*)?\bfrom\b(?:(?!\bwhere\b|\bjoin\b|\bgroup\s+by\b|\border\s+by\b|;)[^\n])*(?:\n[ \t]*)?(\bwhere\b|\bjoin\b|\bgroup\s+by\b|\border\s+by\b|;)|^[ \t]*insert\s+into\s+\w+\s*(\(|values\b|select\b)|^[ \t]*update\s+\w+\s+set\b[^\n]*?=|^[ \t]*delete\s+from\s+\w+\s*(\bwhere\b|;)|^[ \t]*create\s+(table|view|index|database)\s+(if\s+not\s+exists\s+)?\w+\s*(\(|as\b)|^[ \t]*alter\s+table\s+\w+\s+(add|drop|modify|alter|rename)\b|^[ \t]*drop\s+(table|view|index|database)\s+(if\s+exists\s+)?\w+\s*;za\b(readonly|public|private|protected)\s+\w+\s*:\s*\w+|:\s*(string|number|boolean)(\[\])?\s*[;,)=]zc\bconsole\.log\s*\(|\brequire\s*\(|\bmodule\.exports\b|\bdocument\.(getElementById|querySelector)\bÚhintÚreturnc                 óN  • U (       d  [         R                  $ U R                  5       R                  5       n[         H)  nUR                  U5      (       d  M  U[        U5      S n  O   [        R                  U5      nUb  U$ [        R                  U[         R                  5      $ )a¡  Resolve an explicit language token to a ``CodeLanguageLabel``.

Args:
    hint: A language token carried by the source, such as a Markdown fence
        info string or an HTML ``language-``/``lang-`` class. Common
        aliases (``py``, ``golang``, ``c++``, ``yml``, ...) are recognized.

Returns:
    The matching ``CodeLanguageLabel``, or ``CodeLanguageLabel.UNKNOWN`` if
    the hint is empty or not recognized.
N)
r   ÚUNKNOWNÚstripÚlowerÚ_HINT_PREFIXESÚ
startswithÚlenr   ÚgetÚ_ALIASES)r1   ÚtokenÚprefixÚlabels       ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/utils/code_language.pyÚnormalize_code_languager@   ¬   sŠ   € ö Ü ×(Ñ(Ð(à�J‰J‹L×ÑÓ €Eß ˆØ×Ñ˜F×#Ó#Øœ#˜f›+˜-Ð(ˆEÙñ !ô
 ×Ñ Ó&€EØÑØˆÜ�<‰<˜Ô0×8Ñ8Ó9Ð9ó    Útextc                 ó°   • [        U5      nU[        R                  La  U$ U (       a  U R                  5       (       d  [        R                  $ [	        U 5      $ )aG  Detect the programming language of a code block.

An explicit ``hint`` is trusted over the content; otherwise the language is
inferred from ``text`` using conservative, high-precision markers, and an
ambiguous snippet stays ``CodeLanguageLabel.UNKNOWN`` rather than risk a
wrong label.

Args:
    text: The contents of the code block.
    hint: An optional language token to normalize first, as accepted by
        ``normalize_code_language``.

Returns:
    The detected ``CodeLanguageLabel``, or ``CodeLanguageLabel.UNKNOWN``
    when no language can be determined with confidence.
)r@   r   r4   r5   Ú_detect_from_content)rB   r1   r>   s      r?   Údetect_code_languagerE   Ç   sF   € ô" $ DÓ)€EØÔ%×-Ñ-Ò-Øˆæ�t—z‘z—|‘|Ü ×(Ñ(Ð(ä Ó%Ð%rA   c                 ó   • U R                  5       n[        R                  U5      nU(       a  [        UR	                  S5         $ [
        R                  U 5      (       a  [        R                  $ [        R                  U 5      (       a  [        R                  $ [        R                  U 5      (       a*  [        R                  U 5      (       a  [        R                  $ SU ;   aT  [        R                  U 5      (       a  [        R                  $ [         R                  U 5      (       a  [        R"                  $ [$         H  u  p4UR                  U 5      (       d  M  Us  $    ['        U 5      (       a  [        R(                  $ [        R*                  $ )Né   z#include)ÚlstripÚ_SHEBANG_REÚmatchÚ_SHEBANG_INTERPRETERSÚgroupÚ_PHP_REÚsearchr   ÚPHPÚ_HTML_REÚHTMLÚ_DOCKERFILE_FROM_REÚ_DOCKERFILE_DIRECTIVE_REÚ
DOCKERFILEÚ_CPP_REÚC_PLUS_PLUSÚ_C_REÚCÚ_CONTENT_RULESÚ_looks_like_jsonÚJSONr4   )rB   ÚheadÚshebangr>   Úpatterns        r?   rD   rD   â   s  € Ø�;‰;‹=€Dä×Ñ Ó%€GÞÜ$ W§]¡]°1Ó%5Ñ6Ð6ä‡~�~�d×ÑÜ ×$Ñ$Ð$Ü‡��t×ÑÜ ×%Ñ%Ð%Ü×!Ñ! $×'Ñ'Ô,D×,KÑ,KÈD×,QÑ,QÜ ×+Ñ+Ð+à�TÓÜ�>‰>˜$×ÑÜ$×0Ñ0Ð0Ü�<‰<˜×ÑÜ$×&Ñ&Ð&ç(‰ˆØ�>‰>˜$×ÓØŠLñ )ô ˜×ÑÜ ×%Ñ%Ð%ä×$Ñ$Ð$rA   c                 óœ   • U R                  5       nU(       a  US   [        ;  a  g [        R                  " U5        g! [         a     gf = f)Nr   FT)r5   Ú_JSON_PREFIXÚjsonÚloadsÚ
ValueError)rB   Ústrippeds     r?   rZ   rZ      sH   € Ø�z‰z‹|€HÞ�x ‘{¬,Ó6ØðÜ�
Š
�8Ôð øô ó Ùðús   §> ¾
AÁ
A)N)2Ú__doc__ra   ÚreÚdocling_core.types.docr   Úvaluer6   r   ÚdictÚstrÚ__annotations__ÚPYTHONÚGOÚ
JAVASCRIPTÚ
TYPESCRIPTrV   ÚC_SHARPÚYAMLÚSQLÚBASHÚRUBYÚRUSTÚKOTLINÚ
OBJECTIVECÚLATEXÚVISUALBASICrQ   r;   r7   ÚPERLrO   rK   ÚcompilerI   rM   Ú
IGNORECASErP   Ú	MULTILINErR   rS   rU   rW   r`   ÚJAVArY   r@   rE   rD   ÚboolrZ   )r>   s   0r?   Ú<module>r€      sŸ  ðòó Û 	å 4ñ ->ó1Ú,= 5‡K�K×ÑÓ˜ÒÑ,=ñ1€��cÐ,Ð,Ñ-ó ð'ØÐ
×
"Ñ
"ð'àÐ ×'Ñ'ð'ð Ð ×'Ñ'ð'ð Ð×"Ñ"ð	'ð
 	Ð
×
&Ñ
&ð'ð 
Ð×'Ñ'ð'ð Ð×(Ñ(ð'ð Ð×*Ñ*ð'ð 	Ð
×
&Ñ
&ð'ð 
Ð×'Ñ'ð'ð 
Ð×(Ñ(ð'ð 
Ð×(Ñ(ð'ð 	Ð
×
'Ñ
'ð'ð 	Ð
×
#Ñ
#ð'ð Ð×'Ñ'ð'ð  
Ð×!Ñ!ð!'ð" Ð×"Ñ"ñ#'ð$ Ð!×%Ñ%ð%'ð& Ð#×'Ñ'ð''ð( Ð×!Ñ!ð)'ð* Ð×#Ñ#ð+'ð, Ð×"Ñ"ð-'ð. Ð×!Ñ!ð/'ð0 	Ð
×
 Ñ
 ð1'ð2 Ð×#Ñ#ð3'ð4 
Ð×!Ñ!ð5'ð6 	Ð
×
 Ñ
 ð7'ð8 	Ð
×
 Ñ
 ð9'ð: 	Ð
×
"Ñ
"ð;'ð< 
Ð×#Ñ#ð='ð> Ð×(Ñ(ð?'ð@ Ð$×/Ñ/ðA'ðB 
Ð×"Ñ"ðC'ðD 	Ð
×
'Ñ
'ñE'ðF ×*Ñ*Ø×!Ñ!Ø×#Ñ#Ø×#Ñ#òM'€ðR (€ð ×"Ñ"Ø
×
 Ñ
 Ø×!Ñ!Ø×(Ñ(Ø×"Ñ"Ø× Ñ Ø×&Ñ&Ø×"Ñ"ñ	Ð ð �jŠjØCó€ð �*Š*�[Ó
!€Ø�:Š:Ø?ÀÇÁó€ð —j’jÐ!5°r·}±}ÀrÇ|Á|Ñ7SÓTÐ ØŸ:š:Ø@Ø‡M�M�B—L‘LÑ óÐ ð �*Š*ÐEÓ
F€Ø
�
Š
ÐBÓC€Ø€ð 	×ÑØ
�
Š
Ø`Ø�L‰Ló	
ðð 	×ÑØ
�
Š
ØPó	
ðð 	× Ñ Ø
�
Š
ðHà�L‰Ló	
ðð 	×ÑØ
�
Š
ØUó	
ðð 	×!Ñ!Ø
�
Š
ð,ó	
ðð 	×Ñð 	�
Š
ð	Uð �M‰M˜BŸL™LÑ(ó	
ðð, 	×$Ñ$Ø
�
Š
ð<ó	
ðð 	×$Ñ$Ø
�
Š
ð=ó	
ððF€ðR: #¨¡*ð :Ð1Bô :ñ6&˜sð &¨#°©*ð &Ð@Qõ &ð6%˜sð %Ð'8ô %ð<˜3ð  4õ ùò]1s   –$R