Ë
    ¯·gó3  ã                   óZ   — d Z ddlZddlZddlZddlZdZd„ Z G d„ d«      Z G d„ d«      Zy)zŒ
This python module provides functionality to parse the methods of a
VTK object.

Created by Prabhu Ramachandran.  Committed in Apr, 2002.

é    Nc                 ó(   — t         rt        | «       y y ©N)ÚDEBUGÚprint)Úmsgs    ú?lib/python3.12/site-packages/vtkmodules/util/vtkMethodParser.pyÚdebugr	      s   € ÝÜˆc�
ð ó    c                   óL   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚVtkDirMethodParserz' Parses the methods from dir(vtk_obj). c                 ó¬   — t        d«       t        |«      d d  | _        g | _        g | _        g | _        g | _        t        j                  d«      | _	        y )Nz*VtkDirMethodParser:: initialize_methods ()z
To[A-Z0-9])
r	   ÚdirÚmethodsÚtoggle_methsÚstate_methsÚget_set_methsÚ	get_methsÚreÚcompileÚ
state_patn©ÚselfÚvtk_objs     r   Úinitialize_methodsz%VtkDirMethodParser.initialize_methods   sL   € ÜÐ;Ô<ä˜G“}¡QÐ'ˆŒàˆÔàˆÔð  ˆÔàˆŒÜŸ*™* lÓ3ˆ�r
   c                 ó8  — t        d«       | j                  |«       t        d«       | j                  d d  D �]i  }|d d j                  d«      dk\  r.| j                  j                  |«      �	 t        d|dd  z  «       ŒI|dd  j                  d«      dk\  rz	 | j                  j                  d	|d d z  «       | j                  j                  |«       | j                  j                  |«       | j                  j                  d	|d d z  «       ŒÚ|d d j                  d
«      dk(  sŒòd|dd  z   }	 | j                  j                  |«       | j                  j                  |dd  «       | j                  j                  |«       | j                  j                  |«       �Œl | j                  |«       y # t        $ r: | j                  j                  |«       | j                  j                  |«       Y �ŒÁw xY w# t        $ r Y �ŒÑw xY w# t        $ r Y �Œáw xY w)Nz$VtkDirMethodParser:: parse_methods()z:VtkDirMethodParser:: parse_methods() - initialized methodsé   ÚSetr   zvtk_obj.Get%séþÿÿÿÚOnz%sOffÚGet)r	   r   r   Úfindr   ÚsearchÚevalÚAttributeErrorr   ÚappendÚremoveÚindexr   Ú
ValueErrorr   Úclean_up_methods)r   r   ÚmethodÚset_ms       r   Úparse_methodsz VtkDirMethodParser.parse_methods%   så  € ÜÐ5Ô6Ø×Ñ Ô)ÜÐKÔLà—l‘l¡1”oˆFà�b�qˆz�‰˜uÓ%¨Ò*Ø—‘×'Ñ'¨Ó0Ð<ð1Ü˜/¨&°°¨*Ñ4Õ5ð
 ˜˜�×!Ñ! $Ó'¨1Ò,ð>Ø—L‘L×&Ñ&¨°°s¸°Ñ(;Ô<ð ×%Ñ%×,Ñ,¨fÔ5Ø—L‘L×'Ñ'¨Ô0Ø—L‘L×'Ñ'¨°¸¸°Ñ)<Õ=à˜˜�—‘ Ó'¨1Ó,Ø˜f Q R˜jÑ(�ð0Ø—L‘L×&Ñ&¨Ô.ð ×&Ñ&×-Ñ-¨v°a°b¨zÔ:Ø—L‘L×'Ñ'¨Ô0Ø—L‘L×'Ñ'¨Ö/ð; &ð> 	×Ñ˜wÕ'øô3 &ò 1Ø×$Ñ$×+Ñ+¨VÔ4Ø—L‘L×'Ñ'¨×0ð1ûô "ò Úðûô "ò Úðús6   Á.F6Â!G<Ä2HÆ6?G9Ç8G9Ç<	H	ÈH	È	HÈHc                 ój   — | j                  |«       | j                  |«       | j                  |«       y r   )Úclean_get_setÚclean_state_methodsÚclean_get_methodsr   s     r   r)   z#VtkDirMethodParser.clean_up_methodsK   s,   € Ø×Ñ˜GÔ$Ø× Ñ  'Ô*Ø×Ñ Õ(r
   c                 óú  — t        d«       | j                  D ]!  }	 | j                  j                  |d d «       Œ# | j                  d d  D ],  }	 t        d|z  «       | j                  j                  |«       Œ. y # t        $ r Y Œnw xY w# t        t        f$ r Y nw xY w	 t        d|z  «      }|�Œf| j                  j                  |«       Œ‚# t        t        f$ r | j                  j                  |«       Y Œ®w xY w)Nz$VtkDirMethodParser:: clean_get_set()r   ú vtk_obj.Get%s ().GetClassName ()úvtk_obj.Get%s ())r	   r   r   r&   r(   r#   Ú	TypeErrorr$   )r   r   r*   Úvals       r   r.   z VtkDirMethodParser.clean_get_setP   s  € ÜÐ5Ô6à×'Ô'ˆFðØ×"Ñ"×)Ñ)¨6°#°2¨;Õ7ð (ð ×(Ñ(©Ó+ˆFðÜÐ8¸Ñ?Ô@ð ×"Ñ"×)Ñ)¨6Ô2Øñ ,øô ò Ùðûô œ~Ð.ò Ùðúð
