
    zi                       d dl mZ d dlZd dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$m%Z% erd dl&m'Z' d dl(m)Z)  ej*        e+          Z, G d dej-                  Z- G d dej.                  Z. G d de          Z/ G d de          Z0d!d Z1dS )"    )annotationsN)path)TYPE_CHECKINGAnycast)nodes)Nodemake_id)
directives)imagestables)Meta)set_classes)optional_int)
MathDomain)__)logging)SphinxDirective)set_source_info)SEPos_pathrelpath)Sphinx)
OptionSpecc                  $     e Zd ZdZd fdZ xZS )FigureziThe figure directive which applies `:name:` option to the figure node
    instead of the image node.
    return
list[Node]c                "   | j                             dd           }t                                                      }t	          |          dk    s t          |d         t          j                  r|S t	          |          dk    sJ t          t          j	        |d                   }|r|| j         d<   | 
                    |           |j        ?t	          |          dk    r,t          t          j        |d                   }|j        |_        |gS )Nname   r      )optionspopsuperrunlen
isinstancer   system_messager   figureadd_namelinecaption)selfr    resultfigure_noder-   	__class__s        d/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/directives/patches.pyr&   z
Figure.run#   s    |--v;;!z&)U5IJJM6{{a5<33 	'#'DL MM+&&& #K(8(8A(=(=5=+a.99G&|K}    r   r   __name__
__module____qualname____doc__r&   __classcell__r1   s   @r2   r   r      sG                  r3   r   c                  $     e Zd ZdZd fdZ xZS )CSVTablezThe csv-table directive which searches a CSV file from Sphinx project's source
    directory when an absolute path is given via :file: option.
    r   r   c                   d| j         v r| j         d                             t          t          j        f          r| j        j        j        j        }| j         d         }t          j
        |          r6t                              t          d          |j        | j        f           n~t          j        |j        t%          | j         d         dd                              }t          j        |                    |j                            }t+          ||          | j         d<   t-                                                      S )Nfilez":file:" option for csv-table directive now recognizes an absolute path as a relative path from source directory. Please update your document.locationr"   )r#   
startswithr   ossepstatedocumentsettingsenvr   existsloggerwarningr   docnamelinenojoinsrcdirr   dirnamedoc2pathr   r%   r&   )r.   rH   filenameabspathdocdirr1   s        r2   r&   zCSVTable.run=   s   T\!!dl6&:&E&EsBFm&T&T!*%.2C|F+H{8$$ @r #A  B  B *-dk(B  D D D D
 )CJV8LQRR8P0Q0QRRcll3;&?&?@@'.w'?'?V$ww{{}}r3   r4   r5   r;   s   @r2   r=   r=   8   sG                  r3   r=   c                  Z    e Zd ZU dZdZej        ej        ej        e	dZ
ded<   dZdd	Zd
S )CodezqParse and mark up content of a code block.

    This is compatible with docutils' :rst:dir:`code` directive.
    r"   )classforcer    number-linesr   option_specTr   r   c                4   |                                   t          | j                   d                    | j                  }t          j        ||| j                            dg           d| j        v i           }|                     |           t          | |           | j
        r| j
        d         |d<   n-| j        j                            d| j        j                  |d<   d| j        v r(d	|d
<   | j        d         r| j        d         |d         d<   |gS )N
classesrX   )r]   rX   highlight_argsr   languagehighlight_languagerY   Tlinenosr^   linenostart)assert_has_contentr   r#   rN   contentr   literal_blockgetr+   r   	argumentsrH   	temp_dataconfigr`   )r.   codenodes      r2   r&   zCode.run\   s-   !!!DL!!!yy&&"4+/<+;+;Ir+J+J)0DL)@246 6 6 	dd###> 	V#~a0D
  $x1556J6:k6T V  VD T\))"DO |N+ U8<^8T%&}5vr3   Nr4   )r6   r7   r8   r9   optional_argumentsr   class_optionflag	unchangedr   rZ   __annotations__has_contentr&    r3   r2   rV   rV   N   sw           ($$	 K     K     r3   rV   c                  p    e Zd ZU dZdZdZdZej        ej        ej	        ej
        dZded<   dd	ZddZdS )MathDirectiveTr   r"   )labelr    rW   nowrapr   rZ   r   r   c           
        d                     | j                  }| j        r | j        d         r| j        d         dz   |z   }| j                            d| j                            d                    }t          j        ||| j                            dg           | j        j        d |d| j        v           }| 	                    |           | 
                    |           |g}|                     |           |S )	Nr\   r   z

