ó
    qyüia8  ã                  óx   • S SK Jr  S SKrS SKrS SKJr  \" 5       (       a  S SKrOSrSS jrSS jr    S	S jr	g)
é    )ÚannotationsN)Úis_jmespath_availablec                ó  ^• / mU4S jn[         R                  " SX[         R                  S9n [         R                  " SSU 5      n [        T5       H/  u  p#U R	                  SU S3[
        R                  " U5      5      n M1     U $ )z[Convert Gemma4 tool call format (unquoted keys, ``<|"|>`` string delimiters) to valid JSON.c                óh   >• TR                  U R                  S5      5        S[        T5      S-
   S3$ )Né   Ú )ÚappendÚgroupÚlen)ÚmÚstringss    €Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/utils/chat_parsing_utils.pyÚ_captureÚ&_gemma4_json_to_json.<locals>._capture!   s0   ø€ Ø�‰�q—w‘w˜q“zÔ"Ø”c˜'“l QÑ&Ð' tÐ,Ð,ó    z<\|"\|>(.*?)<\|"\|>©Úflagsz(?<=[{,])(\w+):z"\1":r   )ÚreÚsubÚDOTALLÚ	enumerateÚreplaceÚjsonÚdumps)Útextr   ÚiÚsr   s       @r   Ú_gemma4_json_to_jsonr      ss   ø€ à€Gõ-ô
 �6Š6Ð(¨(ÄÇ	Á	ÑJ€Dä�6Š6Ð$ h°Ó5€Dô ˜'Ö"‰ˆØ�|‰|˜d 1 # T˜N¬D¯JªJ°q«MÓ:Šñ #ð €Kr   c                óx  • U R                  5       (       a8  U R                  5       R                  5        VVs0 s H  u  pUc  M
  X_M     snn$ [        U R                  5       5      n[	        U5      S:”  a  [        SU S35      e[	        U5      S:X  a  [        SU R                  S5       35      eUS   $ s  snnf )Nr   z+Regex has multiple unnamed groups!
Groups: Ú
r   zRegex has no capture groups:

)Ú	groupdictÚitemsÚlistÚgroupsr   Ú
ValueErrorr
   )Ú
node_matchÚkeyÚvalr$   s       r   Ú_parse_re_matchr)   1   s´   € à×Ñ×ÑØ)3×)=Ñ)=Ó)?×)EÑ)EÔ)GÔ[Ò)G™X˜SÈ3“�’Ñ)GÒ[Ð[ô �j×'Ñ'Ó)Ó*ˆÜˆv‹;˜‹?ÜÐKÈFÈ8ÐSUÐVÓWÐWÜ�‹[˜AÓÜÐ?À
×@PÑ@PÐQRÓ@SÐ?TÐUÓVÐVØ�a‰yÐùó \s   ·	B6ÁB6c           
     óÎ  • SU;   a  US   $ U c  gUR                  S5      nSU;   =(       d    SU;   =(       d    SU;   =(       d    SU;   nU(       a&  [        U [        5      (       d  [        SU  S	U 35      eUR                  S/ 5      nU H.  n[        R
                  " US
   US   U [        R                  S9n M0     UR                  S5      nUR                  S5      nUR                  S5      nUb6  [        R                  " X`[        R                  S9n	U	(       d  g[        U	5      n Ub[  US:w  a  [        SU SU 35      e[        R                  " Xp[        R                  S9 V	s/ s H  n	[        U	5      PM     n n	U (       d  gUb”  US:w  a  [        SU SU 35      e0 n
[        R                  " X€[        R                  S9 HJ  n	[        U	5      n[        U[        5      (       a  SU;  d  SU;  a  [        SU S	U 35      eUS   X«S   '   ML     U
n U (       d  gSU;   aù  US   nUS:X  a3  [        U [        5      (       d  [        SU  S	U 35      e[        U 5      n SnUS:X  a¤  [        U [        5      (       d  [        SU  S	U 35      eUR                  S0 5      nUR                  S5      nUR                  SS5      n [        R                  " U 5      nUb,  [         c  [#        S 5      e[         R                  " US   U5      nUn O[        S!U S"U 35      eUS:X  Ga×  0 n[        U [        5      (       aP  S#U;  a  [        S$U  S	U 35      eUS#   R%                  5        H!  u  nn['        XS#   U   5      nUc  M  UUU'   M#     Où[        U [        5      (       aÖ  UR                  S#0 5      R%                  5        H@  u  nnSU;   a
  US   UU'   M  UU ;   a  ['        U U   U5      UU'   M0  S%U;   d  M8  US%   UU'   MB     UR                  S&S'5      nUSLaZ  [        U[        5      (       a  UO0 nU R%                  5        H-  u  nnUUR                  S#0 5      ;  d  M  ['        UU5      UU'   M/     O[        S(U  35      eUR                  S)/ 5      nU Vs/ s H  nUU;  d  M  UPM     nnU(       aB  [        U [        5      (       a  [)        U SS* 5      O
[)        U 5      n[        S+U S,U S-U 35      eU$ US:X  Ga&  U (       d  / $ / nS.U;   aL  [        U [*        5      (       d  [        S/U  35      eU  H!  nUR-                  ['        UUS.   5      5        M#     U$ S0U;   aµ  [        U [*        5      (       d$  [/        US0   5      S:X  a  U /n O[        S/U  35      e[/        U 5      [/        US0   5      :w  a,  [        S1[/        U 5       S2[/        US0   5       S3U  S	U 35      e[1        XS0   5       H!  u  nnUR-                  ['        UU5      5        M#     U$ [        S4U 35      eUS5;   Gaœ  US6:X  a\  [        U [2        5      (       a  U $ [        U [        5      (       d$  [        S7[5        U 5      R6                   S8U  35      e [3        U 5      $ US::X  ak  [        U [2        [8        45      (       a  [9        U 5      $ [        U [        5      (       d$  [        S;[5        U 5      R6                   S8U  35      e [9        U 5      $ US=:X  aˆ  [        U [:        5      (       a  U $ [        U [        5      (       d$  [        S>[5        U 5      R6                   S8U  35      eU R=                  5       S?;   a  g'U R=                  5       S@;   a  g[        SAU  35      e[        U [        5      (       d$  [        SB[5        U 5      R6                   S8U  35      eU $ Ub  USC:X  a  U $ [        SDU SEU  35      es  sn	f ! [        R                   a%  nU(       a  U n SnAGN5[        SU  SU 35      eSnAff = fs  snf ! [         a    [        S9U < 35      ef = f! [         a    [        S<U < 35      ef = f)Fa“  
This function takes content and a JSON schema which includes
regex extractors, and recursively parses the content. The output
should be a data structure matching the schema.

Args:
    node_content: The content corresponding to this node. Usually a string, but can be something else
                  if the parent node has multiple capture groups or named groups. In that case,
                  we generally pass the capture groups straight through to the children of this node
                  and don't do any parsing at this level.
    node_schema: The schema node controlling the parsing.

Returns:
    The parsed data structure for the current node.
ÚconstNÚtypezx-regexzx-regex-iteratorzx-regex-key-valuezx-regex-substitutionszXSchema node got a non-string input, but has a regex for parsing or substitution.
Input: z	
Schema: r   r   r   ÚarrayzSchema node with type z& cannot use x-regex-iterator.
Schema: Úobjectz' cannot use x-regex-key-value.
Schema: r'   ÚvaluezTRegex for x-regex-key-value must have named groups 'key' and 'value'.
Match groups: zx-parserzgemma4-tool-callz;Node has Gemma4 tool call parser but got non-string input: r   z/Node has JSON parser but got non-string input: zx-parser-argsÚ	transformÚallow_non_jsonFz©Node has JSON parser but could not parse its contents as JSON. You can use the `allow_non_json` parser arg for nodes which may contain JSON or string content.

Content: z	

Error: z‡Chat response schema includes a jmespath transformation, but jmespath is not installed. You can install it with `pip install jmespath`.zUnknown parser z for schema node: Ú
propertieszVObject node received string content but has no regex or parser to handle it.
Content: ÚdefaultÚadditionalPropertiesTz=Expected a dict or str for schema node with type object, got Úrequirediô  zRequired fields z) are missing from parsed output.
Parsed: z
Input: r"   z>Expected a list or regex for schema node with type array, got ÚprefixItemszArray node has z items, but schema only has z prefixItems defined.
Content: z?Array node has no items or prefixItems schema defined.
Schema: )ÚstringÚintegerÚnumberÚbooleanr8   z@Expected a string or int for schema node with type integer, got z: zVSchema node has type 'integer', but the parsed string content is not a valid integer: r9   zBExpected a string or number for schema node with type number, got zTSchema node has type 'number', but the parsed string content is not a valid number: r:   zAExpected a string or bool for schema node with type boolean, got )ÚtrueÚ1)ÚfalseÚ0zInvalid boolean value: z8Expected a string for schema node with type string, got ÚanyzUnsupported schema type z for node: )ÚgetÚ
isinstanceÚstrÚ	TypeErrorr   r   r   Úsearchr)   ÚfinditerÚdictr%   r   r   ÚloadsÚJSONDecodeErrorÚjmespathÚImportErrorr"   Úrecursive_parseÚreprr#   r	   r   ÚzipÚintr,   Ú__name__ÚfloatÚboolÚlower)Únode_contentÚnode_schemaÚ	node_typeÚ	has_regexÚ	node_subsÚnode_subÚ
node_regexÚnode_regex_iteratorÚnode_regex_to_dictr&   Úoutput_contentÚmatch_groupsÚparserÚparser_argsr0   r1   Úparsed_jsonÚeÚparsed_schemar'   Ú
child_nodeÚchild_node_contentÚadditional_schemar/   r5   ÚmissingÚinput_previewÚitemÚitem_schemas                                r   rK   rK   ?   s½	  € ð* �+ÓØ˜7Ñ#Ð#ð ÑØð —‘ Ó'€Ià�[Ñ ÷ 	2Ø Ñ,÷	2à +Ñ-÷	2ð # kÑ1ð	 ö œ L´#×6Ñ6ÜðØ"�^ð $Ø"�mð%ó
ð 	
ð —‘Ð 7¸Ó<€IÛˆÜ—v’v˜h q™k¨8°A©;¸ÌBÏIÉIÑVŠñ à—‘ Ó+€JØ%Ÿ/™/Ð*<Ó=ÐØ$Ÿ™Ð)<Ó=ÐØÑÜ—Y’Y˜z¼r¿y¹yÑIˆ
ÞØÜ& zÓ2ˆØÑ&Ø˜ÓÜÐ4°Y°KÐ?fÐgrÐfsÐtÓuÐuô !ŸkškÐ*=ÔSU×S\ÑS\Ò]ó
â]�
ô ˜JÖ'Ù]ð 	ð 
ö ØØÑ%Ø˜Ó ÜÐ4°Y°KÐ?gÐhsÐgtÐuÓvÐvàˆÜŸ+š+Ð&8ÌbÏiÉiÔXˆJÜ*¨:Ó6ˆLÜ˜l¬D×1Ñ1°UÀ,Ó5NÐRYÐamÓRmÜ ð%Ø%1 Nð 3Ø*˜mð-óð ð
 3?¸wÑ2GˆN¨Ñ.Ó/ñ Yð &ˆÞØð �[Ó Ø˜ZÑ(ˆØÐ'Ó'Ü˜l¬C×0Ñ0ÜØQÐR^ÐQ_Ð_iÐjuÐivÐwóð ô 0°Ó=ˆLØˆFØ�VÓÜ˜l¬C×0Ñ0ÜØEÀlÀ^ÐS]Ð^iÐ]jÐkóð ð &Ÿ/™/¨/¸2Ó>ˆKØ#Ÿ™¨Ó4ˆIØ(Ÿ_™_Ð-=¸uÓEˆNðÜ"Ÿjšj¨Ó6�ð Ñ$ÜÑ#Ü%ð bóð ô 'Ÿošo¨k¸+Ñ.FÈÓT�Ø&‰Lä˜¨v¨hÐ6HÈÈÐVÓWÐWð �HÔØˆÜ�l¤C×(Ñ(ð  ;Ó.Ü ð Ø ,˜~ð .Ø*˜mð-óð ð
 $/¨|Ñ#<×#BÑ#BÖ#D‘��ZÜ%4°\È|ÑC\Ð]`ÑCaÓ%bÐ"Ø%Ó1Ø);�M #Ó&ò $Eô ˜¤d×+Ñ+Ø#.§?¡?°<ÀÓ#D×#JÑ#JÖ#L‘��ZØ˜jÓ(Ø)3°GÑ)<�M #Ó&Ø˜LÓ(Ü)8¸ÀcÑ9JÈJÓ)W�M #Ó&Ø *Õ,Ø)3°IÑ)>�M #Ó&ñ $Mð !,§¡Ð0FÈÓ MÐà ¨Ò-Ü9CÐDUÔW[×9\Ñ9\Ñ$5ÐbdÐ!Ø".×"4Ñ"4Ö"6‘J�C˜Ø +§/¡/°,ÀÓ"CÕCÜ-<¸UÐDUÓ-V˜ cÓ*ñ #7øô Ð[Ð\hÐ[iÐjÓkÐkØ—?‘? :¨rÓ2ˆÙ"*ÓG¢(˜3¨c¸Ñ.F—3¡(ˆÐGÞÜ8BÀ<ÔQT×8UÑ8UœD ¨d¨sÐ!3Ô4Ô[_Ð`lÓ[mˆMÜØ" 7 )ð ,Ø(˜/ð *Ø'˜ð*óð ð
 ÐØ	�gÔ	ÞØˆIØˆØ�kÓ!Ü˜l¬D×1Ñ1ÜÐ"`ÐamÐ`nÐ oÓpÐpÛ$�Ø×$Ñ$¤_°T¸;ÀwÑ;OÓ%PÖQñ %à Ð Ø˜kÓ)Ü˜l¬D×1Ñ1Ü�{ =Ñ1Ó2°aÓ7à$0 >‘Lä#Ð&dÐeqÐdrÐ$sÓtÐtÜ�<Ó ¤C¨°MÑ(BÓ$CÓCÜ Ø%¤c¨,Ó&7Ð%8Ð8TÜ˜; }Ñ5Ó6Ð7ð 8 Ø ,˜~ð .Ø*˜mð-óð ô &)¨À=Ñ7QÖ%RÑ!��kØ×$Ñ$¤_°T¸;Ó%GÖHñ &Sà Ð äÐ_Ð`kÐ_lÐmÓnÐnØ	Ð@Ô	@Ø˜	Ó!Ü˜,¬×,Ñ,Ø#Ð#Ü˜l¬C×0Ñ0ÜØVÔW[Ð\hÓWi×WrÑWrÐVsÐsuð  wCð  vDð  Eóð ðÜ˜<Ó(Ð(ð
 ˜(Ó"Ü˜,¬¬e¨×5Ñ5Ü˜\Ó*Ð*Ü˜l¬C×0Ñ0ÜØXÔY]Ð^jÓYk×YtÑYtÐXuÐuwð  yEð  xFð  Góð ðÜ˜\Ó*Ð*ð
 ˜)Ó#Ü˜,¬×-Ñ-Ø#Ð#Ü˜l¬C×0Ñ0ÜØWÔX\Ð]iÓXj×XsÑXsÐWtÐtvð  xDð  wEð  Fóð ð ×!Ñ!Ó# }Ó4ØØ×#Ñ#Ó%¨Ó7Øä Ð#:¸<¸.Ð!IÓJÐJô ˜l¬C×0Ñ0ÜØNÌtÐT`ÓOa×OjÑOjÐNkÐkmÐnzÐm{Ð|óð ð  ÐØ	Ñ	˜i¨5Ó0ØÐäÐ2°9°+¸[ÈÈÐWÓXÐXùòq
øôZ ×'Ñ'ó Þ!Ø".–Kä$ð Fð  GSð  FTð  T_ð  `að  _bð  cóð ûð	üòf Høô` ó Ü ØlÐmyÑl|Ð}óð ðûô ó Ü ØjÐkwÑjzÐ{óð ðúsH   Å(_'Ë_, Ò
`(Ò(`(Ú
`- Û7
a
 ß,`%à 	` à` à `%à-aá
a$)r   rB   ÚreturnrB   )r&   zre.Matchrj   z
dict | str)rS   zstr | list | dictrT   rF   )
Ú
__future__r   r   r   Útransformers.utilsr   rI   r   r)   rK   © r   r   Ú<module>rn      sK   ðõ #ã Û 	å 4ñ ×ÑÜà€Hôô(ðrYØ#ðrYàõrYr   