Ë
    ·gT  ã                   ó@  — d Z ddlmZmZ ddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZ e«       Ze	j                  j!                  «       D ]   \  ZZ eee«      sŒej+                  e«       Œ" dD ]  Zej+                  e«       Œ e
j,                  Ze
j0                  Z eej2                  «      Z ee«      Zd„ Zd„ Zd„ Zd„ Zd	„ Z  G d
„ d«      Z! G d„ d«      Z"d„ Z#d„ Z$d„ Z%d„ Z& ejN                  d«      Z( ejN                  d«      Z) ejN                  d«      Z* ejN                  d«      Z+ ejN                  d«      Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d „ Z6d!„ Z7ejp                  fd"„Z9e:d#k(  r( e9ejp                  «      Z;e;� ejx                  e;«       yyy)$aŸ  
This program will generate .pyi files for all the VTK modules
in the "vtkmodules" package (or whichever package you specify).
These files are used for type checking and autocompletion in
some Python IDEs.

The VTK modules must be in Python's path when you run this script.
Options are as follows:

 -p PACKAGE    The package to generate .pyi files for [vtkmodules]
 -o OUTPUT     The output directory [default is the package directory]
 -e EXT        The file suffix [.pyi]
 -i IMPORTER   The static module importer (for static builds only)
 -h HELP

With no arguments, the script runs with the defaults (the .pyi files
are put inside the existing vtkmodules package).  This is equivalent
to the following:

    python -m vtkmodules.generate_pyi -p vtkmodules

To put the pyi files somewhere else, perhaps with a different suffix:

    python -m vtkmodules.generate_pyi -o /path/to/vtkmodules -e .pyi

To generate pyi files for just one or two modules:

    python -m vtkmodules.generate_pyi -p vtkmodules vtkCommonCore vtkCommonDataModel

To generate pyi files for your own modules in your own package:

    python -m vtkmodules.generate_pyi -p mypackage mymodule [mymodule2 ...]

é    )Ú	vtkObjectÚvtkSOADataArrayTemplateN)ÚAnyÚBufferÚCallbackÚNoneÚPointerÚTemplateÚUnionc                 ó&   — t        | «      t        k(  S )z(Check for VTK's custom method descriptor)ÚtypeÚ	vtkmethod©Úms    ú7lib/python3.12/site-packages/vtkmodules/generate_pyi.pyÚisvtkmethodr   D   s   € ä�‹G”yÑ Ð!ó    c                 ó0   — t        t        | «      «      dk(  S )z$Check for namespaces within a modulez,<class 'vtkmodules.vtkCommonCore.namespace'>)Ústrr   r   s    r   Úisnamespacer   H   s   € ô ”�Q“‹LÐJÑJÐKr   c                 ó<   — t        | «      xr t        | t        «      S )z,Check for enums (currently derived from int))ÚisclassÚ
issubclassÚintr   s    r   Úisenumr   M   s   € ä�1‹:Ò,œ* Q¬Ó,Ð-r   c                 óX   — | €yt        | «      t        k(  ryt        | «      j                  S )z4Generate a typename that can be used for annotation.r   r
   )r   ÚtemplateÚ__name__)Úos    r   Útypenamer    Q   s)   € à€yØÜ	ˆa‹”HÒ	Øä�A‹w×ÑÐr   c                 ó<   — t        | «      }|t        vrd|z   dz   }|S )z:Generate a typename, or if necessary, a forward reference.Ú')r    Útypes)r   Únames     r   Útypename_forwardr%   Z   s&   € ä�A‹;€DØ”5Ñà�d‰{˜TÑ!ˆØ€Kr   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚGraphz A graph for topological sorting.c                 ó   — i | _         y ©N©Únodes)Úselfs    r   Ú__init__zGraph.__init__g   s	   € Øˆ�
