JAMESPARK3's picture
Upload folder using huggingface_hub
1380717 verified
raw
history blame
1.4 kB
"""Utilities for registering and working with themes."""
from __future__ import annotations
import sys
from typing import TYPE_CHECKING, Callable
from .plugin_registry import PluginRegistry
if sys.version_info >= (3, 11):
from typing import LiteralString
else:
from typing_extensions import LiteralString
if TYPE_CHECKING:
from altair.utils.plugin_registry import PluginEnabler
from altair.vegalite.v5.theme import AltairThemes, VegaThemes
ThemeType = Callable[..., dict]
class ThemeRegistry(PluginRegistry[ThemeType, dict]):
def enable(
self, name: LiteralString | AltairThemes | VegaThemes | None = None, **options
) -> PluginEnabler:
"""
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/
"""
return super().enable(name, **options)