L i UdZddlmZddlmZddlmZmZddlm Z ddl m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQddlRmSZTerTddlUZUdd lmZmVZVmWZWeUjd k\rdd lmYZYndd lZmYZYeUjd k\rdd lm[Z[ndd lZm[Z[ddl\m]Z]e[dZ^gdZ_ ddZ`ddZaeTjZbeTjZceTjZddeed< deed< ddZfe ddZge d dZgd!dZg d"dZhy)#z)Customizing chart configuration defaults.) annotations)wraps) TYPE_CHECKINGAny)overload)FAreaConfigKwdsAutoSizeParamsKwdsAxisConfigKwdsAxisResolveMapKwds BarConfigKwdsBindCheckboxKwdsBindDirectKwds BindInputKwdsBindRadioSelectKwds BindRangeKwdsBoxPlotConfigKwdsBrushConfigKwdsCompositionConfigKwds ConfigKwds DateTimeKwdsDerivedStreamKwdsErrorBandConfigKwdsErrorBarConfigKwds$FeatureGeometryGeoJsonPropertiesKwdsFormatConfigKwdsGeoJsonFeatureCollectionKwdsGeoJsonFeatureKwdsGeometryCollectionKwdsGradientStopKwdsHeaderConfigKwdsIntervalSelectionConfigKwds&IntervalSelectionConfigWithoutTypeKwdsLegendConfigKwdsLegendResolveMapKwdsLegendStreamBindingKwdsLinearGradientKwdsLineConfigKwdsLineStringKwds LocaleKwdsMarkConfigKwdsMergedStreamKwdsMultiLineStringKwdsMultiPointKwdsMultiPolygonKwdsNumberLocaleKwdsOverlayMarkDefKwds PaddingKwds PointKwdsPointSelectionConfigKwds#PointSelectionConfigWithoutTypeKwds PolygonKwdsProjectionConfigKwdsProjectionKwdsRadialGradientKwdsRangeConfigKwdsRectConfigKwds ResolveKwds RowColKwdsScaleConfigKwdsScaleInvalidDataConfigKwdsScaleResolveMapKwdsSelectionConfigKwdsStepKwdsStyleConfigIndexKwds ThemeConfigTickConfigKwdsTimeIntervalStepKwdsTimeLocaleKwdsTitleConfigKwdsTitleParamsKwdsTooltipContentKwdsTopLevelSelectionParameterKwdsVariableParameterKwdsViewBackgroundKwdsViewConfigKwds)themesN)rCallableLiteral) ) LiteralString)rQ ) ParamSpec)PluginP)Mrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r'r(r&r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMactiveenablegetnamesoptionsregister unregistercdfd }|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) cxtrtjtdfd }|S)Nc|i|SN)argskwargsfuncs R/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/altair/theme.pywrapperz+register..decorate..wrappers(( ()rdzP.argsrezP.kwargsreturnrC) _register_themesrY_wraps)rfrhrYnames` rgdecoratezregister..decorates9$  NN4  )  )ri)rfPlugin[ThemeConfig]rjrprc)rnrYros`` rgr]r]s~  OricXt|d}|d|dt}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. NzFound no theme named z! in registry. Registered themes: )rkr[ TypeError)rnpluginmsgs rgr^r^sCtT "F ~#D8,#wk  n ristrrXdict[str, Any]r\ctSrb)__all__rcrirg__dir__ry%s Nricyrbrcrns rg __getattr__r|)s14ricyrbrcr{s rgr|r|+s=@ric|dk(rtjS|dk(rtjSdtd|}t |)NrXr\zmodule z has no attribute )rlrXr\__name__AttributeError)rnrts rgr|r|-sD x~~  |#5dX>S!!ric| tjj|dStj|r|tj|<|St |j d|}t |)Nz is not a callable theme )rl_pluginspop plugin_typetyperrr)rnfnrts rgrkrk7sk z##D$//   R !# b""%%A"Hnri)rnrSrYboolrjz4Callable[[Plugin[ThemeConfig]], Plugin[ThemeConfig]])rnrSrjrp)rjz list[str])rnzLiteral['active']rjru)rnzLiteral['options']rjrv)rnrurjr)rnrSrPlugin[ThemeConfig] | Nonerjr)i__doc__ __future__r functoolsrrmtypingrrr _overload!altair.vegalite.v5.schema._configrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMaltair.vegalite.v5.themerNrlsysrOrP version_inforStyping_extensionsrUaltair.utils.plugin_registryrVrWrxr]r^rYrZr[__annotations__ryr|rkrcrirgrsi/"%%(GGGGGGGGGGGGGGGGGGP7-- 7"(3 7"$/3#AN bJ J$(J9JZ4  kk  4 3 4 4 @ @"   7  ri