
    -Ph                        d dl mZ d dlZd dlmZ d dlmZ erd dlmZ  G d dej	                  Z
 e            fddZdS )    )annotationsN)TYPE_CHECKING)nodes)Setc                  J     e Zd ZdZ e            dd fdZddZddZ xZS )DescriptionParserz9Finds the title and creates a description from a doctree.)known_titlesdocumentnodes.documentdesc_lenintr	   Set[str]returnNonec                   t                                          |           d| _        || _        d| _        || _        d| _        d| _        d S )N r   F)super__init__descriptionr   
list_levelr	   first_title_foundstop)selfr
   r   r	   	__class__s       e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinxext/opengraph/descriptionparser.pyr   zDescriptionParser.__init__   sP     	""" (!& 			    nodenodes.Elementc                   | j         rt          j        t          |t          j        t          j        f          rt          j        t          |t          j                  r+| xj        dz  c_        | j        dk    r| xj	        dz  c_	        | j
        sHt          |t          j                  r.d| _
        |                                | j        v rt          j        t          |t          j                  st          |j        t          j                  rt          j        t#          |j                  dk    r|                                                    dd                              dd                                          }|                    d	          d
k    r/|                    d	d          }|                    d	          d
k    /t#          | j	                  dk    r]t#          |          dk    rJ| j	        d
         t,          j        vr1|d         t,          j        t,          j        z   vr| xj	        dz  c_	        | xj	        |z  c_	        d S d S )N   -Tr   r   
 z  )r   r   StopTraversal
isinstance
Admonition	InvisibleSkipNode
Sequentialr   r   r   titleastextr	   rawparentliteral_blocklenchildrenreplacestripfindstring
whitespacepunctuation)r   r   texts      r   dispatch_visitz DescriptionParser.dispatch_visit!   s   9 	&%% dU-u?@@ 	!.  dE,-- 	(OOq OO""  C'   % 	%*T5;*G*G 	%%)D"{{}} 111n$dEI&& 	!*T[%BU*V*V 	!.  t}"";;==((r22::4EEKKMMD ))D//R''||D#.. ))D//R''
 D$%%))IIMM$R(0AAAG6#4v7I#III  C'  $! #"r   c                <   t          |t          j                  r| xj        dz  c_        t          |t          j                  r| xj        dz  c_        t          |t          j                  rL| j        r%| j        d         dk    r| j        d d         | _        | xj        dz  c_        | xj        dz  c_        t          | j                  | j        k    rD| j        d | j                 | _        | j        dk    r| j        d d         dz   | _        d	| _	        d S d S )
N:,r%   .r       z...T)
r'   r   r,   r   Partr+   r   r1   r   r   )r   r   s     r   dispatch_departurez$DescriptionParser.dispatch_departureK   s)   dEK(( 	$# dEJ'' 	$# dE,-- 	! 9D$4R$8C$?$?#'#3CRC#8 #OOq OO t  4=00#/$-@D}!!#'#3CRC#85#@ DIII 10r   )r
   r   r   r   r	   r   r   r   )r   r   r   r   )	__name__
__module____qualname____doc__	frozensetr   r:   rB   __classcell__)r   s   @r   r   r      s        CC "+       $(% (% (% (%T       r   r   doctreer   description_lengthr   r	   r   r   strc                ^    t          | ||          }|                     |           |j        S )N)r   r	   )r   	walkaboutr   )rI   rJ   r	   mcvs       r   get_descriptionrO   d   s>    
 ,<  C c?r   )rI   r   rJ   r   r	   r   r   rK   )
__future__r   r6   typingr   docutilsr   collections.abcr   NodeVisitorr   rG   rO    r   r   <module>rV      s    " " " " " "                    $######U U U U U) U U Uv 'Y[[	 	 	 	 	 	 	r   