
    #Yh                        U d 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mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmSZT erOddlUZUdd	lmZmVZVmWZW eUjX        d
k    rddlmYZY nddlZmYZY eUjX        dk    rddlm[Z[ nddlZm[Z[ ddl\m]Z]  e[d          Z^g dZ_d)dZ`d*dZaeTjb        ZbeTjc        ZceTjd        Zddeed<   	 deed<   	 d+dZfe
d,d!            Zge
d-d#            Zgd.d%Zgd/d(ZhdS )0z)Customizing chart configuration defaults.    )annotations)wraps)TYPE_CHECKINGAny)overload)FAreaConfigKwdsAutoSizeParamsKwdsAxisConfigKwdsAxisResolveMapKwdsBarConfigKwdsBindCheckboxKwdsBindDirectKwdsBindInputKwdsBindRadioSelectKwdsBindRangeKwdsBoxPlotConfigKwdsBrushConfigKwdsCompositionConfigKwds
ConfigKwdsDateTimeKwdsDerivedStreamKwdsErrorBandConfigKwdsErrorBarConfigKwds$FeatureGeometryGeoJsonPropertiesKwdsFormatConfigKwdsGeoJsonFeatureCollectionKwdsGeoJsonFeatureKwdsGeometryCollectionKwdsGradientStopKwdsHeaderConfigKwdsIntervalSelectionConfigKwds&IntervalSelectionConfigWithoutTypeKwdsLegendConfigKwdsLegendResolveMapKwdsLegendStreamBindingKwdsLinearGradientKwdsLineConfigKwdsLineStringKwds
LocaleKwdsMarkConfigKwdsMergedStreamKwdsMultiLineStringKwdsMultiPointKwdsMultiPolygonKwdsNumberLocaleKwdsOverlayMarkDefKwdsPaddingKwds	PointKwdsPointSelectionConfigKwds#PointSelectionConfigWithoutTypeKwdsPolygonKwdsProjectionConfigKwdsProjectionKwdsRadialGradientKwdsRangeConfigKwdsRectConfigKwdsResolveKwds
RowColKwdsScaleConfigKwdsScaleInvalidDataConfigKwdsScaleResolveMapKwdsSelectionConfigKwdsStepKwdsStyleConfigIndexKwdsThemeConfigTickConfigKwdsTimeIntervalStepKwdsTimeLocaleKwdsTitleConfigKwdsTitleParamsKwdsTooltipContentKwdsTopLevelSelectionParameterKwdsVariableParameterKwdsViewBackgroundKwdsViewConfigKwds)themesN)r   CallableLiteral)      )LiteralString)rQ   
   )	ParamSpec)PluginP)Mr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r'   r(   r&   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   activeenablegetnamesoptionsregister
unregisternamerS   rY   boolreturn4Callable[[Plugin[ThemeConfig]], Plugin[ThemeConfig]]c                    d fd}|S )a=  
    Decorator for registering a theme function.

    Parameters
    ----------
    name
        Unique name assigned in registry.
    enable
        Auto-enable the wrapped theme.

    Examples
    --------
    Register and enable a theme::

        import altair as alt
        from altair import theme


        @theme.register("param_font_size", enable=True)
        def custom_theme() -> theme.ThemeConfig:
            sizes = 12, 14, 16, 18, 20
            return {
                "autosize": {"contains": "content", "resize": True},
                "background": "#F3F2F1",
                "config": {
                    "axisX": {"labelFontSize": sizes[1], "titleFontSize": sizes[1]},
                    "axisY": {"labelFontSize": sizes[1], "titleFontSize": sizes[1]},
                    "font": "'Lato', 'Segoe UI', Tahoma, Verdana, sans-serif",
                    "headerColumn": {"labelFontSize": sizes[1]},
                    "headerFacet": {"labelFontSize": sizes[1]},
                    "headerRow": {"labelFontSize": sizes[1]},
                    "legend": {"labelFontSize": sizes[0], "titleFontSize": sizes[1]},
                    "text": {"fontSize": sizes[0]},
                    "title": {"fontSize": sizes[-1]},
                },
                "height": {"step": 28},
                "width": 350,
            }

    We can then see the ``name`` parameter displayed when checking::

        theme.active
        "param_font_size"

    Until another theme has been enabled, all charts will use defaults set in ``custom_theme()``::

        from vega_datasets import data

        source = data.stocks()
        lines = (
            alt.Chart(source, title=alt.Title("Stocks"))
            .mark_line()
            .encode(x="date:T", y="price:Q", color="symbol:N")
        )
        lines.interactive(bind_y=False)

    funcPlugin[ThemeConfig]ra   c                    t                      rt          j                   t                     d fd            }|S )	NargsP.argskwargsP.kwargsra   rC   c                      | i |S N )rg   ri   rd   s     TD:\DownLoads\facial_attendance_system-main\venv311\Lib\site-packages\altair/theme.pywrapperz+register.<locals>.decorate.<locals>.wrapper   s    4((((    )rg   rh   ri   rj   ra   rC   )	_register_themesrY   _wraps)rd   ro   rY   r_   s   ` rn   decoratezregister.<locals>.decorate   sa    $ 	!N4   		) 	) 	) 	) 	) 
	) rp   )rd   re   ra   re   rm   )r_   rY   rt   s   `` rn   r]   r]      s/    ~	 	 	 	 	 	 	 Orp   re   c                p    t          | d          }|#d| dt                      }t          |          |S )z
    Remove and return a previously registered theme.

    Parameters
    ----------
    name
        Unique name assigned during ``alt.theme.register``.

    Raises
    ------
    TypeError
        When ``name`` has not been registered.
    NzFound no theme named z! in registry.
