
    tj3                     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    L/DATA/.local/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ll1oFbqzu%*''0<1/&*45
 !!$'1,>LL&&s(;< %%,,f5LL''0LL'')<='1,fQRj(0LL&&. &&--vabz:LL''0LL''/; &> 	w'3 & 1$$++V4LL''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3s5   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(   ;<ll1oFbqzu%*%%v.##V, &   !Q&""1%C!Dq6(K//((#a&177:CAqAAsCy)q6;;q>Q&&&A/$$++[9#&q6(K//00#a&9??BCAqA0,,22A6C **3/!)j0,....8C s+....	J0FGC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 ()ir9   r8   )r	   r   r#   r&   r$   r4   r!   sort)r   r   r*   ress       r   r0   z$VtkDirMethodParser.clean_get_methods   s   9:nnQ'F6NOF23
9&@A NN))62 (( 	 &  ~. %%v. bc{
+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)
76*6X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- ll1oFq	Rq	v&+##V,	 & llFq	T!vayE'9	> 26!9 <=Cax/q	9:0:; %%,,fQin=  //2C1v{{6!9-2((//5,,33S9 !	 3
 NN))5?;K "<VAY"FG --uVAYz/IJ! "D"()#, -
 !M #| 	(k & " *  *  CF"$6vay$@AF $ofQi&? @A
F !3 !% 2 2 9 96!9 E $- J!J$%wK %)$6$6$=$=vay$I (1 !L$(NN$9$95?$K!LJ  . D NN115?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LL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 7D$225D!&!6!6!9D"..1DN  		 !& 4 4 7$225!&!6!6!9"..17#zz6"ll1oF::v&##V, & ll1oF{{32%##V, & 3-.ALLOEMM3+E#kk3/DLL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$2C2CD1143E3EF--t~~>@I $A,1aL&&/ '@ ''F""))6#2;7 ( 	! " " 1aL''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
   