
    *)hI                     @    S SK r S SKrS SKJr  SSKJr   " S S5      rg)    N)path   )utilsc                   h    \ 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S rSrg)DocbookCodeGenerator"   c                 0    Xl         U R                  5         g )N)ifacesgenerate_expand_dicts)selfr
   s     ./usr/share/glib-2.0/codegen/codegen_docbook.py__init__DocbookCodeGenerator.__init__#   s    ""$    c           
      Z   SnU(       a3  UR                    H"  n[        [        UR                  5      U5      nM$     O[        [        UR                  5      U5      nSnU(       ax  UR                    Hg  nUR                   H"  n[        [        UR
                  5      U5      nM$     UR                   H"  n[        [        UR
                  5      U5      nM$     Mi     OdUR                   H"  n[        [        UR
                  5      U5      nM$     UR                   H"  n[        [        UR
                  5      U5      nM$     U(       al  U R                  R                  S[        R                  " UR                  5      UR                  UR                  U[        UR                  5      -
  S4-  5        OAU R                  R                  SUR                  U[        UR                  5      -
  S4-  5        SnUR                   H}  nUS:  a#  U R                  R                  SUS-   S4-  5        U R                  R                  SUR
                  U[        UR
                  5      -
  SUR                  4-  5        US-   nM     UR                   H}  nUS:  a#  U R                  R                  SUS-   S4-  5        U R                  R                  S	UR
                  U[        UR
                  5      -
  SUR                  4-  5        US-   nM     U R                  R                  S
5        g )Nr   z1<link linkend="gdbus-method-%s.%s">%s</link>%*s ( %s%*s (,
%*s   zIN  %s%*s %sr   zOUT %s%*s %s);
)methodsmaxlennamein_args	signatureout_argsoutwriter   dots_to_hyphens)	r   imin_synopsismax_method_len_mmax_signature_lenacounts	            r   print_method_prototype+DocbookCodeGenerator.print_method_prototype'   s   ii!$S\>!B   !QVVn=NiiA(+C,<>O(P% $A(+C,<>O(P% %   YY$'AKK(8:K$L! ZZ$'AKK(8:K$L!   HHNNC))!&&1FFFF"S[0	 HHNN9QVV0Lb'QQRAqyx>A+=r*BBCHHNN;; 1C4D Db!&&QR AIE  Aqyx>A+=r*BBCHHNN;; 1C4D Db!&&QR AIE  	vr   c           
      x   SnU(       a3  UR                    H"  n[        [        UR                  5      U5      nM$     O[        [        UR                  5      U5      nSnU(       aF  UR                    H5  nUR                   H"  n[        [        UR
                  5      U5      nM$     M7     O2UR                   H"  n[        [        UR
                  5      U5      nM$     U(       al  U R                  R                  S[        R                  " UR                  5      UR                  UR                  U[        UR                  5      -
  S4-  5        OAU R                  R                  SUR                  U[        UR                  5      -
  S4-  5        SnUR                   H}  nUS:  a#  U R                  R                  SUS-   S4-  5        U R                  R                  SUR
                  U[        UR
                  5      -
  SUR                  4-  5        US-   nM     U R                  R                  S	5        g )
Nr   z1<link linkend="gdbus-signal-%s.%s">%s</link>%*s (r   r   r   r   z%s%*s %sr   r   )
signalsr   r   r   argsr   r   r   r   r    )	r   r!   sr#   max_signal_len_sr&   r'   r(   s	            r   print_signal_prototype+DocbookCodeGenerator.print_signal_prototype\   s   ii!$S\>!B   !QVVn=NiiA(+C,<>O(P% !   VV$'AKK(8:K$L!  HHNNC))!&&1FFFF"S[0	 HHNN9QVV0Lb'QQRAqyx>A+=r*BBCHHNN;; 1C4D Db!&&QR AIE  	vr   c           
         SnU(       a3  UR                    H"  n[        [        UR                  5      U5      nM$     O[        [        UR                  5      U5      nSnU(       a3  UR                    H"  n[        [        UR                  5      U5      nM$     O[        [        UR                  5      U5      nU(       al  U R
                  R                  S[        R                  " UR                  5      UR                  UR                  U[        UR                  5      -
  S4-  5        OAU R
                  R                  SUR                  U[        UR                  5      -
  S4-  5        UR                  (       a  UR                  (       a  SnOUR                  (       a  SnOSnU R
                  R                  SU< SUR                  < S	35        g )
Nr   z1<link linkend="gdbus-property-%s.%s">%s</link>%*sr   z%s%*s	readwritez	readable z	writable z  
)
propertiesr   r   r   r   r   r   r   r    readablewritable)r   r!   pr#   max_property_len_pr&   accesss           r   print_property_prototype-DocbookCodeGenerator.print_property_prototype   sM   ll#&s277|5E#F  #  #3qvv;0@All$'BLL(9;L$M! # !$C$46G HHHNNC))!&&1FFFF$s166{2	 HHNN7aff.>QVV.Lb%QQR::!** FZZ F Fvq{{;<r   c                 X   U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        UR                   H  nU R                  XSS9  M     U R                   R                  S5        U R                   R                  S5        g )Nz#  <refsynopsisdiv role="synopsis">
z1    <title role="synopsis.title">Methods</title>
    <synopsis>
Tr#   </synopsis>
z  </refsynopsisdiv>
)r   r   r   r)   )r   r!   r"   s      r   print_synopsis_methods+DocbookCodeGenerator.print_synopsis_methods   sw    =>KL)*A''$'? './r   c                 X   U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        UR                   H  nU R                  XSS9  M     U R                   R                  S5        U R                   R                  S5        g )Nz!  <refsect1 role="signal_proto">
z5    <title role="signal_proto.title">Signals</title>
r@   TrA   rB     </refsect1>
)r   r   r,   r1   )r   r!   r.   s      r   print_synopsis_signals+DocbookCodeGenerator.print_synopsis_signals   sw    ;<OP)*A''$'? '()r   c                 X   U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        UR                   H  nU R                  XSS9  M     U R                   R                  S5        U R                   R                  S5        g )Nz  <refsect1 role="properties">
z6    <title role="properties.title">Properties</title>
r@   TrA   rB   rF   )r   r   r6   r=   r   r!   r9   s      r   print_synopsis_properties.DocbookCodeGenerator.print_synopsis_properties   sw    9:PQ)*A))!D)A '()r   c                    U R                   R                  S[        R                  " UR                  5      < SUR                  < S35        U R                   R                  SUR                  -  5        U R                   R                  S[        R                  " UR                  5      < SUR                  < SUR
                  < SUR                  < SUR                  < SUR                  < S35        U R                   R                  S	5        U R                  XS
S9  U R                   R                  S5        U R                   R                  SU R                  UR                  S5      -  5        UR                  (       d  UR                  (       Ga  U R                   R                  S5        UR                   H  nU R                   R                  S5        U R                   R                  SUR                  < SUR                  < S35        U R                   R                  SU R                  UR                  S5      -  5        U R                   R                  S5        M     UR                   H  nU R                   R                  S5        U R                   R                  SUR                  < SUR                  < S35        U R                   R                  SU R                  UR                  S5      -  5        U R                   R                  S5        M     U R                   R                  S5        [        UR                  5      S:  a(  U R                   R                  SUR                  -  5        UR                  (       a(  U R                   R                  SUR                  -  5        U R                   R                  S5        g )Nz)<refsect2 role="method" id="gdbus-method-.">
z!  <title>The %s() method</title>
z   <indexterm zone="gdbus-method-"><primary sortas="">z()</primary></indexterm>
<programlisting>
FrA   </programlisting>
%s
T<variablelist role="params">
<varlistentry>
z  <term><literal>IN  <parameter></parameter></literal>:</term>
  <listitem>%s</listitem>
</varlistentry>
z  <term><literal>OUT </variablelist>
r   #<para role="since">Since %s</para>
z><warning><para>The %s() method is deprecated.</para></warning></refsect2>
)r   r   r   r    r   name_without_prefixr)   expand_paras
doc_stringr   r   r   r   since
deprecated)r   r!   r"   r'   s       r   print_method!DocbookCodeGenerator.print_method   s   $$QVV,aff6	
 	;qvvFG %%aff-%%
	
 	+,##Ae#<,-v!2!21<<!FGH99


HHNN;<YY12{{AFF, 1((t<> 23  ZZ12{{AFF, 1((t<> 23   HHNN./qww<!HHNNAQWWMN<<HHNNP66 	'r   c                    U R                   R                  S[        R                  " UR                  5      < SUR                  < S35        U R                   R                  SUR                  -  5        U R                   R                  S[        R                  " UR                  5      < SUR                  < SUR
                  < SUR                  < SUR                  < SUR                  < S	35        U R                   R                  S
5        U R                  XSS9  U R                   R                  S5        U R                   R                  SU R                  UR                  S5      -  5        UR                  (       a  U R                   R                  S5        UR                   H  nU R                   R                  S5        U R                   R                  SUR                  < SUR                  < S35        U R                   R                  SU R                  UR                  S5      -  5        U R                   R                  S5        M     U R                   R                  S5        [        UR                  5      S:  a(  U R                   R                  SUR                  -  5        UR                  (       a(  U R                   R                  SUR                  -  5        U R                   R                  S5        g )Nz)<refsect2 role="signal" id="gdbus-signal-rN   rO   z!  <title>The "%s" signal</title>
z   <indexterm zone="gdbus-signal-rP   ::rQ   </primary></indexterm>
rR   FrA   rS   rT   TrU   rV   z  <term><literal>rW   rX   rY   rZ   r[   r   r\   z><warning><para>The "%s" signal is deprecated.</para></warning>r]   )r   r   r   r    r   r^   r1   r_   r`   r-   r   r   ra   rb   )r   r!   r.   r'   s       r   print_signal!DocbookCodeGenerator.print_signal   s   $$QVV,aff6	
 	;qvvFG %%aff-%%
	
 	+,##Ae#<,-v!2!21<<!FGH66HHNN;<VV12{{AFF, 1((t<> 23  HHNN./qww<!HHNNAQWWMN<<HHNNP66 	'r   c                    U R                   R                  S[        R                  " UR                  5      < SUR                  < S35        U R                   R                  SUR                  -  5        U R                   R                  S[        R                  " UR                  5      < SUR                  < SUR
                  < SUR                  < SUR                  < SUR                  < S	35        U R                   R                  S
5        U R                  XSS9  U R                   R                  S5        U R                   R                  SU R                  UR                  S5      -  5        [        UR                  5      S:  a(  U R                   R                  SUR                  -  5        UR                  (       a(  U R                   R                  SUR                  -  5        U R                   R                  S5        g )Nz-<refsect2 role="property" id="gdbus-property-rN   rO   z#  <title>The "%s" property</title>
z"  <indexterm zone="gdbus-property-rP   :rQ   rg   rR   FrA   rS   rT   Tr   r\   z@<warning><para>The "%s" property is deprecated.</para></warning>r]   )r   r   r   r    r   r^   r=   r_   r`   r   ra   rb   rJ   s      r   print_property#DocbookCodeGenerator.print_property'  sX   $$QVV,aff6	
 	=HI %%aff-%%
	
 	+,%%a%>,-v!2!21<<!FGHqww<!HHNNAQWWMN<<HHNNR66 	'r   c                 <   U R                    H!  nUR                  X0R                  U   5      nM#     U R                   H!  nUR                  X0R                  U   5      nM#     U(       a2  [
        R                  " SS U5      n[
        R                  " SS U5      nU$ )Nz@[a-zA-Z0-9_]*c                 6    SU R                  S5      SS  -   S-   $ )Nz<parameter>r   r   z</parameter>groupr"   s    r   <lambda>-DocbookCodeGenerator.expand.<locals>.<lambda>N  s    -!''!*QR.8>Ir   z%[a-zA-Z0-9_]*c                 6    SU R                  S5      SS  -   S-   $ )Nz
<constant>r   r   z</constant>rp   rr   s    r   rs   rt   T  s    ,AB7-Gr   )expand_member_dict_keysreplaceexpand_member_dictexpand_iface_dict_keysexpand_iface_dictresub)r   r.   expandParamsAndConstantskeys       r   expandDocbookCodeGenerator.expandE  s    //C		#66s;<A 0..C		#55c:;A /# IA  GA
 r   c                    [         R                  " U R                  X5      5      R                  5       n/ nUR	                  S5      (       d  UR                  S5        UR                  S5       H-  nUR                  5       nU(       d  SnUR                  U5        M/     UR                  S5      (       d  UR                  S5        SR                  U5      $ )Nz<para>r5   z</para><para>z</para>)	textwrapdedentr   rstrip
startswithappendsplitendswithjoin)r   r.   r}   reslines        r   r_   !DocbookCodeGenerator.expand_parasY  s    OODKKDELLN||H%%JJx GGDMD;;=D&JJt	 "
 zz)$$JJy!yy~r   c           	         0 U l         0 U l        U R                   GH  nSUR                  -  nS[        R
                  " UR                  5      < SUR                  < S3nX0R                  U'   UR                   Hp  nUR                  < SUR                  < S3nS[        R
                  " UR                  5      < SUR                  < SUR                  < S	3nX0R                   U'   Mr     UR                   Hp  nS
UR                  < SUR                  < 3nS[        R
                  " UR                  5      < SUR                  < SUR                  < S3nX0R                   U'   Mr     UR                   Hp  nS
UR                  < SUR                  < 3nS[        R
                  " UR                  5      < SUR                  < SUR                  < S3nX0R                   U'   Mr     GM     [        U R                   R                  5       SS9U l        [        U R                  R                  5       SS9U l        g )Nz#%sz<link linkend="gdbus-interface-.top_of_page">z</link>rN   z()z<link linkend="gdbus-method-rQ   z	()</link>#rf   z<link linkend="gdbus-signal-z">"z"</link>rk   z<link linkend="gdbus-property-T)reverse)rx   rz   r
   r   r   r    r   r,   r6   sortedkeysrv   ry   )r   r!   r~   valuer"   r.   r9   s          r   r   *DocbookCodeGenerator.generate_expand_dictsg  s   "$!#A166"C%%aff-E +0""3'YY#$661662))!&&1FFFF
 05'',  YY#$661662))!&&1FFFF
 05'',  \\"#&&!&&1))!&&1FFFF
 05'', "/ B (.##((*D(
$ '-""'')4'
#r   c           
         U R                    GH  n[        [        R                  " X!< SUR                  < S35      S5      U l        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  S	UR                  -  5        U R
                  R                  S
5        U R
                  R                  S[        R                  " UR                  5      < SUR                  < S35        U R
                  R                  S[        R                  " UR                  5      < SUR                  < SUR                  < S35        U R
                  R                  S5        U R
                  R                  S5        U R
                  R                  SUR                  -  5        U R
                  R                  SUR                  -  5        U R
                  R                  S5        [        UR                  5      S:  a  U R                  U5        [        UR                  5      S:  a  U R                  U5        [        UR                   5      S:  a  U R#                  U5        U R
                  R                  S[        R                  " UR                  5      -  5        U R
                  R                  S5        U R
                  R                  SU R%                  UR&                  S5      -  5        [        UR(                  5      S:  a(  U R
                  R                  SUR(                  -  5        UR*                  (       a(  U R
                  R                  SUR                  -  5        U R
                  R                  S5        [        UR                  5      S:  a  U R
                  R                  SUR                  -  5        U R
                  R                  S 5        UR                   H  nU R-                  X45        M     U R
                  R                  S5        [        UR                  5      S:  a  U R
                  R                  S!UR                  -  5        U R
                  R                  S"5        UR                   H  nU R/                  X55        M     U R
                  R                  S5        [        UR                   5      S:  a  U R
                  R                  S#UR                  -  5        U R
                  R                  S$5        UR                    H  nU R1                  X55        M     U R
                  R                  S5        U R
                  R                  S%5        U R
                  R                  S&5        GM     g )'N-z.xmlwr   z'<?xml version="1.0" encoding="utf-8"?>
zA<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
zL               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
z]>
z<refentry id="gdbus-%s">
z  <refmeta>z:    <refentrytitle role="top_of_page" id="gdbus-interface-r   z</refentrytitle>
z#  <indexterm zone="gdbus-interface-z.top_of_page"><primary sortas="rQ   rg   z  </refmeta>z  <refnamediv>z    <refname>%s</refname>z    <refpurpose>%s</refpurpose>z  </refnamediv>r   z/<refsect1 role="desc" id="gdbus-interface-%s">
z/  <title role="desc.title">Description</title>
z  %s
Tz%  <para role="since">Since %s</para>
z?<warning><para>The %s interface is deprecated.</para></warning>z</refsect1>
z0<refsect1 role="details" id="gdbus-methods-%s">
z5  <title role="details.title">Method Details</title>
z0<refsect1 role="details" id="gdbus-signals-%s">
z5  <title role="details.title">Signal Details</title>
z3<refsect1 role="details" id="gdbus-properties-%s">
z7  <title role="details.title">Property Details</title>
z</refentry>
r5   )r
   openr   r   r   r   r   r   r    r^   doc_string_briefr   r   rC   r,   rG   r6   rK   r_   r`   ra   rb   rc   rh   rl   )r   docbookoutdirr!   r"   r.   s         r   generateDocbookCodeGenerator.generate  s   ADIIfWaff.MNPSTDHHHNN2HHNNEFHHNNT HHNN_ HHNN6"HHNN7166BCHHNN=)HHNN((0!&&: HHNN((0!2G2GQ HHNN>*HHNN+,HHNN6!&&ABHHNN<@R@RSTHHNN,-199~!++A.199~!++A.1<< 1$..q1HHNNB((02 HHNNMNHHNN8t'8'8t'LMN177|aG177ST||Uvv HHNN?+199~!G166R WXA%%a+ #/199~!G166R WXA%%a+ #/1<< 1$JaffU N A''- &/HHNN?+HHNN4 a r   )rz   ry   rx   rv   r
   r   N)__name__
__module____qualname____firstlineno__r   r)   r1   r=   rC   rG   rK   rc   rh   rl   r   r_   r   r   __static_attributes__ r   r   r   r   "   sO    %3j'R"=H0**5(n*(X(<()
VQ!r   r   )r{   r   osr   r   r   r   r   r   r   <module>r      s   0 
   A! A!r   