7ÜÐ.¨vÑ5Ó6�ð ‘;Ø×&Ñ&×-Ñ-¨vÕ6øô	 œ~Ð.ò 3Ø×"Ñ"×)Ñ)¨6Ö2ð3ús5   œA;ÁB
Á;	BÂBÂ
BÂBÂ CÃ*C:Ã9C:c                 óŽ  — t        d«       | j                  d d  D ]P  }|d d j                  d«      dk(  sŒ| j                  j	                  |«       | j                  j                  |«       ŒR t        | j                  «      dk7  �r | j                  d d  }g | _        |d   g}| j                  j                  |d   «      j                  «       }|d   d| }t        dt        |«      «      D �]  }||   j                  |«      dk\  r|j	                  ||   «       nU| j                  j	                  |«       ||   g}| j                  j                  ||   «      j                  «       }||   d| }	 | j                  j                  |«      }| j                  |= d|z   dz   }		 | j                  j                  |	«      }| j                  |= | j                  j                  d|z   dz   «      }| j                  |= �Œ t        |«      dkD  r| j                  j	                  |«       y y y # t        $ r Y Œ™w xY w# t        $ r Y �ŒWw xY w)Nz*VtkDirMethodParser:: clean_state_methods()r   r    r   é   ÚMinValueÚMaxValue)r	   r   r!   r   r%   r&   Úlenr   r   r"   ÚstartÚranger   r'   r(   )
r   r   r*   ÚtmpÚstate_groupÚendÚmÚir5   Úclamp_ms
             r   r/   z&VtkDirMethodParser.clean_state_methodsk   s(  € ÜÐ;Ô<à—l‘l¡1“oˆFØ�b�qˆz�‰˜uÓ%¨Ó*Ø—‘×%Ñ% vÔ.Ø—‘×#Ñ# VÕ,ð &ô �× Ñ Ó! QÓ&Ø×"Ñ"¡1Ð%ˆCØ!ˆDÔØ˜q™6˜(ˆKØ—/‘/×(Ñ(¨#¨a©&Ó1×7Ñ7Ó:ˆCà�A‘�q˜�ˆAÜ˜Aœs C›y×)�Ø�q‘6—;‘;˜q“> QÒ&Ø×&Ñ&¨¨A©Õ/à×$Ñ$×+Ñ+¨[Ô9Ø#& q¡6 (�KØŸ/™/×0Ñ0°#°a±&Ó9×?Ñ?ÓB�CØ˜A™˜q ˜�Að0Ø×,Ñ,×2Ñ2°AÓ6�Cð ×*Ñ*¨3Ð/à !™) jÑ0�ð,ØŸ.™.×.Ñ.°Ó8�Cð Ÿ™ sÐ+ØŸ.™.×.Ñ.°¸±	¸JÑ0FÓG�CØŸ™ sÒ+ð/ *ô2 �KÓ  1Ò$Ø× Ñ ×'Ñ'¨Õ5ð %ðA 'øô" "ò Ùðûô "ò Úðús$   Å2H(Æ#H7È(	H4È3H4È7	IÉIc                 óL  — t        d«       | j                  d d  D ]F  }t        |«       	 t        d|z  «      }	 t        d|z  «       | j                  j                  |«       ŒH | j                  j                  «        y # t        $ r Y n4w xY w# t
        t        f$ r | j                  j                  |«       Y ŒŸw xY w|dd  j                  d«      dkD  r| j                  j                  |«       ŒÖ|dd  j                  d«      dkD  sŒî| j                  j                  |«       �Œ)Nz(VtkDirMethodParser:: clean_get_methods()zvtk_obj.%s ()zvtk_obj.%s ().GetClassName ()iøÿÿÿr9   éÿÿÿÿr8   )r	   r   r#   r&   r$   r4   r!   Úsort)r   r   r*   Úress       r   r0   z$VtkDirMethodParser.clean_get_methods—   s  € ÜÐ9Ô:Ø—n‘n¡QÓ'ˆFÜ�6ŒNðÜ˜O¨FÑ2Ó3�ð