Registered themes:
)rq   r[   	TypeError)r_   pluginmsgs      rn   r^   r^     sR     tT""F~D  ww  	
 nnrp   strrX   dict[str, Any]r\   	list[str]c                     t           S rl   )__all__rm   rp   rn   __dir__r~   %  s    Nrp   Literal['active']c                    d S rl   rm   r_   s    rn   __getattr__r   )  s    14rp   Literal['options']c                    d S rl   rm   r   s    rn   r   r   +  s    =@Srp   r   c                    | dk    rt           j        S | dk    rt           j        S dt          d| }t	          |          )NrX   r\   zmodule z has no attribute )rr   rX   r\   __name__AttributeError)r_   rx   s     rn   r   r   -  sK    x~			>>>d>>S!!!rp   fnPlugin[ThemeConfig] | Nonec                   | t           j                            | d           S t          j        |          r|t           j        | <   |S t	          |          j        d|}t          |          )Nz is not a callable theme

)rr   _pluginspopplugin_typetyper   rv   )r_   r   rx   s      rn   rq   rq   7  so     
z##D$///		R	 	  !#	b"HH"HHnnrp   )r_   rS   rY   r`   ra   rb   )r_   rS   ra   re   )ra   r{   )r_   r   ra   ry   )r_   r   ra   rz   )r_   ry   ra   r   )r_   rS   r   r   ra   r   )i__doc__
__future__r   	functoolsr   rs   typingr   r   r   	_overload!altair.vegalite.v5.schema._configr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   altair.vegalite.v5.themerN   rr   sysrO   rP   version_inforS   typing_extensionsrU   altair.utils.plugin_registryrV   rW   r}   r]   r^   rY   rZ   r[   __annotations__r~   r   rq   rm   rp   rn   <module>r      sq   / / / " " " " " " % % % % % % % % % % % % % % ( ( ( ( ( (G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G GP 7 6 6 6 6 6 JJJ----------
7""(((((((333333
7""$$$$$$$//////333333	#AN N NbJ J J JZ   4 
k  4     3     4 4 4  4
 @ @ @  @" " " "
 
 
 
 
 
rp   