§
    Çtºf+  ã                   ó8   — d Z ddlZddgZdd„Zdd„Zd„ Zdd
„ZdS )zž Pretty-Print an Interface object as structured text (Yum)

This module provides a function, asStructuredText, for rendering an
interface as structured text.
é    NÚasReStructuredTextÚasStructuredTextFc                 ó8  — |rd„ }nd„ } ||                       ¦   «         ¦  «        g}|j        }d}|                      ¦   «         r8 |t          t	          |                      ¦   «         ¦  «        |¦  «        ¦  «         d„ | j        D ¦   «         }|rp |t          d||¦  «        ¦  «         |dz  }|D ]I}d ||                      ¦   «         ¦  «        z  }	 |t          t	          |	¦  «        ||¦  «        ¦  «         ŒJ|dz  }t          |                      ¦   «         ¦  «        }
 |t          d||¦  «        ¦  «         |dz  }|
D ]�\  }}t          |d¦  «        sld	 	                     ||                      ¦   «         ¦  «        |                     ¦   «         pd
¦  «        }	 |t          t	          |	¦  «        ||¦  «        ¦  «         Œ‚|dz  } |t          d||¦  «        ¦  «         |dz  }|
D ]™\  }}t          |d¦  «        r„|                      ¦   «         › | 
                    ¦   «         › �}d	 	                     ||¦  «        |                     ¦   «         pd
¦  «        }	 |t          t	          |	¦  «        ||¦  «        ¦  «         Œšd                     |¦  «        dz   S )zõ Output structured text format.  Note, this will whack any existing
    'structured' format of the text.

    If `rst=True`, then the output will quote all code as inline literals in
    accordance with 'reStructuredText' markup principles.
    c                 ó   — d| › d�S )Nz``© ©Úss    úV/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/zope/interface/document.pyÚinline_literalz(asStructuredText.<locals>.inline_literal%   s   € Ø˜�:�:�:Ðó    c                 ó   — | S )Nr   r   s    r
   r   z(asStructuredText.<locals>.inline_literal(   s   € ØˆHr   é   c                 ó8   — g | ]}|t           j        j        u¯|‘ŒS r   )ÚzopeÚ	interfaceÚ	Interface)Ú.0Úbases     r
   ú
<listcomp>z$asStructuredText.<locals>.<listcomp>2   s2   € ð ð ð ØØ�DœNÔ4Ð4Ð4ð à4Ð4Ð4r   zThis interface extends:zo %szAttributes:ÚgetSignatureStringz{} -- {}zno documentationzMethods:z

)ÚgetNameÚappendÚgetDocÚ_justify_and_indentÚ_trim_doc_stringÚ	__bases__ÚsortedÚnamesAndDescriptionsÚhasattrÚformatr   Újoin)ÚifaceÚmungeÚrstr   ÚrÚoutpÚlevelÚbasesÚbÚitemr   ÚnameÚdescÚ_calls                 r
   r   r      sþ  € ð ð ð	ð 	ð 	ð 	ð	ð 	ð 	ð 
