HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sphinx/builders/latex/__pycache__/theming.cpython-310.pyc
o

�$�a$�@s�dZddlZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
dd	lmZe�e�ZGd
d�d�ZGdd
�d
e�ZGdd�de�ZGdd�d�ZdS)z�
    sphinx.builders.latex.theming
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Theming support for LaTeX builder.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�path)�Dict)�Sphinx)�Config)�
ThemeError)�__)�loggingc@sDeZdZdZddgZddgZdeddfdd�Zd	eddfd
d�Z	dS)�ThemezA set of LaTeX configurations.�	papersize�	pointsize�name�returnNcCs(||_||_||_d|_d|_d|_dS)N�letterpaper�10pt�chapter)r�docclass�wrapperclassr
r�toplevel_sectioning)�selfr�r�?/usr/lib/python3/dist-packages/sphinx/builders/latex/theming.py�__init__s
zTheme.__init__�configcCs^|jD]}|j�|�r|j|}t|||�q|jD]}||jvr,|j|}t|||�qdS)z0Override theme settings by user's configuration.N)�LATEX_ELEMENTS_KEYS�latex_elements�get�setattr�UPDATABLE_KEYS�latex_theme_options)rr�key�valuerrr�update&s

�


��zTheme.update)
�__name__�
__module__�__qualname__�__doc__rr�strrrr!rrrrr	sr	cs.eZdZdZdededdf�fdd�Z�ZS)�BuiltInThemezA built-in LaTeX theme.rrr
Ncsxt��|�|dkr|j�dd�|_n|j�dd�|_|dvr%d||_n||_|dkr7|j�d�s7d|_dSd	|_dS)
N�howto�article�manual�report)r*r(�sphinx�j�sectionr)�superr�latex_docclassrrr�
startswithr)rrr��	__class__rrr6s

zBuiltInTheme.__init__)r"r#r$r%r&rr�
__classcell__rrr2rr'3s"r'cs>eZdZdZddgZgd�Zdededdf�fd	d
�Z�ZS)�	UserThemezA user defined LaTeX theme.rr)r
rrr�filenamer
Ncs�t��|�t��|_|j�t�|��|jD]A}z|j�	d|�}t
|||�Wqtjy>}z	tt
d�|�|�d}~wtjyX}ztt
d�||jdf�|�d}~ww|jD]}z|j�	d|�}t
|||�Wq\tjywYq\wdS)N�themez%r doesn't have "theme" settingz%r doesn't have "%s" settingr)r/r�configparser�RawConfigParserr�readr�join�REQUIRED_CONFIG_KEYSrr�NoSectionErrorrr�
NoOptionError�args�OPTIONAL_CONFIG_KEYS)rrr6rr �excr2rrrQs<

�������
��zUserTheme.__init__)	r"r#r$r%r<r@r&rr4rrr2rr5Ks
"r5c@sXeZdZdZdeddfdd�Zdeddfdd	�Zd
ede	fdd�Z
d
ede	fd
d�ZdS)�ThemeFactoryz!A factory class for LaTeX Themes.�appr
Ncs6i|_�fdd��jjD�|_�j|_|��j�dS)Ncsg|]	}t��j|��qSr)rr;�srcdir)�.0�p�rCrr�
<listcomp>nsz)ThemeFactory.__init__.<locals>.<listcomp>)�themesr�latex_theme_path�theme_paths�load_builtin_themes)rrCrrGrrlszThemeFactory.__init__rcCs$td|�|jd<td|�|jd<dS)zLoad built-in themes.r*r(N)r'rI)rrrrrrLrsz ThemeFactory.load_builtin_themesrcCs<||jvr|j|}n|�|�}|st|�}|�|j�|S)zGet a theme for given *name*.)rI�find_user_themer	r!r)rrr7rrrrws

zThemeFactory.getcCsh|jD].}t�||d�}t�|�r1zt||�WSty0}zt�|�WYd}~qd}~wwqdS)z3Find a theme named as *name* from latex_theme_path.z
theme.confN)rKrr;�isfiler5r�logger�warning)rr�
theme_path�config_pathrArrrrM�s

���zThemeFactory.find_user_theme)r"r#r$r%rrrrLr&r	rrMrrrrrBisrB)r%r8�osr�typingr�sphinx.applicationr�
sphinx.configr�
sphinx.errorsr�
sphinx.localer�sphinx.utilr�	getLoggerr"rOr	r'r5rBrrrr�<module>s