
    -Ph*                    ,   d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	m
Z
 ddlmZmZmZ ddlmZ ddl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 ddlmZ ddlmZm Z  erddlm!Z! ddl"m#Z# ej$        dd         dk    r	ddl%m&Z&m'Z' nddlm&Z&m'Z' dZ(dZ) ej*         ej+        e,                    Z- ej.        e-d          Z/ ee0d          Z1 ej2        e0          Z3 G d de          Z4 G d de          Z5 G d de          Z6d#d"Z7dS )$zBuild Apple help books.    )annotationsN)environpath)Path)PIPESTDOUTCalledProcessError)TYPE_CHECKING)StandaloneHTMLBuilder)SphinxError)get_translation)logging)
copy_assetcopy_asset_file)Matcher)	ensuredirmake_filename)Any)Sphinx   )      )SkipProgressMessageprogress_messagez2.0.0)r   r   r   	templatesconsolec                  $    e Zd Z ed          ZdS )AppleHelpIndexerFailedzHelp indexer failedN__name__
__module____qualname____category     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinxcontrib/applehelp/__init__.pyr   r   -           r'((HHHr&   r   c                  $    e Zd Z ed          ZdS )AppleHelpCodeSigningFailedzCode signing failedNr   r%   r&   r'   r*   r*   1   r(   r&   r*   c                      e Zd ZdZdZ ed          ZdZg dZdZ	dZ
dZd fd	Zd fd
Z e ed                    dd            ZddZ e ed                    dd            ZddZ e ed                    dd            Z e ed                    dd            Z e ed                    dd            Z xZS )AppleHelpBuilderz{
    Builder that outputs an Apple help book.  Requires Mac OS X as it relies
    on the ``hiutil`` command line tool.
    	applehelpzThe help book is in %(outdir)s.
Note that won't be able to view it unless you put it in ~/Library/Documentation/Help or install it in your application bundle.F)z	image/pngz	image/gifz
image/jpegz
image/tiffz	image/jp2zimage/svg+xmlTreturnNonec           	        t                                                       d| _        d| _        | j        j        t          d          }t          |          t          j	        | j
        | j        j        dz             | _         t          | j
                  t          | j        dd| j        j        dz                       | _
        d S )Nz.htmlzBYou must set applehelp_bundle_id before building Apple Help outputz.helpContents	Resources.lproj)superinit
out_suffixlink_suffixconfigapplehelp_bundle_idr#   r   r   joinoutdirapplehelp_bundle_namebundle_pathtyper   applehelp_locale)selfmsg	__class__s     r'   r5   zAppleHelpBuilder.initN   s    !";*2 9 : :Cc"""9T[$+2SV]2]^^'d4;''K(83	)
 )
  r&   c                    t                                                       | j                            | j                   | j                            | j                   d S N)r4   handle_finishfinish_tasksadd_taskcopy_localized_filesbuild_helpbook)r@   rB   s    r'   rE   zAppleHelpBuilder.handle_finisha   sS    ""4#<===""4#677777r&   zcopying localized filesc                   t          j        | j        | j        j        dz             }| j        }t          j        |          r=t          | j        j        dgz             }t          |||| j
        | j                   d S d S )Nr3   z**/.*)contextrenderer)r   r:   confdirr8   r?   r;   isdirr   exclude_patternsr   globalcontextr   )r@   
source_dir
target_direxcludeds       r'   rH   z%AppleHelpBuilder.copy_localized_filesg   s    Yt|T[-IH-TUU
[
:j!! 	Lt{;wiGHHHz:x#1DNL L L L L L	L 	Lr&   c                   t          j        | j        d          }t          j        |d          }t          j        || j        j        dz             }t          |           |                     |           |                     |           |                     |           | 	                    |           | j        j
        r|                                  d S d S )Nr1   r2   r3   )r   r:   r=   r8   r?   r   build_info_plistcopy_applehelp_iconbuild_access_pagebuild_helpindexapplehelp_codesign_identitydo_codesign)r@   contents_dirresources_dirlanguage_dirs       r'   rI   zAppleHelpBuilder.build_helpbookq   s    y!1:>>	,<<y!%!=!HJ J,l+++  ///|,,,\***;2 		 	r&   zwriting Info.plistr[   strc                   | j         j        | j         j        dd| j         j        d| j         j        dd| j         j        ddd}| j         j        !t          j        | j         j                  |d