ÜÐ9¸&Ñ@ÔAð —N‘N×)Ñ)¨6Ô2Øð (ð( 	�‰×ÑÕøô &ò Ùðûô œ~Ð.ò Ø—‘×%Ñ% vÔ.Ùðúð �b�cˆ{×Ñ 
Ó+¨bÒ0Ø—‘×%Ñ% vÕ.Ø˜˜�×!Ñ! *Ó-°Ó2Ø—‘×%Ñ% vÖ.s"   ªB¹A?Á?	BÂ
BÂ*B;Â:B;c                 ó   — | j                   S r   ©r   ©r   s    r   Útoggle_methodsz!VtkDirMethodParser.toggle_methods¯   ó   € Ø× Ñ Ð r
   c                 ó   — | j                   S r   ©r   rI   s    r   Ústate_methodsz VtkDirMethodParser.state_methods²   ó   € Ø×ÑÐr
   c                 ó   — | j                   S r   ©r   rI   s    r   Úget_set_methodsz"VtkDirMethodParser.get_set_methodsµ   ó   € Ø×!Ñ!Ð!r
   c                 ó   — | j                   S r   ©r   rI   s    r   Úget_methodszVtkDirMethodParser.get_methods¸   ó   € Ø�~‰~Ðr
   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r,   r)   r.   r/   r0   rJ   rN   rR   rV   © r
   r   r   r      s9   „ Ù1ò4ò$(òL)ò
7ò6*6òXò0!ò ò"ór
   r   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚVtkPrintMethodParserzÅ This class finds the methods for a given vtkObject.  It uses
    the output from vtkObject->Print() (or in Python str(vtkObject))
    and output from the VtkDirMethodParser to obtain the methods. c                 ó  — t        d«       | j                  |«      ry| j                  dd D ]=  }|d   dk(  s|d   j                  d«      dkD  sŒ#| j                  j	                  |«       Œ? | j                  D �]J  }|d   dk(  s|d   dk(  ra	 t        d	|d
   z  «      }|dk(  rt        d|d
   z  «       n|d
k(  rt        d|d
   z  «       | j                  j                  |d
   dz   «       Œud
}| j                  dd D ]U  }|d
   j                  |d
   «      d
