
    +j3                     h    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dS )z
This python module provides functionality to parse the methods of a
VTK object.

Created by Prabhu Ramachandran.  Committed in Apr, 2002.

    Nc                 6    t           rt          |            d S d S N)DEBUGprint)msgs    Y/DATA/AppData/hermes/venv/lib/python3.11/site-packages/vtkmodules/util/vtkMethodParser.pydebugr	      s#     c




     c                   N    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dS )VtkDirMethodParserz' Parses the methods from dir(vtk_obj). c                     t          d           t          |          d d          | _        g | _        g | _        g | _        g | _        t          j        d          | _	        d S )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   s]    ;<<<G}}QQQ'  *l33r
   c                    t          d           |                     |           t          d           | j        d d          D ]}|d d                             d          dk    rz| j                            |          `	 t          d|dd          z             Z# t          $ r7 | j        	                    |           | j        
                    |           Y w xY w|dd                              d          dk    r	 | j                            d	|d d         z             | j        	                    |           | j        
                    |           | j        
                    d	|d d         z             @# t          $ r Y Mw xY w|d d                             d
          dk    rd|dd          z   }	 | j                            |           | j        	                    |dd                     | j        
                    |           | j        
                    |           # t          $ r Y w xY w|                     |           d S )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66)))KLLLl111o 	0 	0Fbqbzu%%**''00<1/&*45555% 1 1 1$++V444L''000001 !!$''1,,>L&&ss(;<<< %,,f555L''000L'')<==== "   D ''1,,fQRRj(0L&&... &--vabbz:::L''000L''//// "   D	 - 	w'''''s6   B>CC%F
FFH55
IIc                     |                      |           |                     |           |                     |           d S r   )clean_get_setclean_state_methodsclean_get_methodsr   s     r   r)   z#VtkDirMethodParser.clean_up_methodsK   sD    G$$$  '***(((((r
   c                    t          d           | j        D ]5}	 | j                            |d d                    &# t          $ r Y 2w xY w| j        d d          D ]}	 t          d|z             | j                            |           0# t          t          f$ r Y nw xY w	 t          d|z            }|| j                            |           w# t          t          f$ r | j                            |           Y w xY wd S )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   sc   5666' 	 	F"))6#2#;7777   
 (+ 	7 	7F8?@@@ "))6222	 ~.   
7.v566 ;&--v666	 ~. 3 3 3"))6222223	7 	7s3   "=
A
	A
BB B $C+D Dc                    t          d           | j        d d          D ]W}|d d                             d          dk    r4| j                            |           | j                            |           Xt          | j                  dk    r| j        d d          }g | _        |d         g}| j        	                    |d                   
                                }|d         d|         }t          dt          |                    D ];}||                             |          dk    r|                    ||                    ne| j                            |           ||         g}| j        	                    ||                   
                                }||         d|         }	 | j                            |          }| j        |= n# t          $ r Y nw xY wd|z   dz   }		 | j                            |	          }| j        |= | j                            d|z   dz             }| j        |= ,# t          $ r Y 9w xY wt          |          dk    r| j                            |           d S d S d S )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   ;<<<l111o 	- 	-Fbqbzu%%**%%v...##V,,,  !!Q&&"111%C!Dq6(K/((#a&1177::CAquAAsCyy)) , ,q6;;q>>Q&&&&A////$++[999#&q6(K/00#a&99??BBCAquA0,22A66C *3// "   D
  !)j0,...88C s+...	J0FGGCs++ "   D K  1$$ ''55555C '&@ %$s$   2G
G"!G".H::
IIc                    t          d           | j        d d          D ]}t          |           	 t          d|z            }	 t          d|z             | j                            |           S# t          $ r Y n5w xY w# t
          t          f$ r | j                            |           Y w xY w|dd                              d          dk    r| j                            |           |dd                              d          dk    r| j                            |           | j                                         d S )Nz(VtkDirMethodParser:: clean_get_methods()zvtk_obj.%s ()zvtk_obj.%s ().GetClassName ()ir9   r8   )r	   r   r#   r&   r$   r4   r!   sort)r   r   r*   ress       r   r0   z$VtkDirMethodParser.clean_get_methods   sn   9:::nQQQ' 	/ 	/F6NNNOF233
9&@AAA N))6222	 &   D ~.   %%v... bcc{
++b00%%v....!!*--22%%v...s#   BA22
A?>A?+B0/B0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      s        114 4 4$( $( $(L) ) )
7 7 76*6 *6 *6X  0! ! !     " " "    r
   r   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )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           |                     |          rdS | j        dd         D ]G}|d         dk    s|d                             d          dk    r| j                            |           H| j        D ]}|d         dk    s|d         dk    r	 t          d	|d
         z            }|dk    rt          d|d
         z             n|d
k    rt          d|d
         z             | j                            |d
         dz              # t          $ r Y w xY wd
}| j	        dd         D ]]}|d
                             |d
                   d
k    r6| j
                            |           | j	                            |           d}^|ru| j                            d|d
         z              	 t          d|d
         z            }| j                            d|d
         z   dz              z# t          $ r Y w xY w	 t          d|d
         z            }# t          $ r Y nw xY wd
}	 t          d	|d
         z            }	 t          d|d
         z            }	  ||  | j                            |d
                    # t          $ r_ 	  ||f  | j                            |d
                    n3# t          $ r& | j                            d|d
         z              Y nw xY wY zw xY w# t          $ r' | j                            d|d
         z              Y w xY w# t          t          f$ r Y w xY w|                     |           dS )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88##W-- 	 Fl111o 	- 	-Fq	Rq	v&&++##V,,,l <	F <	FFq	T!!vayE'9'9	> 26!9 <==Caxx/q	9::::0:;;; %,,fQin==== &   D
   /2 " "C1v{{6!9--22(//555,33S999 ! &FN))5?;;;K "<VAY"FGG --uVAYz/IJJJJ *   ! "D"()#, - -
 ! *    CF"$6vay$@AAF $ofQi&? @ @A
F !3 !% 2 9 96!9 E E E E $- J J J!J$%AwKK %)$6$=$=vay$I$I$I$I (1 !L !L !L$(N$9$95?$K$K$K$K$K!LJ  . D D D N115?CCCCCD &~6   ( 	(((((s   !AD
D'&D'?G??
HHH++
H87H8>L7L0J
L "K	(!L 	-K96L 8K99L ?L -L43L47MMc                     t          d           t          |          | _        | j                            d          | _        | j        d= d S )Nz%VtkPrintMethodParser:: _get_str_obj()
r   )r	   strr   splitr   s     r   _get_str_objz!VtkPrintMethodParser._get_str_obj  sB    6777G}}|))400LOOOr
   c                    t          d           t                      }|                    |           	 |j        }|                                | _        |                                | _        |                                | _	        |
                                | _        dS # t          $ r Y nw xY w|                                | _        |                                | _        |                                | _        |
                                | _        |                     |           t%          j        d          }| j        dd         D ]1}|                    |          s| j                            |           2| j        dd         D ]5}|                    d          dk    r| j                            |           6t1          dt3          | j                            D ]B}| j        |         }|                    dd	          }|                    d          | j        |<   Cg | _        g | _        g | _	        g | _        dS )
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  s5   =>>>"%%W%%%		$D !& 4 4 7 7D$2255D!&!6!6!9!9D"..11DN1  	 	 	D	 !& 4 4 7 7$2255!&!6!6!9!9"..117###z6""l111o 	- 	-F::v&& -##V,,,l111o 	- 	-F{{32%%##V,,,3--.. 	0 	0ALOEMM3++E#kk3//DLOO qs   B! !
B.-B.c                 b   t          d           | j        | j        f| j        | j        f| j        | j        ffD ]T}|d         D ]I}	 |d                             |           # t          $ r |d         	                    |           Y Fw xY wU| j        D ]5}	 | j        
                    |dd                    &# t          $ r Y 2w xY w| j                                         | j                                         | j                                         | j                                         dS )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  su   ;<<<0$2CD143EF-t~>@ 	1 	1I $A, 1 11aL&&////! 1 1 1aL''0000011 ' 	 	F"))6#2#;7777    	!!!   """s$   A""%B
	B
"B;;
CC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^      s        F FM) M) M)^  . . .`  4! ! !     " " "    r
   r^   )	r[   stringr   systypesr   r	   r   r^   r\   r
   r   <module>r      s                    e e e e e e e ePo o o o o o o o o or
   