ˆ˜Ÿš™œÑ	(Ô	(Ð)€AØŒ8€DØ€Eà‡|‚|�~„~ð KØˆÕ Õ!1°%·,²,±.´.Ñ!AÔ!AÀ5ÑIÔIÑJÔJÐJðð Øœðñ ô €Eð ð ØˆÕ Ð!:¸EÀ5ÑIÔIÑJÔJÐJØ�‰
ˆØð 	Lð 	LˆAØ˜N˜N¨1¯9ª9©;¬;Ñ7Ô7Ñ7ˆDØˆDÕ$Õ%5°dÑ%;Ô%;¸UÀEÑJÔJÑKÔKÐKÐKØ�‰
ˆå! %×"<Ò"<Ñ">Ô">Ñ?Ô?Ðà€DÕ	˜]¨E°5Ñ	9Ô	9Ñ:Ô:Ð:Ø	ˆQ�J€EØ*ð Lð L‰
ˆˆdÝ�tÐ1Ñ2Ô2ð 	LØ×$Ò$Ø�˜tŸ|š|™~œ~Ñ.Ô.Ø—’‘”Ð3Ð!3ñô ˆDð ˆDÕ$Õ%5°dÑ%;Ô%;¸UÀEÑJÔJÑKÔKÐKøØ	ˆQ�J€Eà€DÕ	˜Z¨°Ñ	6Ô	6Ñ7Ô7Ð7Ø	ˆQ�J€EØ*ð Lð L‰
ˆˆdÝ�4Ð-Ñ.Ô.ð 	LØ—|’|‘~”~ÐB t×'>Ò'>Ñ'@Ô'@ÐBÐBˆEØ×$Ò$Ø�˜uÑ%Ô%Ø—’‘”Ð3Ð!3ñô ˆDð ˆDÕ$Õ%5°dÑ%;Ô%;¸UÀEÑJÔJÑKÔKÐKøà�;Š;�q‰>Œ>˜FÑ"Ð"r   c                 ó&   — t          | |d¬¦  «        S )zi Output reStructuredText format.

    Note, this will whack any existing 'structured' format of the text.T)r#   r$   )r   )r"   r#   s     r
   r   r   Y   s   € õ ˜E¨°DÐ9Ñ9Ô9Ð9r   c                 ó$  — |                       dd¦  «                             d¦  «        }|                     d¦  «        g}|r;t          d„ |D ¦   «         ¦  «        }|D ]}|                     ||d…         ¦  «         Œ d                     |¦  «        S )zJ Trims a doc string to make it format
    correctly with structured text. ú
ú
r   c                 óp   — g | ]3}t          |¦  «        t          |                     ¦   «         ¦  «        z
  ‘Œ4S r   )ÚlenÚlstrip)r   Úlines     r
   r   z$_trim_doc_string.<locals>.<listcomp>g   sC   € ð -ð -ð -Ø"õ ˜d™)œ)¥c¨$¯+ª+©-¬-Ñ&8Ô&8Ñ8ð -ð -ð -r   N)ÚreplaceÚsplitÚpopÚminr   r!   )ÚtextÚlinesÚnlinesÚ
min_indentr5   s        r
   r   r   `   s¨   € ð �LŠL˜ Ñ&Ô&×,Ò,¨TÑ2Ô2€EØ�iŠi˜‰lŒlˆ^€FØð -Ýð -ð -Ø&+ð-ñ -ô -ñ .ô .ˆ
àð 	-ð 	-ˆDØ�MŠM˜$˜z˜{˜{Ô+Ñ,Ô,Ð,Ð,à�9Š9�VÑÔÐr   éH   c                 ó¤  — d|z  }|rˆg }|}|                       ¦   «         } | D ]C}d                     ||g¦  «        }t          |¦  «        |k    r|                     |¦  «         |}ŒD|                     |¦  «         d                     |¦  «        S ||                      ¦   «                              dd¦  «                             dd|z   ¦  «        z   S )z9 indent and justify text, rejustify (munge) if specified ú r1   r0   )r7   r!   r3   r   Ústripr6   )r:   r'   r#   ÚwidthÚindentr;   r5   Úwords           r
   r   r   o   sÞ   € ð �5‰[€Fàð MØˆØˆØ�zŠz‰|Œ|ˆàð 	ð 	ˆDØ—8’8˜T 4˜LÑ)Ô)ˆDÝ�4‰yŒy˜5Ò Ð Ø—’˜TÑ"Ô"Ð"Ø�øà�LŠL˜ÑÔÐà�yŠy˜ÑÔÐð Ø�JŠJ‰LŒL× Ò  ¨Ñ.Ô.×7Ò7¸¸dÀV¹mÑLÔLñMð 	Mr   )r   F)r   )r   r>   )Ú__doc__Úzope.interfacer   Ú__all__r   r   r   r   r   r   r
   ú<module>rH      sˆ   ððð ð
 Ð Ð Ð ð Øð€ð:#ð :#ð :#ð :#ðz:ð :ð :ð :ðð ð ðMð Mð Mð Mð Mð Mr   