
    -Ph+                    v   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZ er$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" n# e#$ r  e$d           dZ"i Z!Y nw xY wdZ%dZ&dZ'dZ(dZ)ddddddddddd 
Z*dHdId&Z+dJd4Z,dKd7Z-dLd@Z.dMdEZ/dNdGZ0dS )O    )annotationsN)Path)TYPE_CHECKING)urljoinurlparseurlsplit
urlunsplit)nodes)get_description)get_meta_description)	get_title)Any)Sphinx)Builder)Config)BuildEnvironment)ExtensionMetadata)DEFAULT_SOCIAL_CONFIGcreate_social_cardz?matplotlib is not installed, social cards will not be generatedz0.10.0)r   
   r         P   z	image/gifz
image/apngz
image/webpz
image/jpegz	image/pngz	image/bmpz
image/heicz
image/heifz
image/tiff)
gifapngwebpjpegjpgpngbmpheicheiftiffpropertystrcontenttype_returnc                F    |                     dd          }d| d|  d| dS )N"z&quot;z<meta z="z" content="z" />)replace)r$   r&   r'   s      \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinxext/opengraph/__init__.pymake_tagr-   8   s6    ooc8,,G?E??X??'????    contextdict[str, Any]doctreenodes.documentsrcdir
str | Pathoutdirconfigr   builderr   envr   c                  | d         }|i }d|v rdS i }i }		 t          |                    d|j                            }
n# t          $ r
 t          }
Y nw xY wt          | d                   \  }}t          ||
||h          }||d<   |j        |d<   |j        s)t          j
        d          rt          |j                  }n|j        }|j        p|}t          ||                    | d	                             }||d
<   |j        du rd }n|j        |j        }n|j        }|r||d<   |r&||d<   |j        rt'          | d                   s||	d<   d|v r6|d         }d}|                    d          }|                    dd            n)|j        }|j        }|                    d|j                  }t1          j                    }|j        pi }|                    |           |sm|sk|                    d          durTt8          Mt;          ||||| d	         ||||||          }d}d|v r|                    d          }n|}d|d<   d|d<   d|	d<   |                    dd            d }|r|                    t>          j                   }|rhtC          |                    dd                    j"        dd          #                                tH          v r|d         }|                    dd           }nd }|rid|vr7tK          |          }|j&        s|r|}n|}t          ||j'                  }||d<   tQ          |tR                    r||d<   n||r||d<   n	||r||d<   |                    d |*                                D                        d+                    d |*                                D             d  |	*                                D             z   |j,        z             dz   S )!Nmetaogp_disable ogp_description_lengthtitlezog:titlezog:typeREADTHEDOCSpagenamezog:urlFzog:site_namezog:descriptionmetatagsdescriptionzog:imagezog:image:altenable)config_social	site_namer>   rB   r@   ogp_site_urlogp_canonical_urlr3   r5   r6   r8   1146zog:image:width600zog:image:heightsummary_large_imageztwitter:carduri   altc                D    i | ]\  }}|                     d           ||S )zog:)
startswith).0kvs      r,   
<dictcomp>zget_tags.<locals>.<dictcomp>   s/    HHH$!QALL4G4GHAHHHr.   
c                4    g | ]\  }}t          ||          S  r-   rP   pcs      r,   
<listcomp>zget_tags.<locals>.<listcomp>   s$    5551Xa^^555r.   c                6    g | ]\  }}t          ||d           S )namerW   rX   s      r,   r[   zget_tags.<locals>.<listcomp>   s(    DDD$!Qx1f%%DDDr.   )-intgetr=   
ValueErrorDEFAULT_DESCRIPTION_LENGTHr   r   ogp_typerF   osgetenvread_the_docs_site_urlhtml_baseurlrG   r   get_target_uriogp_site_nameprojectogp_enable_meta_descriptionr   pop	ogp_imageogp_use_first_imageogp_image_altr   copyogp_social_cardsupdater   social_card_for_page	next_noder
   imager   suffixlowerIMAGE_MIME_TYPESr   schemepath
isinstancer%   itemsjoinogp_custom_meta_tags)r/   r1   r3   r5   r6   r7   r8   fieldstags	meta_tagsdesc_lenr>   title_excluding_htmlrB   rF   rG   page_urlrE   	image_urlrm   rn   rD   social_card_user_optionsfirst_imageimage_url_parsedroots                             r,   get_tagsr   >   s    V_F~rDI.JJ/1NOO
 
  . . .-. #,GG,<"="=E "'8e=Q5RSSK D oDO +29]#;#; +-f.ABB* 0@L ('*@*@AT*U*UVVHDN u$$					%N		(	 )(^  3!,- 	36JJ7
 7
 	3 (3Im$ V:&	#

>22

:t$$$$$	$8

>63GHH
 *.00M%6<"1222:-:h''u44*('#Z(%/
 
 
	 $ V##"JJ~66MM'M
 "("'$9	.!
JJ~t$$$K 
''44	[__UB//007;AACCGWWW#E*I'OOE488MMK )V##'	22#* 	A (#DD (D#D*:*?@@	(D mS)) 	)#0D  "y"#,D  "u"#(D  	KKHH&,,..HHHIII 			55

555DD)//2C2CDDDE)*	
 	

 	s   (A AArf   
str | Nonec                    t          j        d          x}rt          |          }n#| t          |           }nd}t          |          t	          |j        |j        |j        ddf          S )NREADTHEDOCS_CANONICAL_URLz2ReadTheDocs did not provide a valid canonical URL!r<   )rc   rd   r   RuntimeErrorr	   rx   netlocry   )rf   rtd_canonical_urlparse_resultmsgs       r,   re   re      s     I&ABBB   122		!--B3 		l1<3Db"M  r.   rD   dict[str, bool | str]rE   r>   rB   r@   rF   rG   c                  |                      dt          dz
            }t          |          |k    r|d |                                         dz   }|}t          |          t          k    r|d t                   dz   }|                      dd          }|du r|                    d          d         }nt          |t                    r|}t          | ||||||||
