o
    h                     @  s  U d Z ddlmZ ddlmZmZ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 ergddlZdd	lmZ ejd
krIddlmZ nddlmZ ejdkr[ddlmZ nddlmZ ddlmZ ed Zded< eeeZded< G dd deee ef ZG dd dZdZ ded< ee dZ!e!"ddd  e!"dd d  e!"d!e eD ]
Z#e!"e#ee# qe!$d dS )"z0Tools for enabling and registering chart themes.    )annotations)TYPE_CHECKINGAnyFinalLiteralget_args)deprecated_static_only)PluginPluginRegistry)ThemeConfig)
VegaThemesN)partial)      )LiteralString)r   
   )	TypeAlias)PluginEnabler)defaultopaquer   AltairThemeszlist[LiteralString]VEGA_THEMESc                      sX   e Zd Z	dd fdd	Zd fddZd fddZedddd fddZ  ZS )ThemeRegistryNname0LiteralString | AltairThemes | VegaThemes | Noneoptionsr   return/PluginEnabler[Plugin[ThemeConfig], ThemeConfig]c                   s   t  j|fi |S )a  
        Enable a theme by name.

        This can be either called directly, or used as a context manager.

        Parameters
        ----------
        name : string (optional)
            The name of the theme to enable. If not specified, then use the
            current active name.
        **options :
            Any additional parameters will be passed to the theme as keyword
            arguments

        Returns
        -------
        PluginEnabler:
            An object that allows enable() to be used as a context manager

        Notes
        -----
        Default `vega` themes can be previewed at https://vega.github.io/vega-themes/
        )superenable)selfr   r   	__class__ L/var/www/vscode/kcb/lib/python3.10/site-packages/altair/vegalite/v5/theme.pyr   #   s   zThemeRegistry.enable1partial[ThemeConfig] | Plugin[ThemeConfig] | Nonec                   
   t   S )z"Return the currently active theme.)r   getr    r!   r#   r$   r'   A      
zThemeRegistry.get	list[str]c                   r&   )z;Return the names of the registered and entry points themes.)r   namesr(   r!   r#   r$   r+   E   r)   zThemeRegistry.nameszDDeprecated since `altair=5.5.0`. Use @altair.theme.register instead.)categorystrvaluePlugin[ThemeConfig] | Nonec                   s   t  ||S N)r   register)r    r   r.   r!   r#   r$   r1   I   s   zThemeRegistry.registerr0   )r   r   r   r   r   r   )r   r%   )r   r*   )r   r-   r.   r/   r   r/   )	__name__
__module____qualname__r   r'   r+   r   r1   __classcell__r#   r#   r!   r$   r   "   s    r   c                   @  s.   e Zd ZdZdddZdd	d
ZdddZdS )	VegaThemez'Implementation of a builtin vega theme.themer-   r   Nonec                 C  s
   || _ d S r0   r7   )r    r7   r#   r#   r$   __init__V   s   
zVegaTheme.__init__r   c                 C  s   dd| j iiddddidS )NembedOptionsr7   view,  continuousWidthcontinuousHeight)usermetaconfigr9   r(   r#   r#   r$   __call__Y   s   zVegaTheme.__call__c                 C  s   d| j dS )Nz
VegaTheme()r9   r(   r#   r#   r$   __repr___   s   zVegaTheme.__repr__N)r7   r-   r   r8   )r   r   )r   r-   )r2   r3   r4   __doc__r:   rC   rE   r#   r#   r#   r$   r6   S   s
    

r6   zaltair.vegalite.v5.themer   ENTRY_POINT_GROUP)entry_point_groupr   c                   C  s   dddddiiS )NrB   r<   r=   r>   r#   r#   r#   r#   r$   <lambda>m   s    rI   r   c                   C  s   ddddddiS )NrB   whiter=   r>   )
backgroundr<   r#   r#   r#   r#   r$   rI   q   s
   none)%rF   
__future__r   typingr   r   r   r   r   altair.utils.deprecationr   altair.utils.plugin_registryr	   r
   !altair.vegalite.v5.schema._configr   !altair.vegalite.v5.schema._typingr   sys	functoolsr   version_infor   typing_extensionsr   r   r   __annotations__listr   r   r6   rG   themesr1   r7   r   r#   r#   r#   r$   <module>   sF    

1
	