
    *)h*                     0    S SK r S SKrS SKr " S S5      rg)    Nc                   Z    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)RstCodeGenerator   z3Generates documentation in reStructuredText format.c                 0    Xl         U R                  5         g )N)ifaces_generate_expand_dicts)selfr   s     */usr/share/glib-2.0/codegen/codegen_rst.py__init__RstCodeGenerator.__init__   s    ##%    c                 *   / n[         R                  " U5      R                  S5       H  nUR                  5       nUS:X  a  UR	                  S5        M,  U R
                   H!  nUR                  XPR                  U   5      nM#     U R                   H!  nUR                  XPR                  U   5      nM#     U(       a2  [        R                  " SS U5      n[        R                  " SS U5      nUR	                  U5        M     SR                  U5      $ )z)Expands parameters and constant literals.
 z@[a-zA-Z0-9_]*c                 6    SU R                  S5      SS  -   S-   $ Nz``r      groupms    r
   <lambda>*RstCodeGenerator._expand.<locals>.<lambda>%       dQWWQZ^3d:r   z%[a-zA-Z0-9_]*c                 6    SU R                  S5      SS  -   S-   $ r   r   r   s    r
   r   r   +   r   r   )textwrapdedentsplitrstripappend_expand_member_dict_keysreplace_expand_member_dict_expand_iface_dict_keys_expand_iface_dictresubjoin)r	   sexpandParamsAndConstantsreslinekeys         r
   _expandRstCodeGenerator._expand   s    OOA&,,T2D;;=Drz

244||C)A)A#)FG 533||C)@)@)EF 4'vv$: vv$:
 JJt- 3. yy~r   c                 h   0 U l         0 U l        U R                   GHE  nSUR                   3nSUR                   S3nX0R                  U'   UR                   HL  nUR                  < SUR                  < S3nSUR                   SUR                   S3nX0R                   U'   MN     UR
                   HL  nSUR                  < SUR                  < 3nSUR                   SUR                   S3nX0R                   U'   MN     UR                   HL  nSUR                  < SUR                  < 3nSUR                   SUR                   S3nX0R                   U'   MN     GMH     [        U R                   R                  5       SS	9U l	        [        U R                  R                  5       SS	9U l
        g
)z9Generates the dictionaries used to expand gtk-doc sigils.#`z`_.z():::T)reverseN)r#   r%   r   namemethodssignals
propertiessortedkeysr!   r$   )r	   ir-   valuer   r)   ps          r
   r   'RstCodeGenerator._generate_expand_dicts1   sv   #% "$AaffX,CxrNE+0##C(YY#$661662AFF81QVVHB/05((- 
 YY#$661662AFF82affXR005((- 
 \\"#&&!&&1AFF81QVVHB/05((- " , )/$$))+T)