r   c                 ó    — | j                   |   S r)   r*   )r,   r$   s     r   Ú__getitem__zGraph.__getitem__i   s   € Ø�z‰z˜$ÑÐr   c                 ó"   — || j                   |<   y r)   r*   )r,   r$   Únodes      r   Ú__setitem__zGraph.__setitem__k   s   € Øˆ�
‰
�4Òr   N)r   Ú
__module__Ú__qualname__Ú__doc__r-   r/   r2   © r   r   r'   r'   e   s   „ Ù*òò ó r   r'   c                   ó   — e Zd ZdZd„ Zy)ÚNodezA node for the graph.c                 ó    — || _         || _        y r)   )ÚobjÚdeps)r,   r   Úds      r   r-   zNode.__init__p   s   € ØˆŒØˆ�	r   N)r   r3   r4   r5   r-   r6   r   r   r8   r8   n   s
   „ Ùór   r8   c                 ó¢  — t        «       }t        | j                  «       «      }|D ]¡  \  }}t        |«      r]||j                  k(  r3|j
                  D �cg c]  }|j                  ‘Œ }}t        ||«      ||<   ŒSt        ||j                  g«      ||<   Œnt        |«      rt        |g «      ||<   Œ‰t        |t        |«      g«      ||<   Œ£ |S c c}w )z)Build a graph from a module's dictionary.)	r'   ÚsortedÚitemsr   r   Ú	__bases__r8   Úismethodr    )r<   Úgraphr?   r   r   ÚbÚbasess          r   Úbuild_graphrE   t   s´   € ä‹G€EÜ�1—7‘7“9Ó€EÛ‰ˆˆ!Ü�1Œ:Ø�A—J‘JŠà-.¯[ª[Ó9©[¨˜Ÿ›¨[�Ð9Ü  5›>��a’ô    A§J¡J <Ó0��a’Ü�aŒ[Ü˜A˜r“{ˆE�!ŠHä˜A¤¨£˜}Ó-ˆE�!ŠHð ð €Lùò :s   ÁCc                 óÒ   — |j                  |«       	 | |   }|j                  D ]  }||vsŒt        | |||«       Œ |j	                  ||j
                  f«       y# t        $ r Y yw xY w)zHelper for topological sorting.N)ÚaddÚKeyErrorr;   Úsorted_graph_helperÚappendr:   )rB   r   Úvisitedr?   r1   Údeps         r   rI   rI   ‡   sk   € à‡K�K�„NðØ�Q‰xˆð �yŒyˆØ�gÒÜ  s¨G°UÕ;ð ð 
‡L�L�!�T—X‘X�Õøô ò Ùðús   “A Á	A&Á%A&c                 óf   — g }t        «       }| j                  D ]  }||vsŒt        | |||«       Œ |S )z)Sort a graph and return the sorted items.)Úsetr+   rI   )rB   r?   rK   r   s       r   Úsorted_graphrO   “   s9   € à€EÜ‹e€GØ�[Œ[ˆØ�GÒÜ  ¨¨7°EÕ:ð ð €Lr   c                 ó*   — t        t        | «      «      S )zBReturn the items from a module's dictionary, topologically sorted.)rO   rE   )r<   s    r   Útopologically_sorted_itemsrQ   œ   s   € äœ A›Ó'Ð'r   z!("([^\\"]|\\.)*"|'([^\\']|\\.)*')z'([A-Za-z_]([A-Za-z0-9_]|[.][A-Za-z_])*)z[ \t]+(?=\S)z[(]self[,)]z[\'\"{}\[\]()\n]c                 ó,  — |j                  d|«      }|dk(  rt        |«      }t        j                  j	                  d| z   dz   «       t        j                  j	                  ||| dz   «       t        j                  j	                  d||z
  z  dz   «       y)z.Print a parse error, syntax or otherwise.
    Ú
éÿÿÿÿzError: z:
Ú-z^
N)ÚfindÚlenÚsysÚstderrÚwrite)ÚmessageÚtextÚbeginÚposÚends        r   Úparse_errorr`   ¬   s}   € ð �)‰)�D˜#Ó
€CØ
ˆb‚yÜ�$‹iˆÜ‡J�J×Ñ�Y Ñ(¨5Ñ0Ô1Ü‡J�J×Ñ�T˜% �_ tÑ+Ô,Ü‡J�J×Ñ�S˜C %™KÑ(¨5Ñ0Õ1r   c                 ó`  — t        | t        j                  «      r| j                  }|t        vrd|z   dz   }|S t        | t        j
                  t        j                  f«      rËt        | j                  «      }| j                  d   }| j                  }||j                  |z
  |j                  |z
   }t        |||«      }|rAt        | t        j
                  «      rddj                  |g|z  «      z   dz   }|S d|z   dz   }|S t        | t        j
                  «      r
d|z   dz   }|S d|z   dz   }|S )	z6Return the new text to be used for an annotation.
    r"   r   zTuple[ú, Ú]zList[z	Sequence[zMutableSequence[)Ú