k\  sŒ| j                  j                  |«       | j                  j	                  |«       d}ŒW |rY| j                  j                  d|d
   z   «       	 t        d|d
   z  «      }| j                  j                  d|d
   z   dz   «       �Œ9	 t        d|d
   z  «      }�ŒM | j                  |«       y# t        $ r Y �Œlw xY w# t        $ r Y �Œ|w xY w# t        $ r Y nw xY wd
}	 t        d	|d
   z  «      }	 t        d|d
   z  «      }	  ||Ž  | j                  j                  |d
   «       �ŒÛ# t        $ rZ 	  ||fŽ  | j                  j                  |d
   «       n0# t        $ r$ | j                  j                  d|d
   z   «       Y nw xY wY �Œ=w xY w# t        $ r% | j                  j                  d|d
   z   «       Y �Œnw xY w# t        t        f$ r Y �Œ„w xY w)zParse for the methods.z&VtkPrintMethodParser:: parse_methods()Nr7   Ú ÚnonerD   r   ÚOffr3   r   zvtk_obj.%sOn ()zvtk_obj.%sOff ()r    zvtk_obj.Get%sAsString ()ÚAsStringr2   zvtk_obj.Set%s)r	   Ú_initialize_methodsr   r!   r&   r#   r   r%   r$   Údir_state_methsr   r   r   r4   Ú_clean_up_methods)r   r   r*   r5   ÚfoundÚsmsÚtÚfs           r   r,   z"VtkPrintMethodParser.parse_methodsÂ   s,  € äÐ7Ô8à×#Ñ# WÔ-ð à—l‘l¡1“oˆFà�q‘	˜R’Ø�q‘	—‘˜vÓ&¨Ó+Ø—‘×#Ñ# VÕ,ð	 &ð —l•lˆFà�q‘	˜TÒ! v¨a¡y°EÒ'9ð	>ÜÐ 2°6¸!±9Ñ <Ó=�CØ˜a’xÜÐ/°°q±	Ñ9Õ:Ø šÜÐ0°¸±Ñ:Ô;ð ×%Ñ%×,Ñ,¨f°Q©i¸©nÕ=à�ð  ×/Ñ/±Ó2�CØ˜1‘v—{‘{ 6¨!¡9Ó-°Ó2Ø×(Ñ(×/Ñ/°Ô5Ø×,Ñ,×3Ñ3°SÔ9Ø !™ð	 3ñ
 Ø—N‘N×)Ñ)¨5°¸±©?Ô;ðKÜ Ð"<¸VÀA¹YÑ"FÓG˜ð Ÿ™×-Ñ-¨u°V¸A±Y©¸zÑ/IÖJð!Ü Ð"DØ"(¨¡)ñ#,ó -˜ñ
 !ðM #ð| 	×Ñ Õ(øôk &ò Úðûô" *ò Úðûô *ò Ùðúð �CðFÜ"Ð$6°v¸a±yÑ$@ÓA˜ðFÜ $ o°f¸Q±iÑ&?Ó @˜Að
FÙ ! 3¡ð !%× 2Ñ 2× 9Ñ 9¸6À!¹9Ö Eøô $-ò Jð!JÙ$%¨ w¡Kð %)×$6Ñ$6×$=Ñ$=¸vÀa¹yÕ$Iøô (1ò !LØ$(§N¡N×$9Ñ$9¸5ÀÈÁ¹?Ö$Kð!LýðJûô  .ò DØ ŸN™N×1Ñ1°5¸À¹±?×CðDûô &¤~Ð6ò Úðús�   Â>GÅ;G)Æ3G9Ç	G&Ç%G&Ç)	G6Ç5G6Ç9	HÈHÈK+ÈJ:È/IÉ	J7ÉJÉ$J7Ê*J0Ê-J7Ê/J0Ê0J7Ê6J7Ê:*K(Ë'K(Ë+K>Ë=K>c                 ó”   — t        d«       t        |«      | _        | j                  j                  d«      | _        | j                  d= y )Nz%VtkPrintMethodParser:: _get_str_obj()Ú
r   )r	   Ústrr   Úsplitr   s     r   Ú_get_str_objz!VtkPrintMethodParser._get_str_obj  s7   € ÜÐ6Ô7Ü˜G“}ˆŒØ—|‘|×)Ñ)¨4Ó0ˆŒØ�L‰L˜‰Or
   c                 ó.  — t        d«       t        «       }|j                  |«       	 |j                  }|j	                  «       | _        |j                  «       | _        |j                  «       | _	        |j                  «       | _        y# t        $ r Y nw xY w|j	                  «       | _        |j                  «       | _        |j                  «       | _        |j                  «       | _        | j#                  |«       t%        j&                  d«      }| j(                  dd D ]/  }|j+                  |«      rŒ| j(                  j-                  |«       Œ1 | j(                  dd D ]2  }|j/                  d«      dk(  sŒ| j(                  j-                  |«       Œ4 t1        dt3        | j(                  «      «      D ]A  }| j(                  |   }|j5                  dd	«      }|j7                  d«      | j(                  |<   ŒC g | _        g | _        g | _	        g | _        y)