|	j	        
  
        }t          j        ||                                          S )	Ndescription_max_length   z...site_urlTz://)r3   r5   r8   	html_logo)r_   'DEFAULT_DESCRIPTION_LENGTH_SOCIAL_CARDSlenstrip DEFAULT_PAGE_LENGTH_SOCIAL_CARDSsplitrz   r%   r   r   	posixpathr|   as_posix)rD   rE   r>   rB   r@   rF   rG   r3   r5   r6   r8   r   	pagetitler   url_text
image_paths                   r,   rr   rr      s6    +.. "IA"M  ;000!"9#9"9:@@BBUJ I
9~~888???@5H	   T22H4$**511"5	Hc	"	"  $"  J >,
(;(;(=(=>>>r.   appr   templatenameNonec                    |r?|dxx         t          ||| j        | j        | j        | j        | j                  z  cc<   d S d S )NrA   )r3   r5   r6   r7   r8   )r   r3   r5   r6   r7   r8   )r   r@   r   r/   r1   s        r,   html_page_contextr   3  sh      	

x:::K 
  
  
 	
	
 	
r.   r   c                T   |                      ddd           |                      ddd           |                      dt          d           |                      dd d           |                      dd d           |                      dd	d           |                      d
dd           |                      dd d           |                      dd d           |                      dg d           |                      ddd           |                     dt                     t          ddddS )NrF   r<   htmlrG   r=   rl   rn   rm   Frb   websiterh   rp   r}   rj   Tzhtml-page-contextrL   )versionenv_versionparallel_read_safeparallel_write_safe)add_config_valuera   connectr   __version__)r   s    r,   setupr   F  sH    V444,b&99913MvVVVdF333$777.v>>>Y777$777+T6:::/V<<<6fEEE KK#%6777 "#	  r.   )r$   )r$   r%   r&   r%   r'   r%   r(   r%   )r/   r0   r1   r2   r3   r4   r5   r4   r6   r   r7   r   r8   r   r(   r%   )rf   r   r(   r%   )rD   r   rE   r%   r>   r%   rB   r%   r@   r%   rF   r%   rG   r%   r3   r4   r5   r4   r6   r   r8   r   r(   r%   )r   r   r@   r%   r   r%   r/   r0   r1   r2   r(   r   )r   r   r(   r   )1
__future__r   rc   r   pathlibr   typingr   urllib.parser   r   r   r	   docutilsr
   %sphinxext.opengraph.descriptionparserr   sphinxext.opengraph.metaparserr   sphinxext.opengraph.titleparserr   r   sphinx.applicationr   sphinx.buildersr   sphinx.configr   sphinx.environmentr   sphinx.util.typingr   sphinxext.opengraph.socialcardsr   r   ImportErrorprintr   version_infora   r   r   rw   r-   r   re   rr   r   r   rV   r.   r,   <module>r      s   " " " " " " 				                       @ @ @ @ @ @ @ @ @ @ @ @       A A A A A A ? ? ? ? ? ? 5 5 5 5 5 5 5))))))''''''$$$$$$333333444444            	E
KLLL
   *- '#%     @ @ @ @ @n n n nb   "0? 0? 0? 0?f
 
 
 
&     s   &A/ /BB