isinstanceÚastÚNameÚidr#   ÚTupleÚListrW   ÚeltsÚ
col_offsetÚend_col_offsetÚannotation_textÚjoin)Úar\   Ú	is_returnr$   ÚsizeÚeÚoffsetÚold_names           r   rm   rm   ¶   s+  € ô �!”S—X‘XÔØ�t‰tˆØ”uÑà˜$‘; Ñ%ˆDð* €Kô) 
�AœŸ	™	¤3§8¡8Ð,Ô	-Ü�1—6‘6‹{ˆØ�F‰F�1‰IˆØ—‘ˆØ˜Ÿ™ vÑ-¨a×.>Ñ.>ÀÑ.GÐHˆÜ˜q (¨IÓ6ˆáä˜!œSŸY™YÔ'Ø $§)¡)¨T¨F°4©KÓ"8Ñ8¸3Ñ>�ð €Kð  ‘~¨Ñ+�ð €Kô ˜!œSŸY™YÔ'Ø" TÑ)¨CÑ/�ð €Kð *¨DÑ0°3Ñ6�à€Kr   c                 ó,  — t        j                  | «      j                  d   }|j                  j                  D �cg c]  }|j                  ‘Œ }}t        |«      }|j                  |j                  «       g }t        |«      D ]_  \  }}|€Œ	| |j                  |j                   }t        ||||k(  «      }	|	|k7  sŒ8|j                  |j                  |j                  |	f«       Œa |r(d}
d}|D ]  \  }}}	|
| || z  }
|
|	z  }
|}Œ |
| |d z  }
|
} | S c c}w )zuFix the annotations in a method definition.
    The signature must be a single-line function def, no decorators.
    r   NÚ )re   ÚparseÚbodyÚargsÚ
annotationrW   rJ   ÚreturnsÚ	enumeraterk   rl   rm   )Ú	signatureÚ
definitionÚargÚannotationsÚreturn_iÚchangesÚiro   Úold_textr\   ÚnewsigÚlastposr]   r_   s                 r   Úfix_annotationsr‡   Ô   s-  € ô
 —‘˜9Ó%×*Ñ*¨1Ñ-€JØ-7¯_©_×-AÒ-AÓBÑ-A c�3—>“>Ð-A€KÐBÜ�;Ó€HØ×Ñ�z×)Ñ)Ô*ð €GÜ˜Ö%‰ˆˆ!Ø‰=Ø  §¡¨a×.>Ñ.>Ð?ˆHÜ" 1 h°°h±Ó@ˆDØ�xÓØ—‘ §¡¨a×.>Ñ.>ÀÐFÕGð &ñ ØˆØˆÛ%‰NˆE�#�dØ�i ¨Ð.Ñ.ˆFØ�d‰NˆFØ‰Gð &ð 	�)˜G˜HÐ%Ñ%ˆØˆ	àÐùò1 Cs   »Dc                 ó:  — t        j                  dd|«      }t        j                  dd|«      }|j                  d«      ry
|j                  | j                  dz   «      r=d|z   dz   }t        j
                  d	k\  rt        |«      }||vr|j                  |«       y
y
y
)z7Process a method signature and add it to the list.
    z\s+Ú z([({\[:=]) z\1zC++:Ú(údef z: ...é  N)ÚreÚsubÚ
startswithr   rX   Ú
hexversionr‡   rJ   )r   Úlr}   s      r   Úpush_signaturer’   ô   s“   € ô —‘�v˜s IÓ.€Iä—‘�~ u¨iÓ8€Ià×Ñ˜FÔ#àØ	×	Ñ	˜aŸj™j¨3Ñ.Ô	/à˜YÑ&¨Ñ0ˆ	Ü�>‰>˜YÒ&ä'¨	Ó2ˆIØ˜AÑØ�H‰H�YÕð ð 
0r   c                 ó
  — | j                   }g }|€|S d}d}g }|t        |«      k  �r[t        j                  ||«      }|rð|j	                  «       \  }}|j                  «       }|dv r=t        j                  ||«      }	|	r|	j	                  «       \  }}nÞt        d|||«       	 |S |dv r|j                  ddddœ|   «       n°|d	v r&|r||j                  «       k7  r—t        d