ru   r    rW   rv   )r]   rL   numberru   rv   )rN   rd   rg   r#   rf   r   
math_blockrH   rL   r+   r   
add_target)r.   latexru   rk   rets        r2   r&   zMathDirective.run   s    		$,''> 	7dnQ/ 	7N1%.6E  $,*:*:6*B*BCCu(,(8(8"(E(E(,(8'+&+'/4<'?A A A 	dT"""&
r3   r|   Nonec                   t          t          j        |d                   }|d         dk    s| j        j        r6|d         s.| j                            d          }d| j        j        |fz  |d<   |d         sd S t          t          | j        	                    d                    }|
                    | j        j        |d         |           |                    |d                   |d<   t          d	|d         z            }t          j        dd|g
          }| j        j                            |           |                    d|           d S )Nr   ru    zsphinx.ext.math#equationsz%s:%dmathr@   rx   zequation-%s)ids)r   r   ry   ri   math_number_allrH   new_serialnorL   r   
get_domainnote_equationget_equation_number_forr
   targetrE   rF   note_explicit_targetinsert)r.   r|   rk   seqdomainnode_idr   s          r2   rz   zMathDirective.add_target   s@   E$c!f-- =B4;#>tG}(''(CDDC#tx'7&==DM G} 	F j$("5"5f"="=>>TX-tG}tLLL77WFFX -$w-788b"7)444
00888

1fr3   Nr4   )r|   r   r   r}   )r6   r7   r8   rq   required_argumentsrl   final_argument_whitespacer   ro   rm   rn   rZ   rp   r&   rz   rr   r3   r2   rt   rt   |   s         K $%$(/	 K       $     r3   rt   appr   r   dict[str, Any]c                   t          j        dt                     t          j        dt                     t          j        dt                     t          j        dt
                     t          j        dt                     ddddS )	Nr*   metaz	csv-tablerj   r   builtinT)versionparallel_read_safeparallel_write_safe)r   register_directiver   r   r=   rV   rt   )r   s    r2   setupr      s{    !(F333!&$///!+x888!&$///!&-888 "#  r3   )r   r   r   r   )2
__future__r   rC   r   typingr   r   r   docutilsr   docutils.nodesr	   r
   docutils.parsers.rstr   docutils.parsers.rst.directivesr   r   $docutils.parsers.rst.directives.miscr   docutils.parsers.rst.rolesr   sphinx.directivesr   sphinx.domains.mathr   sphinx.localer   sphinx.utilr   sphinx.util.docutilsr   sphinx.util.nodesr   sphinx.util.osutilr   r   r   sphinx.applicationr   sphinx.util.typingr   	getLoggerr6   rJ   r   r=   rV   rt   r   rr   r3   r2   <module>r      s^   " " " " " " 				       + + + + + + + + + +       ( ( ( ( ( ( ( ( + + + + + + : : : : : : : : 5 5 5 5 5 5 2 2 2 2 2 2 * * * * * * * * * * * *             0 0 0 0 0 0 - - - - - - 4 4 4 4 4 4 4 4 4 4 .))))))------ 
	8	$	$    V]   4    v   ,+ + + + +? + + +\3 3 3 3 3O 3 3 3l     r3   