Ë
    
Þ~fÑ  ã                   óB   — d Z ddlZddlZddlZddlmZ  G d„ de«      Zy)z*
Core Module for Web Base Data Generation
é    N)Ú	iteritemsc                   ón   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚDataHandlerc                 ó®   — || _         dg| _        i | _        i | _        i | _        i | _        i | _        d | _        g | _        g | _	        i | _
        d| _        y )Nztonic-query-data-modelT)Ú_DataHandler__rootÚtypesÚmetadataÚdataÚ	argumentsÚcurrentÚsectionsÚbasePatternÚpriorityÚargOrderÚ
realValuesÚ	can_write)ÚselfÚbasePaths     ú?lib/python3.12/site-packages/vtkmodules/web/query_data_model.pyÚ__init__zDataHandler.__init__   sZ   € ØˆŒØ.Ð/ˆŒ
ØˆŒØˆŒ	ØˆŒØˆŒØˆŒØˆÔØˆŒØˆŒØˆŒØˆ�ó    c                 ó   — | j                   S ©N)r   )r   s    r   ÚgetBasePathzDataHandler.getBasePath   s   € Ø�{‰{Ðr   c                 óÜ   — | j                   j                  d„ ¬«       d| _        d}d}| j                   D ]5  }|dk7  r||d   k(  rd}nd}|d   }d|d	   ›d
|›| j                  ›�| _        Œ7 y )Nc                 ó   — | d   S )Né   © )Úitems    r   Ú<lambda>z/DataHandler.updateBasePattern.<locals>.<lambda>   s   € ¨D°ªGr   )ÚkeyÚ éÿÿÿÿr   Ú_Ú/Ú{r   Ú})r   Úsortr   )r   ÚpatternSeparatorÚcurrentPriorityr   s       r   ÚupdateBasePatternzDataHandler.updateBasePattern   s   € Ø�‰×ÑÑ3ÐÔ4ØˆÔØÐØˆà—M”MˆDØ "Ò$Ø" d¨1¡gÒ-Ø'*Ñ$à'*Ð$Ø" 1™g‰Oà�Q“Ù Ø× Ò ð ˆDÕñ "r   c                 óV  — i }|d   }| j                   j                  |«       t        |«      D ]e  \  }}|dk(  r| j                  j                  ||g«       Œ)|dk(  r3|| j                  |<   |D �cg c]  }dj                  |¬«      ‘Œ c}||<   Œa|||<   Œg || j                  |<   yc c}w )z´
        We expect the following set of arguments
         - priority
         - name
         - label (optional)
         - values
         - uiType
         - defaultIdx
        Únamer   Úvaluesz{value})ÚvalueN)r   Úappendr   r   r   Úformatr   )r   ÚkwargsÚnewArgumentÚargNamer!   r/   Úxs          r   ÚregisterArgumentzDataHandler.registerArgument/   s²   € ð ˆØ˜‘.ˆØ�‰×Ñ˜WÔ%Ü# FÖ+‰JˆC�Ø�jÒ Ø—‘×$Ñ$ g¨uÐ%5Õ6Ø˜’Ø+0�—‘ Ñ(ÙGLÓ#MÁuÀ! I×$4Ñ$4¸1Ð$4Õ$=ÀuÑ#M�˜CÒ à#(�˜CÒ ð ,ð #.ˆ�‰�wÒùò	 $Ns   Á/B&c                 óB   — | j                   D ]  }|d   |k(  sŒ||d<   Œ y )Nr   r   )r   )r   ÚargumentNameÚnewPriorityr   s       r   ÚupdatePriorityzDataHandler.updatePriorityG   s%   € Ø—M”MˆDØ�A‰w˜,Ó&Ø%��Q’ñ "r   c                 óH   — t        |«      D ]  \  }}|| j                  |<   Œ y)z,
        Update the arguments index
        N)r   r   )r   r2   r!   r/   s       r   ÚsetArgumentszDataHandler.setArgumentsL   s%   € ô $ FÖ+‰JˆC�Ø %ˆD�L‰L˜Òñ ,r   c                 ó   — | j                   |= y r   ©r
   )r   r-   s     r   Ú
removeDatazDataHandler.removeDataS   s   € Ø�I‰I�d‰Or   c                 ó¤   — di i}|d   }t        |«      D ]*  \  }}|dk(  rd|v r|d   r	d|z  |d<   Œd|z  |d<   Œ&|||<   Œ, || j                  |<   y)	z>
        name, type, mimeType, fileName, dependencies
        r	   r-   ÚfileNameÚrootFilez{pattern}/%sÚpatternz{pattern}%sN)r   r
   )r   r2   ÚnewDatar4   r!   r/   s         r   ÚregisterDatazDataHandler.registerDataV   sx   € ð ˜rÐ"ˆØ˜‘.ˆÜ# FÖ+‰JˆC�Ø�jÒ Ø Ñ'¨F°:Ò,>Ø)7¸%Ñ)?�G˜IÒ&à)6¸Ñ)>�G˜IÒ&à$�˜’ð ,ð %ˆ�	‰	�'Òr   c                 ó.   — || j                   |   d   |<   y )Nr	   r>   )r   r-   r!   r/   s       r   ÚaddDataMetaDatazDataHandler.addDataMetaDatag   s   € Ø+0ˆ�	‰	�$‰˜