|||«       	 |S |dk(  r�|st        j                  ||«      si||| j                  «       }
|
rt        | ||
«       |}nD	 |S t        |«      }|s#||| j                  «       }
|
rt        | ||
«       nt        d
|||«       	 |S |}|t        |«      k  r�Œ[|S )z?Return a list of method signatures found in the docstring.
    r   z"'zUnterminated stringz{[(Ú}rc   Ú))Ú{Ú[rŠ   z}])zUnmatched bracketrS   )r5   rW   ÚkeycharÚsearchÚspanÚgroupÚstringÚmatchr`   rJ   ÚpopÚindentÚstripr’   )r   ÚdocÚ
signaturesr]   r^   Údelim_stackr�   r_   Úcr   r}   s              r   Úget_signaturesr¥     sº  € ð �)‰)€CØ€JØ
€{ØÐð €EØ
€CØ€Kð ”�C“‹.ä—‘˜s CÓ(ˆáà—j‘j“l‰GˆC�à—‘“ˆAØ�F‰{ä—L‘L  cÓ*�ÙØŸf™f›h‘G�C™äÐ 5°s¸EÀ3ÔGØðB ÐðA �e‘à×"Ñ"¨°¸Ñ#<¸QÑ#?Õ@Ø�e‘á" a¨;¯?©?Ó+<Ò&<ÜÐ 3°S¸%ÀÔEØð2 Ðð1 �d’¡K´6·<±<ÀÀSÔ3Ið    c˜N×0Ñ0Ó2�	ÙÜ" 1 j°)Ô<Ø‘Eð ð Ðô �c“(ˆCÙØ  c˜N×0Ñ0Ó2�	ÙÜ" 1 j°)Õ<äÐ/°°e¸SÔAØð
 Ðð ˆð_ ”�C“Œ.ðb Ðr   c           	      óÐ  — g }| j                   }| j                  }|r|j                  |dz   «      s|S t        | «      }|D ]£  }|j                  d|z   dz   «      sŒt	        j
                  d|z   dz   d|«      }|j                  d|z   dz   «      r+|j                  t	        j
                  |dz   d|d	«      «       Œz|j                  t	        j
                  |dz   d
|d	«      «       Œ¥ |S )z3Get constructors from the class documentation.
    rŠ   r‹   z-> '?z'?z-> Nonez()z\(z__init__(selfé   z__init__(self, )r   r5   r�   r¥   r�   rŽ   rJ   )r¤   Úconstructorsr$   r¡   r¢   r}   s         r   Úget_constructorsr©   J  sÝ   € ð €LØ�:‰:€DØ
�)‰)€Cá�c—n‘n T¨C¡ZÔ0ØÐÜ Ó"€JÛˆ	Ø×Ñ ¨¡°Ñ 3Õ4ÜŸ™˜x¨$™°Ñ6¸	À9ÓMˆIØ×#Ñ# F¨T¡M°DÑ$8Ô9Ø×#Ñ#¤B§F¡F¨4°%©<¸È)ÐUVÓ$WÕXà×#Ñ#¤B§F¡F¨4°%©<Ð9JÈIÐWXÓ$YÕZð  ð Ðr   c                 óP   — t        | «      rt        j                  |«      sd|z   S |S )z/If method has no "self", add @static decorator.z@staticmethod
)r   Úhas_selfr™   )r   r}   s     r   Úhandle_staticr¬   ]  s%   € ä�1„~œhŸo™o¨iÔ8Ø  9Ñ,Ð,àÐr   c                 ó<   — |t        j                  dd|z   | «      z   S )z:Add the given indent before every line in the string.
    z\n(?=([^\n]))rS   )r�   rŽ   )ÚsrŸ   s     r   Ú
add_indentr¯   d  s!   € ð ”B—F‘FÐ+¨T°F©]¸AÓ>Ñ>Ð>r   c                 ó(  — d}|j                   dk7  rd|z   }d| j                   z   dz   |z   dz   }d}t        | j                  «      }g }|D ]P  \  }}t        |«      r-||j                   k(  r|t	        t        |«      d«      z  }|d	z  }Œ>|j                  ||f«       ŒR |}g }|D ]_  \  }}|j                  d
«      s6t        |«      s+t        |«      s |d|z   dz   t        |«      z   dz   z  }|d	z  }ŒM|j                  ||f«       Œa |dk(  r|dd dz   }|S )z0Fake a namespace by creating a dummy class.
    Ú	namespaceúvtkmodules.vtkCommonCorezvtkmodules.vtkCommonCore.úclass rŠ   ú):