<   | j         j	        | j         j
        |d<   | j         j	        |d<   | j         j        | j         j        |d<   t          t          j        |d          d          5 }t          j        ||           d	d	d	           d	S # 1 swxY w Y   d	S )zConstruct the Info.plist file.z6.0BNDLhbwrz_access.htmlsearch.helpindex3F)CFBundleDevelopmentRegionCFBundleIdentifierCFBundleInfoDictionaryVersionCFBundlePackageTypeCFBundleShortVersionStringCFBundleSignatureCFBundleVersionHPDBookAccessPathHPDBookIndexPathHPDBookTitleHPDBookTypeHPDBookUsesExternalViewerNHPDBookIconPathHPDBookKBProductHPDBookKBURLHPDBookRemoteURLz
Info.plistwb)r8   applehelp_dev_regionr9   releaseapplehelp_bundle_versionapplehelp_titleapplehelp_iconr   basenameapplehelp_kb_urlapplehelp_kb_productapplehelp_remote_urlopenr:   plistlibdump)r@   r[   
info_plistfs       r'   rU   z!AppleHelpBuilder.build_info_plist   sH    *.)I"&+"A-2#)*.+*=!'#{C!/ 2 K7).
 

 ;%1,0M$+:T,U,UJ();'3-1[-MJ)*)-)EJ~&;+7-1[-MJ)*$)L,77>> 	)!M*a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   C::C>C>r\   c                x   | j         j        r	 t          t          d                    5  t	          j        | j        | j         j                  }t          ||           ddd           dS # 1 swxY w Y   dS # t          $ r4}t          
                    t          d          ||           Y d}~dS d}~ww xY wdS )z"Copy the icon, if one is supplied.zcopying icon... Nzcannot copy icon file %r: %s)r8   ry   r   r#   r   r:   srcdirr   	Exceptionloggerwarning)r@   r\   ry   errs       r'   rV   z$AppleHelpBuilder.copy_applehelp_icon   s0   ;% 	XX%b);&<&<== C C%)Yt{DK<V%W%WN#NMBBBC C C C C C C C C C C C C C C C C C  X X Xr"@AA>SVWWWWWWWWWX	X 	Xs:   A9 5A,A9 ,A00A9 3A04A9 9
B7)B22B7zbuilding access pager]   c                    | j         j        | j        z   | j         j        d}t	          t          j        t          d          ||           dS )zBuild the access page.)toctitlez_access.html_tN)r8   
master_docr6   rx   r   r   r:   template_dir)r@   r]   rK   s      r'   rW   z"AppleHelpBuilder.build_access_page   sO     ;)DO;[0
 
 		,0@AA<QXYYYYYr&   zgenerating help indexc                   | j         j        dt          j        |d          |g}| j         j        |                    d           | j         j        |d| j         j         gz  }| j         j        |d| j         j        gz  }| j         j        |d| j         j        gz  }| j         j	        r:t          t          d          d	                    d
 |D                                 	 t          j        |t          t          d           dS # t           $ r-}t          d          |d         z  }t#          |          |d}~wt$          $ r}t#          |j                  |d}~ww xY w)zGenerate the help index.z-Cfrb   Nz-az-m-sz-lz0you will need to index this help book with:
  %s c                6    g | ]}t          j        |          S r%   shlexquote.0args     r'   
<listcomp>z4AppleHelpBuilder.build_helpindex.<locals>.<listcomp>   "    /Q/Q/QSC0@0@/Q/Q/Qr&   TstdoutstderrcheckCommand not found: %sr   )r8   applehelp_indexer_pathr   r:   applehelp_index_anchorsappendapplehelp_min_term_lengthapplehelp_stopwordsr?    applehelp_disable_external_toolsr   r#   
subprocessrunr   r   OSErrorr   r	   r   )r@   r]   argsr   rA   s        r'   rX   z AppleHelpBuilder.build_helpindex   s    K.Il$677	
 ;.:KK;0<TdkCEFFD;*6T4;:;;D;'3T4;788D;7 
	B%b)\&]&]&)hh/Q/QD/Q/Q/Q&R&RT T TBtDtLLLLLL ; ; ;011DG;,S11s:% B B B,SZ88cABs$   $"D 
E!(D::E!EE!zsigning help bookc                   | j         j        d| j         j        dg}|| j         j        z  }|                    | j                   | j         j        r:t          t          d          d	                    d |D                                 	 t          j        |t          t          d           d
S # t          $ r-}t          d          |d	         z  }t          |          |d
}~wt           $ r}t          |j                  |d
}~ww xY w)z(If we've been asked to, sign the bundle.r   z-fz/you will need to sign this help book with:
  %sr   c                6    g | ]}t          j        |          S r%   r   r   s     r'   r   z0AppleHelpBuilder.do_codesign.<locals>.<listcomp>   r   r&   Tr   r   r   N)r8   applehelp_codesign_pathrY   applehelp_codesign_flagsr   r=   r   r   r#   r:   r   r   r   r   r   r*   r	   r   )r@   r   r   rA   s       r'   rZ   zAppleHelpBuilder.do_codesign   s)    K/$+9
 	44D$%%%;7 
	F%b)[&\&\&)hh/Q/QD/Q/Q/Q&R&RT T TFtDtLLLLLL ? ? ?011DG;0553>% F F F0<<#EFs$   "B/ /