Ñ# CÒ(r   c                 ó*  — | j                   |   d   }d|v r�t        | j                  «      dk(  rI|j                  d| j                  «      j                  d| j                  «      }|| j                   |   d<   n.|j                  d| j                  «      }|| j                   |   d<   i }t	        | j
                  «      D ]  \  }}| j                  |   d   |   ||<   Œ t        j                  j                  | j                   |j                  di |¤Ž«      }|rz| j                  rnt        j                  j                  t        j                  j                  |«      «      s2t        j                  t        j                  j                  |«      «       |S )NrC   ú	{pattern}r   z
{pattern}/r.   r   )r
   Úlenr   Úreplacer   r   r   ÚosÚpathÚjoinr   r1   r   ÚexistsÚdirnameÚmakedirs)r   r-   ÚcreateDirectoriesÚdataPatternÚkeyValuePairr!   r/   Úfullpaths           r   ÚgetDataAbsoluteFilePathz#DataHandler.getDataAbsoluteFilePathj   sE  € Ø—i‘i ‘o iÑ0ˆØ˜+Ñ%Ü�4×#Ñ#Ó$¨Ò)Ø)×1Ñ1Ø  $×"2Ñ"2óç‘'˜+ t×'7Ñ'7Ó8ð ð .9�—	‘	˜$‘ 	Ò*à)×1Ñ1°+¸t×?OÑ?OÓP�Ø-8�—	‘	˜$‘ 	Ñ*àˆÜ# D§L¡LÖ1‰JˆC�Ø $§¡¨sÑ 3°HÑ =¸eÑ DˆL˜Òð 2ô —7‘7—<‘< §¡Ð-?¨[×-?Ñ-?Ñ-OÀ,Ñ-OÓPˆá §¢Ü—7‘7—>‘>¤"§'¡'§/¡/°(Ó";Ô<Ü—‘œBŸG™GŸO™O¨HÓ5Ô6àˆr   c                 óH   — |D ]  }| j                   j                  |«       Œ y r   )r   r0   )r   ÚargsÚargs      r   ÚaddTypeszDataHandler.addTypes‚   s   € ÛˆCØ�J‰J×Ñ˜cÕ"ñ r   c                 ó"   — || j                   |<   y r   )r	   ©r   r!   r/   s      r   ÚaddMetaDatazDataHandler.addMetaData†   ó   € Ø"ˆ�‰�cÒr   c                 ó"   — || j                   |<   y r   )r   r\   s      r   Ú
addSectionzDataHandler.addSection‰   r^   r   c                 óî   — | j                   d k(  r| j                  «        | j                  D ]G  }| j                  |   d   }d|v sŒ|j                  d| j                   «      }|| j                  |   d<   ŒI y )NrC   rI   )r   r+   r
   rK   )r   r-   rS   s      r   ÚcomputeDataPatternszDataHandler.computeDataPatternsŒ   sn   € Ø×Ñ˜tÒ#Ø×"Ñ"Ô$à—I”IˆDØŸ)™) D™/¨)Ñ4ˆKØ˜kÒ)Ø)×1Ñ1°+¸t×?OÑ?OÓP�Ø-8�—	‘	˜$‘ 	Ò*ñ	 r   c              #   óâ   K  — | j                   d k(  r| j                  «        t        t        | j                  |   d   «      «      D ]%  }|| j
                  |<   | j                  |   |   –— Œ' y ­w)Nr.   )r   r+   ÚrangerJ   r   r   r   )r   r-   Úis      r   Ú__getattr__zDataHandler.__getattr__–   sd   è ø€ Ø×Ñ˜tÒ#Ø×"Ñ"Ô$ä”s˜4Ÿ>™>¨$Ñ/°Ñ9Ó:Ö;ˆAØ!"ˆD�L‰L˜ÑØ—/‘/ $Ñ'¨Ñ*Ó*ñ <ùs   ‚A-A/c                 ó"  — | j                   sy | j                  «        | j                  | j                  | j                  | j
                  g dœ}t        | j                  «      D ]
  \  }}|||<   Œ t        | j                  «      D ]  \  }}|d   j                  |«       Œ t        j                  j                  | j                  d«      }t        |d«      5 }|j                  t!        j"                  |«      «       d d d «       y # 1 sw Y   y xY w)N)Úarguments_orderÚtyper   r	   r
   r
   z
index.jsonÚw)r   rb   r   r   r   r	   r   r   r
   r0   rL   rM   rN   r   ÚopenÚwriteÚjsonÚdumps)r   ÚjsonDatar!   r/   ÚfilePathToWriteÚfileToWrites         r   ÚwriteDataDescriptorzDataHandler.writeDataDescriptorž   s×   € Ø�~Š~Øà× Ñ Ô"ð  $Ÿ}™}Ø—J‘JØŸ™ØŸ™Øñ
ˆô $ D§M¡MÖ2‰JˆC�Ø!ˆH�SŠMð 3ô $ D§I¡IÖ.‰JˆC�Ø�VÑ×#Ñ# EÕ*ð /ô Ÿ'™'Ÿ,™, t§{¡{°LÓAˆÜ�/ 3Ô'¨;Ø×ÑœdŸj™j¨Ó2Ô3÷ (×'Ñ'ús   Ã%DÄDN)T)Ú__name__Ú
__module__Ú__qualname__r   r   r+   r6   r:   r<   r?   rE   rG   rV   rZ   r]   r`   rb   rf   rr   r   r   r   r   r   
   sR   „ òòòò&.ò0&ò
&òò%ò"1óò0#ò#ò#ò9ò+ó4r   r   )Ú__doc__ÚsysrL   rm   Úvtkmodules.webr   Úobjectr   r   r   r   Ú<module>rz      s#   ðñ÷ Ó å $ôl4�&õ l4r   