r   ú    r§   Ú__Ú:rS   rT   ú ...
)r   rQ   Ú__dict__r   r¯   Ú	class_pyirJ   r�   rA   r   r%   )	r¤   ÚmodÚbaseÚoutÚcountr?   Úothersr   r   s	            r   Únamespace_pyirÀ   i  s0  € ð €DØ
‡|�|Ð1Ò1Ø*¨TÑ1ˆØ
�Q—Z‘ZÑ
 #Ñ
%¨Ñ
,¨vÑ
5€CØ€Eô ' q§z¡zÓ2€EØ€FÛ‰ˆˆ!Ü�!Œ9˜˜aŸj™jšØ”:œi¨›l¨FÓ3Ñ3ˆCØ�Q‰J‰Eà�M‰M˜1˜a˜&Õ!ð ð €EØ€FÛ‰ˆˆ!Ø�|‰|˜DÔ!¬(°1¬+¼gÀa¼jØ�6˜A‘: Ñ#Ô&6°qÓ&9Ñ9¸DÑ@Ñ@ˆCØ�Q‰J‰Eà�M‰M˜1˜Q˜%Õ ð ð �‚zØ�!�Bˆi˜(Ñ"ˆà€Jr   c                 ó  — g }| j                   D ]c  }|j                  | j                  dfv r|j                  |j                  «       Œ9|j                  |j                  dz   |j                  z   «       Œe d| j                  z   dz   dj	                  |«      z   dz   }d}t        | j                  «      }g }|D ]P  \  }}t        |«      r-||j                  k(  r|t        t        |«      d«      z  }|d	z  }Œ>|j                  ||f«       ŒR |}g }|D ]_  \  }}|j                  d
«      s6t        |«      s+t        |«      s |d|z   dz   t        |«      z   dz   z  }|d	z  }ŒM|j                  ||f«       Œa t        | «      }	t        |	«      dk(  rnE|d	z  }t        |	«      d	k(  r|t        |	d   d«      dz   z  }n|	D ]  }
|t        d|
z   d«      dz   z  }Œ |}g }|D ]›  \  }}t        |«      rxt        |«      }t        |«      dk(  rŒ+|d	z  }t        |«      d	k(  r"t!        ||d   «      }|t        |d«      dz   z  }Œ`|D ]#  }
t!        ||
«      }|t        d|z   d«      dz   z  }Œ% Œ‰|j                  ||f«       Œ� |dk(  r|dd dz   }|S )z/Generate all the method stubs for a class.
    ÚbuiltinsÚ.r³   rŠ   rb   r´   r   rµ   r§   r¶   r·   rS   z