% (.##((*D(
$r   c                    UR                   n[        U5      nSUR                   S3SSU-  USU-  SSSSSSUR                   S3SUR                  R	                  5       SU R                  UR                  S5      S/nUR                  (       a  US	UR                   S
3S/-  nUR                  (       a  U/ SQ-  nUS/-  nSR                  U5      $ )z2Generates the header and preamble of the document... _r5   r   =z-----------Descriptionz Description:TzInterface available since: r3   ).. warning::r   z    This interface is deprecated.r   r   r   )
name_without_prefixlenr7   doc_string_briefstripr.   
doc_stringsince
deprecatedr(   )r	   iface
iface_name
header_lenr+   s        r
   _generate_header!RstCodeGenerator._generate_headerR   s    ..
_
5::,a **5::,m,""((*LL))40!
$ ;;-ekk]!< C   C 	tyy~r   c                 t    SU SU S3SS[        U5      -  US[        U5      -  SS/nSR                  U5      $ )z)Generates a section with the given title.rB    r5   r   -r   )rG   r(   )r	   titler7   r+   s       r
   _generate_section"RstCodeGenerator._generate_sectionx   sQ     4&%"#e*#e*
 yy~r   c                 2   / nUR                    H  nUR                   SUR                   3nUR                  (       a  UR                  (       a  SnOUR                  (       a  SnOSnUSU S3SUS[	        U5      -  SSSS	UR                   S
U S
UR
                   3SSU R                  UR                  S5      S/-  nUR                  (       a  USUR                   S3S/-  nUR                  (       a  U/ SQ-  nUS/-  nM     SR                  U5      $ )z!Generates the properties section.r5   	readwritewritablereadablerB   r   ^r4       rS   TzProperty available since: r3   )rE   r   z   This property is deprecated.r   r   r   )r:   r7   r[   rZ   rG   	signaturer.   rJ   rK   rL   r(   )r	   rM   r+   r?   rU   accesss         r
   _generate_properties%RstCodeGenerator._generate_properties   s"   !!Azzl!AFF8,Ezzajj$##ugQc%j qvvhaxq6Q\\40 C ww0	;  ||   B4KCG "H yy~r   c                    SS/n[        UR                  5      n[        UR                  5      nUS:X  a  US:X  a  USUR                   S3/-  nOUSUR                   S3/-  n[	        UR                  5       HV  u  pVXSS-
  :X  a(  US:X  a"  USUR                   S	UR
                   3/-  nM5  USUR                   S	UR
                   S
3/-  nMX     [	        UR                  5       HP  u  pVXTS-
  :X  a"  USUR                   S	UR
                   3/-  nM/  USUR                   S	UR
                   S
3/-  nMR     USS/-  nUS/-  nSR                  U5      $ )z/Generates the method signature as a code block.r4   r   r   r]    () (r   z	      IN rS   ,z
      OUT     )r   )rG   in_argsout_argsr7   	enumerater^   r(   )r	   methodr+   	n_in_args
n_out_argsidxargs          r
   _generate_method_signature+RstCodeGenerator._generate_method_signature   s    
 '	)
>jAov{{m3' C v{{m2& C &fnn5a-'J!O#CHH:Qs}}o> C #CHH:Qs}}oQ? C 6 &foo6q.($SXXJa? C $SXXJaa@ C 7  C 	tyy~r   c                    / nUR                    GH:  nUR                   SUR                   3nUSU S3SUS[        U5      -  SU R                  U5      SU R	                  UR
                  S5      S/	-  nUR                   H5  nU R	                  UR
                  S5      nUUR                   SU 3S/-  nM7     UR                   H5  nU R	                  UR
                  S5      nUUR                   SU 3S/-  nM7     US/-  nUR                  (       a  USUR                   S3S/-  nUR                  (       a  U/ S	Q-  nUS/-  nGM=     S
R                  U5      $ )zGenerates the methods section.r3   rB   r5   r   r\   T  zMethod available since: )rE   r   z   This method is deprecated.r   r   r   )r8   r7   rG   ro   r.   rJ   rg   rh   rK   rL   r(   )r	   rM   r+   r   rU   aarg_descs          r
   _generate_methods"RstCodeGenerator._generate_methods   s   Azzl!AFF8,EugQc%j //2Q\\40
 
C YY<<d;vvh
O   ZZ<<d;vvh
O    B4KCww.qwwiq9  ||   B4KCS T yy~r   c                    SS/n[        UR                  5      nUS:X  a  USUR                   S3/-  nOUSUR                   S3/-  n[        UR                  5       HP  u  pEXCS-
  :X  a"  USUR                   S	UR                   3/-  nM/  USUR                   S	UR                   S
3/-  nMR     USS/-  nUS/-  nSR                  U5      $ )zGenerates the signal signature.r4   r   r   r]   rc   rd   r   z      rS   re   rf   r   )rG   argsr7   ri   r^   r(   )r	   signalr+   n_argsrm   rn   s         r
   _generate_signal_signature+RstCodeGenerator._generate_signal_signature  s    
 V[[!Q;v{{m3' C v{{m2& C &fkk21*$ 
!CMM?; C  
!CMM?!< C 3  C 	tyy~r   c                 0   / nUR                    H  nUR                   SUR                   3nUSU S3SUS[        U5      -  SU R                  U5      SU R	                  UR
                  S5      S/	-  nUR                   H5  nU R	                  UR
                  S5      nUUR                   SU 3S/-  nM7     US/-  nUR                  (       a  USUR                   S	3S/-  nUR                  (       a  U/ S
Q-  nUS/-  nM     SR                  U5      $ )zGenerates the signals section.r4   rB   r5   r   r\   Trr   zSignal available since: r3   )rE   r   z   This signal is deprecated.r   r   r   )
r9   r7   rG   r{   r.   rJ   rx   rK   rL   r(   )r	   rM   r+   r)   rU   rs   rt   s          r
   _generate_signals"RstCodeGenerator._generate_signals%  s7   Azzl"QVVH-EugQc%j //2Q\\40
 
C VV<<d;vvh
O   B4KCww.qwwiq9  ||   B4KCE F yy~r   c           
      p   U R                    GH  n[        [        R                  R	                  X! SUR
                   S35      S5       nUR                  U R                  U5      5        [        UR                  5      S:  aK  UR                  U R                  SUR
                  5      5        UR                  U R                  U5      5        [        UR                  5      S:  aK  UR                  U R                  SUR
                  5      5        UR                  U R                  U5      5        [        UR                  5      S:  aK  UR                  U R                  SUR
                  5      5        UR                  U R                  U5      5        SSS5        GM     g! , (       d  f       GM  = f)	z7Generates the reStructuredText file for each interface.rT   z.rstwr   
PropertiesMethodsSignalsN)r   openospathr(   r7   writerP   rG   r:   rV   r`   r8   ru   r9   r~   )r	   rstoutdirr=   outfiles        r
   generateRstCodeGenerator.generateM  s.   Abggll6U!AFF84+@A3G7d33A67q||$q(MM$"8"8qvv"NOMM$";";A">?qyy>A%MM$"8"8AFF"KLMM$"8"8";<qyy>A%MM$"8"8AFF"KLMM$"8"8";< HG GGs   
EF%%
F5	)r%   r$   r#   r!   r   N)__name__
__module____qualname____firstlineno____doc__r   r.   r   rP   rV   r`   ro   ru   r{   r~   r   __static_attributes__ r   r
   r   r      sB    =&8
B$L'R'R-^>&P=r   r   )r   r&   r   r   r   r   r
   <module>r      s   
 
 	 L= L=r   