z#Do the basic parsing and setting upz,VtkPrintMethodParser:: _initialize_methods()r7   z  \SNÚ:rD   r   Ú r`   )r	   r   r,   Ú	__class__rJ   r   rN   r   rR   r   rV   r   r$   Údir_toggle_methsre   Údir_get_set_methsÚdir_get_methsro   r   r   r   Úmatchr&   r!   r<   r:   Úreplacern   )r   r   Údir_pÚjunkÚpatnr*   rA   Ústrngs           r   rd   z(VtkPrintMethodParser._initialize_methods  sÉ  € äÐ=Ô>Ü"Ó%ˆØ×Ñ˜WÔ%ð		Ø×$Ñ$ˆDð !&× 4Ñ 4Ó 7ˆDÔØ$×2Ñ2Ó5ˆDÔØ!&×!6Ñ!6Ó!9ˆDÔØ"×.Ñ.Ó1ˆDŒNØøô ò 	Ùð	úð !&× 4Ñ 4Ó 7ˆÔØ$×2Ñ2Ó5ˆÔØ!&×!6Ñ!6Ó!9ˆÔØ"×.Ñ.Ó1ˆÔà×Ñ˜7Ô#Ü�z‰z˜6Ó"ˆà—l‘l¡1“oˆFØ—:‘:˜vÕ&Ø—‘×#Ñ# VÕ,ð &ð —l‘l¡1“oˆFØ�{‰{˜3Ó 2Ó%Ø—‘×#Ñ# VÕ,ð &ô ˜œ3 §¡Ó-Ö.ˆAØ—L‘L ‘OˆEØ—M‘M 3¨Ó+ˆEØ#Ÿk™k¨3Ó/ˆD�L‰L˜ŠOð /ð ˆÔØˆÔØˆÔØˆŒàs   ¨B	 Â		BÂBc                 ó„  — t        d«       | j                  | j                  f| j                  | j                  f| j
                  | j                  ffD ]!  }|d   D ]  }	 |d   j                  |«       Œ Œ# | j                  D ]!  }	 | j                  j                  |dd «       Œ# | j                  j                  «        | j                  j                  «        | j                  j                  «        | j                  j                  «        y# t        $ r |d   j                  |«       Y ŒÔw xY w# t        $ r Y Œ»w xY w)z&Merge dir and str methods.  Finish up.z*VtkPrintMethodParser:: _clean_up_methods()r   r7   Nr   )r	   rt   r   ru   r   rv   r   r'   r(   r%   r&   rE   r   )r   r   Ú	meth_listr*   s       r   rf   z&VtkPrintMethodParser._clean_up_methodsG  s)  € äÐ;Ô<Ø×0Ñ0°$×2CÑ2CÐDØ×1Ñ1°4×3EÑ3EÐFØ×-Ñ-¨t¯~©~Ð>ó@ˆIð $ Aœ,�ð1Ø˜a‘L×&Ñ&¨Õ/ñ 'ð@ð ×'Ô'ˆFðØ×"Ñ"×)Ñ)¨6°#°2¨;Õ7ð (ð 	×Ñ×ÑÔ!Ø×Ñ×ÑÔ Ø×Ñ×ÑÔ"Ø�‰×ÑÕøô "ò 1Ø˜a‘L×'Ñ'¨Ö0ð1ûô ò Ùðús$   ÁDÂD3ÄD0Ä/D0Ä3	D?Ä>D?c                 ó   — | j                   S r   rH   rI   s    r   rJ   z#VtkPrintMethodParser.toggle_methodsa  rK   r
   c                 ó   — | j                   S r   rM   rI   s    r   rN   z"VtkPrintMethodParser.state_methodsd  rO   r
   c                 ó   — | j                   S r   rQ   rI   s    r   rR   z$VtkPrintMethodParser.get_set_methodsg  rS   r
   c                 ó   — | j                   S r   rU   rI   s    r   rV   z VtkPrintMethodParser.get_methodsj  rW   r
   N)rX   rY   rZ   r[   r,   ro   rd   rf   rJ   rN   rR   rV   r\   r
   r   r^   r^   ¼   s3   „ ñFòM)ò^ò.ò`ò4!ò ò"ór
   r^   )	r[   Ústringr   ÚsysÚtypesr   r	   r   r^   r\   r
   r   Ú<module>r†      s:   ðñ÷ Ó Û ð €ò÷eñ e÷Poò or
   