@overload
rT   r¸   )r@   r3   rJ   r   rn   rQ   r¹   r   r¯   rº   r�   rA   r%   r©   rW   r¥   r¬   )r¤   rD   rC   r½   r¾   r?   r¿   r   r   r¨   Úoverloadr¢   r}   s                r   rº   rº   ‹  s£  € ð €EØ�[Œ[ˆØ�<‰<˜AŸL™L¨*Ð5Ñ5Ø�L‰L˜Ÿ™Õ$à�L‰L˜Ÿ™¨Ñ+¨a¯j©jÑ8Õ9ð	 ð �Q—Z‘ZÑ
 #Ñ
%¨¯	©	°%Ó(8Ñ
8¸6Ñ
A€CØ€Eô ' q§z¡zÓ2€EØ€FÛ‰ˆˆ!Ü�1Œ:˜!˜qŸz™zš/Ø”:œi¨›l¨FÓ3Ñ3ˆCØ�Q‰J‰Eà�M‰M˜1˜a˜&Õ!ð ð €EØ€FÛ‰ˆˆ!Ø�|‰|˜DÔ!¬(°1¬+¼gÀa¼jØ�6˜A‘: Ñ#Ô&6°qÓ&9Ñ9¸DÑ@Ñ@ˆCØ�Q‰J‰Eà�M‰M˜1˜Q˜%Õ ð ô $ AÓ&€LÜ
ˆ<Ó˜AÒð 	à�‰
ˆÜˆ|Ó Ò!Ø”:˜l¨1™o¨vÓ6¸Ñ=Ñ=‰Cã(�Ø”z -°(Ñ":¸FÓCÀdÑJÑJ‘ð )ð €EØ€FÛ‰ˆˆ!Ü�AŒ;Ü'¨Ó*ˆJÜ�:‹ !Ò#ØØ�Q‰JˆEÜ�:‹ !Ò#Ü*¨1¨j¸©mÓ<�Øœ
 9¨fÓ5¸Ñ<Ñ<�ØÛ&�Ü*¨1¨hÓ7�Øœ
 =°9Ñ#<¸fÓEÈÑLÑL‘ñ 'ð �M‰M˜1˜a˜&Õ!ð ð  �‚zØ�!�Bˆi˜(Ñ"ˆà€Jr   c                 óh  — |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       | j                  dk(  r"|j                  d	«       |j                  d«       t        dg«      }| j                  j	                  «       D ]M  \  }}t        |«      sŒ||j                  k(  sŒ"|j                  D ]  }|j                  |j                  «       Œ ŒO |j                  | j                  «       |j                  d
«       t        |«      D ]  }|j                  d|z   dz   «       Œ |r|j                  d«       t        | j                  «      }g }|D ]_  \  }}t        |«      r<||j                  k(  r-|j                  t        || «      «       |j                  d«       ŒM|j                  ||f«       Œa |}g }|D ]^  \  }}t        |«      r;||j                  k(  r,|j                  t!        |«      «       |j                  d«       ŒL|j                  ||f«       Œ` |}g }|D ]W  \  }}t        |«      r4||j                  k7  r%|j                  |dz   |j                  z   dz   «       ŒE|j                  ||f«       ŒY |}g }|D ]c  \  }}|j#                  d«      s:t%        |«      s/t        |«      s$|j                  |dz   t'        |«      z   dz   «       ŒQ|j                  ||f«       Œe t)        |«      t)        |«      kD  r|j                  d«       |}g }|D ]^  \  }}t        |«      r;||j                  k(  r,|j                  t!        |«      «       |j                  d«       ŒL|j                  ||f«       Œ` |}g }|D ]W  \  }}t        |«      r4||j                  k7  r%|j                  |dz   |j                  z   dz   «       ŒE|j                  ||f«       ŒY y)z;Generate the contents of a .pyi file for a VTK module.
    z;from typing import overload, Any, Callable, TypeVar, Union
z:from typing import Tuple, List, Sequence, MutableSequence
rS   z,Callback = Union[Callable[..., None], None]
zBuffer = TypeVar('Buffer')
zPointer = TypeVar('Pointer')
zTemplate = TypeVar('Template')
r²   zclass namespace: pass
rÂ   zimport z = r¶   r·   N)rZ   r   rN   r¹   r?   r   r@   rG   r3   Údiscardr>   rQ   r   rÀ   rJ   r   rº   r�   rA   r%   rW   )	r»   ÚoutputÚdependsr   r   r¼   Údependr?   r¿   s	            r   Ú
module_pyirÊ   Ó  s€  € ð ‡L�LÐOÔPØ
‡L�LÐNÔOØ
‡L�L�ÔØ
‡L�LÐ@ÔAØ
‡L�LÐ/Ô0Ø
‡L�LÐ1Ô2Ø
‡L�LÐ3Ô4Ø
‡L�L�Ôà
‡|�|Ð1Ò1à�‰Ð.Ô/Ø�‰�TÔô Ð-Ð.Ó/€GØ�|‰|×!Ñ!Ö#‰ˆˆ!Ü�1�:˜!˜qŸz™z›/ØŸœ�Ø—‘˜DŸO™OÕ,ñ $ð $ð ‡O�O�C—L‘LÔ!Ø‡O�O�JÔÜ˜–/ˆØ�‰�Y Ñ'¨$Ñ.Õ/ð "áØ�‰�TÔô ' s§|¡|Ó4€Eð €FÛ‰ˆˆ!Ü�qŒ>˜a 1§:¡:šoØ�L‰Lœ q¨#Ó.Ô/Ø�L‰L˜Õà�M‰M˜1˜a˜&Õ!ð ð €EØ€FÛ‰ˆˆ!Ü�!Œ9˜˜aŸj™jšØ�L‰Lœ 1›Ô&Ø�L‰L˜Õà�M‰M˜1˜a˜&Õ!ð ð €EØ€FÛ‰ˆˆ!Ü�!Œ9˜˜aŸj™jšØ�L‰L˜˜U™ Q§Z¡ZÑ/°$Ñ6Õ7à�M‰M˜1˜a˜&Õ!ð	 ð €EØ€FÛ‰ˆˆ!Ø�|‰|˜DÔ!¬(°1¬+¼gÀa¼jØ�L‰L˜˜S™Ô#3°AÓ#6Ñ6¸Ñ=Õ>à�M‰M˜1˜Q˜%Õ ð	 ô
 ˆ5ƒz”C˜“KÒØ‡|�|�DÔð €EØ€FÛ‰ˆˆ!Ü�1Œ:˜!˜qŸz™zš/Ø�L‰Lœ 1›Ô&Ø�L‰L˜Õà�M‰M˜1˜a˜&Õ!ð ð €EØ€FÛ‰ˆˆ!Ü�1Œ:˜!˜qŸz™zš/Ø�L‰L˜˜U™ Q§Z¡ZÑ/°$Ñ6Õ7à�M‰M˜1˜a˜&Õ!ñ	 r   c                 óh  — t         j                  j                  | d   «      }t        j                  | d   d|z   dz   d¬«      }|j                  ddt        dd	¬