D9(C!!D.DD)r.   r/   )r[   r^   r.   r/   )r\   r^   r.   r/   )r]   r^   r.   r/   )r    r!   r"   __doc__namer#   epilog
copysourcesupported_image_typesadd_permalinksembeddedsearchr5   rE   r   rH   rI   rU   rV   rW   rX   rZ   __classcell__)rB   s   @r'   r,   r,   5   s         DR   F JI I I N H F     &8 8 8 8 8 8 bb23344L L L 54L    bb-..//) ) ) 0/)<	X 	X 	X 	X bb/0011Z Z Z 21Z bb01122B B B 32BB bb,--..F F F /.F F F F Fr&   r,   appr   r.   dict[str, Any]c                   |                      d           |                     d           |                     t                     |                     t
          t          j        t          d                     | 	                    dd d           | 	                    dd dt          g           | 	                    dd	d           | 	                    d
dd           | 	                    dd dt          g           | 	                    dd d           | 	                    dd dt          g           | 	                    dd dt          g           | 	                    dddt          g           | 	                    dd dt          g           | 	                    dd d           | 	                    dd d           | 	                    dd d           | 	                    dd d           | 	                    dd d           | 	                    ddd           | 	                    d d!d           | 	                    d"dd           t          d#d#d$S )%Nz5.0zsphinx.builders.htmllocalesr<   c                *    t          | j                  S rD   )r   projectr@   s    r'   <lambda>zsetup.<locals>.<lambda>   s    mDL&A&A r&   r-   r9   ru   zen-usrw   1ry   r|   c                >    t          | j                   d| j         S )N-)r   r   rv   r   s    r'   r   zsetup.<locals>.<lambda>   s     t|)D)D&U&Ut|&U&U r&   r{   r}   r   Fr   r   c                    | j         pdS Nenlanguager   s    r'   r   zsetup.<locals>.<lambda>  s    dm&;t r&   r?   c                    | j         pdS r   r   r   s    r'   r   zsetup.<locals>.<lambda>  s    $-:O4 r&   rx   c                    | j         dz   S )Nz Help)r   r   s    r'   r   zsetup.<locals>.<lambda>  s    9O r&   rY   c                ,    t          j        dd           S )NCODE_SIGN_IDENTITY)r   getr   s    r'   r   zsetup.<locals>.<lambda>  s    gk2F&M&M r&   r   c                P    t          j        t          j        dd                    S )NOTHER_CODE_SIGN_FLAGS )r   splitr   r   r   s    r'   r   zsetup.<locals>.<lambda>
  s    ek'+>UWY2Z2Z&[&[ r&   r   z/usr/bin/hiutilr   z/usr/bin/codesignr   T)versionparallel_read_safeparallel_write_safe)require_sphinxsetup_extensionadd_builderr,   add_message_catalogr    r   r:   package_diradd_config_valuer^   __version__)r   s    r'   setupr      s   u.///OO$%%%HdiY&G&GHHH0AA;P P P.kC5III/+FFF3S+FFF)4seDDD/UU$& & & +T;FFF/{SEJJJ2E;NNN4dK#OOO.;;[J J J+-O-OQ\]]]*,O,OQ\]]]6MM$& & & 3[[$& & & 13DkRRR24GUUU;UKPPP "#  r&   )r   r   r.   r   )8r   
__future__r   r   r   r   osr   r   pathlibr   r   r   r	   typingr
   sphinxsphinx.builders.htmlr   sphinx.errorsr   sphinx.localer   sphinx.utilr   sphinx.util.fileutilr   r   sphinx.util.matchingr   sphinx.util.osutilr   r   r   sphinx.applicationr   version_infosphinx.util.displayr   r   r   __version_info__abspathdirname__file__r   r:   r   r    r#   	getLoggerr   r   r*   r,   r   r%   r&   r'   <module>r      s     " " " " " "                     7 7 7 7 7 7 7 7 7 7              6 6 6 6 6 6 % % % % % % ) ) ) ) ) )       < < < < < < < < ( ( ( ( ( ( 7 7 7 7 7 7 7 7 *))))))	rrf$$IIIIIIIII       
  dl<4<1122tyk22_Xy))		8	$	$) ) ) ) )[ ) ) )) ) ) ) ) ) ) )wF wF wF wF wF, wF wF wFt% % % % % %r&   