«       |j                  ddt        d¬«       |j                  ddt        d¬«       |j                  ddt        dd¬
«       |j                  dddd¬«       |j                  dt        dd¬«       |j                  | dd  «      }|j                  }|j                  }|j                  }|j                  }|j                  r€t        |«      dk(  r&t        j                  j!                  |dz   d z   «       y|d!z   |d   z   j#                  d!d"«      }|t        j$                  vrt'        j(                  |j                  «       |�t        |«      dk(  rt'        j(                  |«      }	|€yt+        	d#d «      }
|
�"t         j                  j                  |
«      d$k7  r)t        j                  j!                  |d%z   |z   d&z   «       yt         j                  j-                  |
«      }t        |«      dk(  rz	j.                  D ]k  }	 t&        j0                  j3                  |d!z   |z   «      }|€Œ,t7        |j8                  t&        j:                  j<                  «      sŒ[|j?                  |«       Œm d*}|D ]Ä  }t         j                  jA                  |||z   «      }|jB                  rWt        jD                  d+k\  rtF        jH                  nd}tK        |d,«      5 }tM        |jO                  «       |d-|«       d d d «       Œ‰t'        j(                  |d!z   |z   «      }	tK        |d.«      5 }tQ        |	|«       d d d «       ŒÆ tK        t         j                  jA                  |d/«      d.«      5 }	 d d d «       y # t4        $ r2 d }s*d'}t        j                  j!                  |d(z   |z   d)z   «       Y �Œw xY w# 1 sw Y   �ŒDxY w# 1 sw Y   �ŒQxY w# 1 sw Y   y xY w)0Nr   zpython z [-p package] [-o output_dir]z-A .pyi generator for the VTK python wrappers.)ÚprogÚusageÚdescriptionz-pz	--packageÚ
vtkmoduleszPackage name [vtkmodules].)r   ÚdefaultÚhelpz-iz
--importerzStatic module importer [].)r   rÑ   z-oz--outputz%Output directory [package directory].z-ez--extz.pyizOutput file suffix [.pyi].z--testr¾   z)Test .pyi files instead of creating them.)ÚactionrÐ   rÑ   ÚmodulesÚ*zModules to process [all].)r   ÚnargsrÑ   r§   z: when using '-i', all modules z3in the package must be listed on the command line.
rÃ   Ú_Ú__file__z__init__.pyz: z has no __init__.py
Tz: couldn't get loader for rS   FrŒ   ÚrÚexecÚwzpy.typed))ÚosÚpathÚbasenameÚargparseÚArgumentParserÚadd_argumentr   Ú
parse_argsÚpackagerÓ   rÇ   ÚextÚimporterrW   rX   rY   rZ   ÚreplaceÚbuiltin_module_namesÚ	importlibÚimport_moduleÚgetattrÚdirnameÚ__all__ÚutilÚ	find_specÚ
ValueErrorrd   ÚloaderÚ	machineryÚExtensionFileLoaderrJ   rn   Útestr�   re   ÚPyCF_TYPE_COMMENTSÚopenÚcompileÚreadrÊ   )ÚargvÚprognameÚparserry   ÚpackagenamerÓ   Úbasedirrã   Úmodule_exemplarr»   ÚfilenameÚmodnameÚspecÚerrflagÚpyifileÚflagsÚfs                    r   Úmainr  /  sØ  € ä�w‰w×Ñ  Q¡Ó(€Hô ×$Ñ$Ø�!‰WØ˜(Ñ"Ð%DÑDØCôE€Fð ×Ñ˜˜k´¸\Ø9ð ô ;à
×Ñ˜˜l´Ø9ð ô ;à
×Ñ˜˜j¬sØDð ô Fà
×Ñ˜˜g¬C¸Ø9ð ô ;à
×Ñ˜¨¸!ØHð ô Jà
×Ñ˜	¬°3Ø8ð ô :à×Ñ˜T ! "˜XÓ&€Dð —,‘,€KØ�l‰l€GØ�k‰k€GØ
�(‰(€Cð ‡}‚}Üˆw‹<˜1ÒÜ�J‰J×Ñ˜XÐ(IÑIØFñGô Hàð '¨Ñ,¨w°q©zÑ9×BÑBÀ3ÈÓLˆØ¤#×":Ñ":Ñ:Ü×#Ñ# D§M¡MÔ2ð €œ#˜g›,¨!Ò+Ü×%Ñ% kÓ2ˆØ€Ü˜3 
¨DÓ1ˆØÐœrŸw™w×/Ñ/°Ó9¸]ÒJÜ�J‰J×Ñ˜X¨™_¨{Ñ:Ð=TÑTÔUØÜ—'‘'—/‘/ (Ó+ˆÜ
ˆ7ƒ|�qÒØ—{”{ˆGð_Ü —~‘~×/Ñ/°¸cÑ0AÀGÑ0KÓL�ð ˆ|ØÜ˜dŸk™k¬9×+>Ñ+>×+RÑ+RÔSØà�N‰N˜7Õ#ð #ð" €GÛˆÜ—'‘'—,‘,˜w¨°#©Ó6ˆØ�9Š9ä.1¯n©nÀ	Ò.I”C×*Ò*ÈqˆEÜ�g˜sÔ# qÜ˜Ÿ™› '¨6°5Ô9÷ $Ð#ô ×)Ñ)¨+¸Ñ*;¸gÑ*EÓFˆCÜ�g˜sÔ# qÜ˜3 Ô"÷ $Ð#ð ô 
Œb�g‰g�l‰l˜7 JÓ/°Ô	5¸Ø÷ 
6Ð	5øô9 ò _Ø�ÙØ"�GÜ—J‘J×$Ñ$ XÐ0LÑ%LÈwÑ%VÐY]Ñ%]Ô^úð	_ú÷& $Ñ#ú÷
 $Ñ#ú÷ 
6Ð	5ús6   É&%OÌ7PÎPÏP(Ï7PÐ
PÐP	ÐP%	Ð(P1Ú__main__)=r5   Úvtkmodules.vtkCommonCorer   r   rX   rÛ   r�   re   rÞ   rÂ   ÚinspectÚimportlib.utilrç   rN   r#   r¹   r?   r   r   rd   r   rG   Ú	isroutinerA   r   ÚIsAr   r   r   r   r   r    r%   r'   r8   rE   rI   rO   rQ   rõ   rœ   Ú
identifierrŸ   r«   r˜   r`   rm   r‡   r’   r¥   r©   r¬   r¯   rÀ   rº   rÊ   r÷   r  r   ÚresultÚexitr6   r   r   Ú<module>r     sË  ðñ!÷F Hã 
Û 	Û 	Û 
Û Û Û Û ñ 	‹€Ø×Ñ×"Ñ"Ö$�C€A€aÙ�!�TÕØ�	‰	�!�ð %ó 
O€AØ	‡I�Iˆa…Lð 
Oð ×Ñ€Ø
�/‰/€ñ �—‘Ó€	ÙÐ'Ó(€ò"òLò
.ò ò÷ ñ  ÷ñ òò&
 òò(ð 
ˆ�‰Ð<Ó	=€ØˆR�Z‰ZÐFÓG€
Ø	ˆ�‰�OÓ	$€Øˆ2�:‰:�nÓ%€ð ˆ"�*‰*Ð(Ó
)€ò2òò<ò@ ò(@òDò&ò?ò
 òDFòPZ"ðx �h‰hó Tðl ˆzÒÙ�#—(‘(‹^€FØÐØˆ�‰�Õð ð r   