pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
py-altair: Update to 5.3.0
Module Name: pkgsrc-wip
Committed By: Matthew Danielson <matthewd%fastmail.us@localhost>
Pushed By: matthewd
Date: Fri Jun 21 12:38:51 2024 -0600
Changeset: 4268f94ecf8890ccd51d571ed4753ce9159f6202
Modified Files:
py-altair/Makefile
py-altair/PLIST
py-altair/distinfo
Log Message:
py-altair: Update to 5.3.0
Version 5.3
The Vega Project is happy to announce the release of version 5.3.0 of the Vega-Altair Python visualization library. This release has been 4 months in the making and includes enhancements, fixes, and documentation improvements from 11 contributors.
What's Changed
Update Vega-Lite from version 5.16.3 to version 5.17.0; see Vega-Lite Release Notes
Enhancements
Add integration of VegaFusion and JupyterChart to enable scaling many interactive Vega-Altair charts to millions of rows. See VegaFusion Data Transformer for more information. Here is an example of histogram cross filtering with a 1 million row dataset.
vegafusion_widget.mov
Add "browser" renderer to support displaying Vega-Altair charts in an external web browser. See Browser Renderer for more information (#3379).
browser_renderer.mov
Support opening charts in the Vega editor with chart.open_editor() (#3358)
open_editor.mov
Add "jupyter" renderer which uses JupyterChart for rendering (#3283). See Displaying Altair Charts for more information.
Add embed_options argument to JupyterChart to allow customization of Vega Embed options (#3304)
Add offline support for JupyterChart and the new "jupyter" renderer. See JupyterChart - Offline Usage for more information.
Add a new section to documentation on dashboards which have support for Altair (#3299)
Support restrictive FIPS-compliant environment (#3291)
Simplify type-hints to improve the readability of the function signature and docstring (#3307)
Support installation of all optional dependencies via python -m pip install altair[all] and conda install altair-all -c conda-forge (#3354)
Add privacy friendly web-analytics for the documentation (#3350)
Additional gallery examples and documentation clarifications (#3233, #3266, #3276, #3282, #3298, #3299, #3323, #3334, #3324, #3340, #3350, #3353, #3357, #3362, #3363), including the following:
Histogram with Gradient Color
image
Multi-Line Tooltip (Standard)
image
Interactive column selection
altair-ex-2024-03-12_10.16.49.mp4
Bug Fixes
Fix error when embed_options are None (#3376)
Fix type hints for libraries such as Polars where Altair uses the dataframe interchange protocol (#3297)
Fix anywidget deprecation warning (#3364)
Fix handling of Date32 columns in arrow tables and Polars DataFrames (#3377)
Backward-Incompatible Changes
Changed hash function from md5 to a truncated sha256 non-cryptograhic hash (#3291)
Updated chart.show() method to invoke the active renderer rather than depend on altair_saver (Which was never updated for use with Altair 5) (#3379).
New Contributors
@franzhaas made their first contribution in #3278
@ccravens made their first contribution in #3291
@thomascamminady made their first contribution in #3323
@d-trigo made their first contribution in #3350
@RobinL made their first contribution in #3383
Version 5.2.0
What's Changed
Update Vega-Lite from version 5.15.1 to version 5.16.3; see Vega-Lite Release Notes.
Enhancements
Support offline HTML export using vl-convert (#3251)
You now can use:
chart.save('chart.html', inline=True)
To create an HTML file with inline JavaScript dependencies. This enhancements takes advantage of HTML bundling support in vl-convert to replace the dependency on altair_viewer. Vega-Altair 5.2.0 expects vl-convert-python version 1.1.0 or higher for this enhancement.
Support saving charts as PDF files using the vl-convert export engine (#3244)
You now can use:
chart.save('chart.pdf')
To create an PDF representation of your chart. This enhancements takes advantage of PDF support in vl-convert to replace the dependency on altair_saver. Vega-Altair 5.2.0 expects vl-convert-python version 1.1.0 or higher for this enhancement.
Support converting charts to sharable Vega editor URLs with chart.to_url() (#3252)
You now can use:
chart.to_url()
To generate a Vega editor URL that opens the chart's specification in the online Vega editor. This enhancements takes advantage of lz-string URL-compatible compression in vl-convert. Vega-Altair 5.2.0 expects vl-convert-python version 1.1.0 or higher for this enhancement.
Example:
import altair as alt
from vega_datasets import data
chart = alt.Chart(data.cars.url).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color='Origin:N'
)
print(chart.to_url())
https://vega.github.io/editor/#/url/vega-lite/N4Igxg9gdgZglgcxALlANzgUwO4tJKAFzigFcJSBnAdTgBNCALFAZgAY2AacaYsiygAlMiRoVYcAvpO50AhoTl4QpAE4AbFCDGEADpWQB6Q2DpQAdACtKdTOrhpV5qJkKGougLaG0mBHIBaeUVKV0oAATQARnMAJgBOczZDYLkTOVVKK0poEBkQTwyAa2VCAE9dTC1dCBJxfMwoSDoSJFQedQhVZXg7Oi0AeVVEEhBucsqtKAhPEjlNfIAPHqx1fuQQQS7QmuxMbvGKqo2AR1I5IjhFYl887jKVvq0AWTh1TEoAfUrVT4BxeadKBjEATY4gM4XYjXBxVaTcAAklDAjEwhS0On0Rh8fjk5gQV0YpAARuY4BBDMjUYUcf4AvZCJgfABWcxRABs5hY2VykiAA
Pass format_locale and time_format_locale through to vl-convert to support locales in static image export (#3274)
The preferred format of numbers, dates, and currencies varies by language and locale. Vega-Altair takes advantage of D3’s localization support to make it easy to configure the locale for your chart using the global alt.renderers.set_embed_options function. Vega-Altair 5.2.0 expects vl-convert-python version 1.1.0 or higher for this enhancement.
See https://altair-viz.github.io/user_guide/customization.html#localization for more info (including the note with a caveat!).
Vega-Altair is now a typed package, with type annotations for all public functions and classes and some of the internal code
See #2951 for a full summary how we have implemented these. Type hints can help IDEs to provide a better development experience as well as static type checkers to catch potential errors before they appear at runtime.
Maintenance
Vega-Altair now uses ruff for maintaining code quality & consistency (#3243)
Vega-Altair is tested against Python 3.12 (#3235)
Bug Fixes
None
Backward-Incompatible Changes
None
Version 5.1.2
What's changed
Update Vega-Lite from version 5.14.1 to version 5.15.1; see Vega-Lite Release Notes.
Use Facet/Trellis/Repeat consistently in the documentation by @NickCrews in #3180
Add tutorial on numpy tooltip images by @joelostblom #3202
recording-2024-04-08_20.15.42.mp4
Bug Fixes
Remove usage of deprecated Pandas parameter convert_dtypes by @binste in #3191
Fix encoding type inference for boolean columns when pyarrow is installed by @jonmmease in #3210
Full Changelog: v5.1.1...v5.1.2
Version 5.1.1
What's Changed
Fix doctest and run doctests in altair module by @jonmmease in #3175
infer dtype pandas fallback by @jonmmease in #3179
Full Changelog: v5.1.0...v5.1.1
Version 5.1.0
What's Changed
Update Vega-Lite from version 5.8.0 to version 5.14.1; see Vega-Lite Release Notes.
Enhancements
The chart.transformed_data() method was added to extract transformed chart data
For example when having an Altair chart including aggregations:
import altair as alt
from vega_datasets import data
cars = data.cars.url
chart = alt.Chart(cars).mark_bar().encode(
y='Cylinders:O',
x='mean_acc:Q'
).transform_aggregate(
mean_acc='mean(Acceleration)',
groupby=["Cylinders"]
)
chart
image
Its now possible to call the chart.transformed_data method to extract a pandas DataFrame containing the transformed data.
chart.transformed_data()
image
This method is dependent on VegaFusion with the embed extras enabled.
Introduction of a new data transformer named vegafusion
VegaFusion is an external project that provides efficient Rust implementations of most of Altair's data transformations. Using VegaFusion as Data Transformer it can overcome the Altair MaxRowsError by performing data-intensive aggregations in Python and pruning unused columns from the source dataset.
The data transformer can be enabled as such:
import altair as alt
alt.data_transformers.enable("vegafusion") # default is "default"
DataTransformerRegistry.enable('vegafusion')
And one can now visualize a very large DataFrame as histogram where the binning is done within VegaFusion:
import pandas as pd
import altair as alt
# prepare dataframe with 1 million rows
flights = pd.read_parquet(
"https://vegafusion-datasets.s3.amazonaws.com/vega/flights_1m.parquet"
)
delay_hist = alt.Chart(flights).mark_bar(tooltip=True).encode(
alt.X("delay", bin=alt.Bin(maxbins=30)),
alt.Y("count()")
)
delay_hist
image
When the vegafusion data transformer is active, data transformations will be pre-evaluated when displaying, saving and converting charts as dictionary or JSON.
See a detailed overview on the VegaFusion Data Transformer in the documentation.
A JupyterChart class was added to support accessing params and selections from Python
The JupyterChart class makes it possible to update charts after they have been displayed and access the state of interactions from Python.
For example when having an Altair chart including a selection interval as brush:
import altair as alt
from vega_datasets import data
source = data.cars()
brush = alt.selection_interval(name="interval", value={"x": [80, 160], "y": [15, 30]})
chart = alt.Chart(source).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color=alt.condition(brush, 'Cylinders:O', alt.value('grey')),
).add_params(brush)
jchart = alt.JupyterChart(chart)
jchart
image
It is now possible to return the defined interval selection within Python using the JupyterChart
jchart.selections.interval.value
{'Horsepower': [80, 160], 'Miles_per_Gallon': [15, 30]}
The selection dictionary may be converted into a pandas query to filter the source DataFrame:
filter = " and ".join([
f"{v[0]} <= `{k}` <= {v[1]}"
for k, v in jchart.selections.interval.value.items()
])
source.query(filter)
image
Another possibility of the new JupyerChart class is to use IPyWidgets to control parameters in Altair. Here we use an ipywidget IntSlider to control the Altair parameter named cutoff.
import pandas as pd
import numpy as np
from ipywidgets import IntSlider, link, VBox
rand = np.random.RandomState(42)
df = pd.DataFrame({
'xval': range(100),
'yval': rand.randn(100).cumsum()
})
cutoff = alt.param(name="cutoff", value=23)
chart = alt.Chart(df).mark_point().encode(
x='xval',
y='yval',
color=alt.condition(
alt.datum.xval < cutoff,
alt.value('red'), alt.value('blue')
)
).add_params(
cutoff
)
jchart = alt.JupyterChart(chart)
slider = IntSlider(min=0, max=100, description='ipywidget')
link((slider, "value"), (jchart.params, "cutoff"))
VBox([slider, jchart])
image
The JupyterChart class is dependent on AnyWidget. See a detailed overview in the new documentation page on JupyterChart Interactivity.
Support for field encoding inference for objects that support the DataFrame Interchange Protocol
We are maturing support for objects build upon the DataFrame Interchange Protocol in Altair.
Given the following pandas DataFrame with an ordered categorical column-type:
import altair as alt
from vega_datasets import data
# Clean Title column
movies = data.movies()
movies["Title"] = movies["Title"].astype(str)
# Convert MPAA rating to an ordered categorical
rating = movies["MPAA_Rating"].astype("category")
rating = rating.cat.reorder_categories(
['Open', 'G', 'PG', 'PG-13', 'R', 'NC-17', 'Not Rated']
).cat.as_ordered()
movies["MPAA_Rating"] = rating
# Build chart using pandas
chart = alt.Chart(movies).mark_bar().encode(
alt.X("MPAA_Rating"),
alt.Y("count()")
)
chart
image
We can convert the DataFrame to a PyArrow Table and observe that the types are now equally infered when rendering the chart.
import pyarrow as pa
# Build chart using PyArrow
chart = alt.Chart(pa.Table.from_pandas(movies)).mark_bar().encode(
alt.X("MPAA_Rating"),
alt.Y("count()")
)
chart
image
Vega-Altair support of the DataFrame Interchange Protocol is dependent on PyArrow.
A new transform method transform_extent is available
See the following example how this transform can be used:
import pandas as pd
import altair as alt
df = pd.DataFrame(
[
{"a": "A", "b": 28},
{"a": "B", "b": 55},
{"a": "C", "b": 43},
{"a": "D", "b": 91},
{"a": "E", "b": 81},
{"a": "F", "b": 53},
{"a": "G", "b": 19},
{"a": "H", "b": 87},
{"a": "I", "b": 52},
]
)
base = alt.Chart(df, title="A Simple Bar Chart with Lines at Extents").transform_extent(
extent="b", param="b_extent"
)
bars = base.mark_bar().encode(x="b", y="a")
lower_extent_rule = base.mark_rule(stroke="firebrick").encode(
x=alt.value(alt.expr("scale('x', b_extent[0])"))
)
upper_extent_rule = base.mark_rule(stroke="firebrick").encode(
x=alt.value(alt.expr("scale('x', b_extent[1])"))
)
bars + lower_extent_rule + upper_extent_rule
image
It is now possible to add configurable pixels-per-inch (ppi) metadata to saved and displayed PNG images
import altair as alt
from vega_datasets import data
source = data.cars()
chart = alt.Chart(source).mark_boxplot(extent="min-max").encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Origin:N"),
)
chart.save("box.png", ppi=300)
image
alt.renderers.enable("png", ppi=144) # default ppi is 72
chart
image
Bug Fixes
Don't call len on DataFrame Interchange Protocol objects (#3111)
Maintenance
Add support for new referencing logic in version 4.18 of the jsonschema package
Backward-Incompatible Changes
Drop support for Python 3.7 which is end-of-life (#3100)
Hard dependencies: Increase minimum required pandas version to 0.25 (#3130)
Soft dependencies: Increase minimum required vl-convert-python version to 0.13.0 and increase minimum required vegafusion version to 1.4.0 (#3163, #3160)
New Contributors
@thomend made their first contribution in #3086
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=4268f94ecf8890ccd51d571ed4753ce9159f6202
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
py-altair/Makefile | 3 ++-
py-altair/PLIST | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++---
py-altair/distinfo | 6 ++---
3 files changed, 71 insertions(+), 7 deletions(-)
diffs:
diff --git a/py-altair/Makefile b/py-altair/Makefile
index 9c24dc383e..d761bc406f 100644
--- a/py-altair/Makefile
+++ b/py-altair/Makefile
@@ -1,6 +1,6 @@
# $NetBSD$
-DISTNAME= altair-5.0.1
+DISTNAME= altair-5.3.0
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= graphics python
MASTER_SITES= ${MASTER_SITE_PYPI:=a/altair/}
@@ -12,6 +12,7 @@ LICENSE= 2-clause-bsd
TOOL_DEPENDS+= ${PYPKGPREFIX}-black>=20.8:../../textproc/py-black
TOOL_DEPENDS+= ${PYPKGPREFIX}-docutils>=0.16:../../textproc/py-docutils
+TOOL_DEPENDS+= ${PYPKGPREFIX}-hatchling>=1.24.2:../../devel/py-hatchling
TOOL_DEPENDS+= ${PYPKGPREFIX}-ipython>=0:../../devel/py-ipython
TOOL_DEPENDS+= ${PYPKGPREFIX}-flake8>=3.3.0:../../devel/py-flake8
TOOL_DEPENDS+= ${PYPKGPREFIX}-typing-extensions>=4.0.1:../../devel/py-typing-extensions
diff --git a/py-altair/PLIST b/py-altair/PLIST
index 9cdfcb5216..95d5c7bb44 100644
--- a/py-altair/PLIST
+++ b/py-altair/PLIST
@@ -1,75 +1,138 @@
@comment $NetBSD$
-${PYSITELIB}/${WHEEL_INFODIR}/INSTALLER
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
-${PYSITELIB}/${WHEEL_INFODIR}/REQUESTED
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
-${PYSITELIB}/${WHEEL_INFODIR}/direct_url.json
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/altair/__init__.py
${PYSITELIB}/altair/__init__.pyc
+${PYSITELIB}/altair/__init__.pyo
${PYSITELIB}/altair/_magics.py
${PYSITELIB}/altair/_magics.pyc
+${PYSITELIB}/altair/_magics.pyo
${PYSITELIB}/altair/expr/__init__.py
${PYSITELIB}/altair/expr/__init__.pyc
+${PYSITELIB}/altair/expr/__init__.pyo
${PYSITELIB}/altair/expr/consts.py
${PYSITELIB}/altair/expr/consts.pyc
+${PYSITELIB}/altair/expr/consts.pyo
${PYSITELIB}/altair/expr/core.py
${PYSITELIB}/altair/expr/core.pyc
+${PYSITELIB}/altair/expr/core.pyo
${PYSITELIB}/altair/expr/funcs.py
${PYSITELIB}/altair/expr/funcs.pyc
+${PYSITELIB}/altair/expr/funcs.pyo
+${PYSITELIB}/altair/jupyter/__init__.py
+${PYSITELIB}/altair/jupyter/__init__.pyc
+${PYSITELIB}/altair/jupyter/__init__.pyo
+${PYSITELIB}/altair/jupyter/js/README.md
+${PYSITELIB}/altair/jupyter/js/index.js
+${PYSITELIB}/altair/jupyter/jupyter_chart.py
+${PYSITELIB}/altair/jupyter/jupyter_chart.pyc
+${PYSITELIB}/altair/jupyter/jupyter_chart.pyo
+${PYSITELIB}/altair/py.typed
${PYSITELIB}/altair/utils/__init__.py
${PYSITELIB}/altair/utils/__init__.pyc
+${PYSITELIB}/altair/utils/__init__.pyo
+${PYSITELIB}/altair/utils/_dfi_types.py
+${PYSITELIB}/altair/utils/_dfi_types.pyc
+${PYSITELIB}/altair/utils/_dfi_types.pyo
+${PYSITELIB}/altair/utils/_importers.py
+${PYSITELIB}/altair/utils/_importers.pyc
+${PYSITELIB}/altair/utils/_importers.pyo
+${PYSITELIB}/altair/utils/_show.py
+${PYSITELIB}/altair/utils/_show.pyc
+${PYSITELIB}/altair/utils/_show.pyo
+${PYSITELIB}/altair/utils/_transformed_data.py
+${PYSITELIB}/altair/utils/_transformed_data.pyc
+${PYSITELIB}/altair/utils/_transformed_data.pyo
+${PYSITELIB}/altair/utils/_vegafusion_data.py
+${PYSITELIB}/altair/utils/_vegafusion_data.pyc
+${PYSITELIB}/altair/utils/_vegafusion_data.pyo
+${PYSITELIB}/altair/utils/compiler.py
+${PYSITELIB}/altair/utils/compiler.pyc
+${PYSITELIB}/altair/utils/compiler.pyo
${PYSITELIB}/altair/utils/core.py
${PYSITELIB}/altair/utils/core.pyc
+${PYSITELIB}/altair/utils/core.pyo
${PYSITELIB}/altair/utils/data.py
${PYSITELIB}/altair/utils/data.pyc
+${PYSITELIB}/altair/utils/data.pyo
${PYSITELIB}/altair/utils/deprecation.py
${PYSITELIB}/altair/utils/deprecation.pyc
+${PYSITELIB}/altair/utils/deprecation.pyo
${PYSITELIB}/altair/utils/display.py
${PYSITELIB}/altair/utils/display.pyc
+${PYSITELIB}/altair/utils/display.pyo
${PYSITELIB}/altair/utils/execeval.py
${PYSITELIB}/altair/utils/execeval.pyc
+${PYSITELIB}/altair/utils/execeval.pyo
${PYSITELIB}/altair/utils/html.py
${PYSITELIB}/altair/utils/html.pyc
+${PYSITELIB}/altair/utils/html.pyo
${PYSITELIB}/altair/utils/mimebundle.py
${PYSITELIB}/altair/utils/mimebundle.pyc
+${PYSITELIB}/altair/utils/mimebundle.pyo
${PYSITELIB}/altair/utils/plugin_registry.py
${PYSITELIB}/altair/utils/plugin_registry.pyc
+${PYSITELIB}/altair/utils/plugin_registry.pyo
${PYSITELIB}/altair/utils/save.py
${PYSITELIB}/altair/utils/save.pyc
+${PYSITELIB}/altair/utils/save.pyo
${PYSITELIB}/altair/utils/schemapi.py
${PYSITELIB}/altair/utils/schemapi.pyc
+${PYSITELIB}/altair/utils/schemapi.pyo
+${PYSITELIB}/altair/utils/selection.py
+${PYSITELIB}/altair/utils/selection.pyc
+${PYSITELIB}/altair/utils/selection.pyo
${PYSITELIB}/altair/utils/server.py
${PYSITELIB}/altair/utils/server.pyc
+${PYSITELIB}/altair/utils/server.pyo
${PYSITELIB}/altair/utils/theme.py
${PYSITELIB}/altair/utils/theme.pyc
+${PYSITELIB}/altair/utils/theme.pyo
${PYSITELIB}/altair/vegalite/__init__.py
${PYSITELIB}/altair/vegalite/__init__.pyc
+${PYSITELIB}/altair/vegalite/__init__.pyo
${PYSITELIB}/altair/vegalite/api.py
${PYSITELIB}/altair/vegalite/api.pyc
+${PYSITELIB}/altair/vegalite/api.pyo
${PYSITELIB}/altair/vegalite/data.py
${PYSITELIB}/altair/vegalite/data.pyc
+${PYSITELIB}/altair/vegalite/data.pyo
${PYSITELIB}/altair/vegalite/display.py
${PYSITELIB}/altair/vegalite/display.pyc
+${PYSITELIB}/altair/vegalite/display.pyo
${PYSITELIB}/altair/vegalite/schema.py
${PYSITELIB}/altair/vegalite/schema.pyc
+${PYSITELIB}/altair/vegalite/schema.pyo
${PYSITELIB}/altair/vegalite/v5/__init__.py
${PYSITELIB}/altair/vegalite/v5/__init__.pyc
+${PYSITELIB}/altair/vegalite/v5/__init__.pyo
${PYSITELIB}/altair/vegalite/v5/api.py
${PYSITELIB}/altair/vegalite/v5/api.pyc
+${PYSITELIB}/altair/vegalite/v5/api.pyo
+${PYSITELIB}/altair/vegalite/v5/compiler.py
+${PYSITELIB}/altair/vegalite/v5/compiler.pyc
+${PYSITELIB}/altair/vegalite/v5/compiler.pyo
${PYSITELIB}/altair/vegalite/v5/data.py
${PYSITELIB}/altair/vegalite/v5/data.pyc
+${PYSITELIB}/altair/vegalite/v5/data.pyo
${PYSITELIB}/altair/vegalite/v5/display.py
${PYSITELIB}/altair/vegalite/v5/display.pyc
+${PYSITELIB}/altair/vegalite/v5/display.pyo
${PYSITELIB}/altair/vegalite/v5/schema/__init__.py
${PYSITELIB}/altair/vegalite/v5/schema/__init__.pyc
+${PYSITELIB}/altair/vegalite/v5/schema/__init__.pyo
${PYSITELIB}/altair/vegalite/v5/schema/channels.py
${PYSITELIB}/altair/vegalite/v5/schema/channels.pyc
+${PYSITELIB}/altair/vegalite/v5/schema/channels.pyo
${PYSITELIB}/altair/vegalite/v5/schema/core.py
${PYSITELIB}/altair/vegalite/v5/schema/core.pyc
+${PYSITELIB}/altair/vegalite/v5/schema/core.pyo
${PYSITELIB}/altair/vegalite/v5/schema/mixins.py
${PYSITELIB}/altair/vegalite/v5/schema/mixins.pyc
+${PYSITELIB}/altair/vegalite/v5/schema/mixins.pyo
${PYSITELIB}/altair/vegalite/v5/schema/vega-lite-schema.json
${PYSITELIB}/altair/vegalite/v5/theme.py
${PYSITELIB}/altair/vegalite/v5/theme.pyc
+${PYSITELIB}/altair/vegalite/v5/theme.pyo
diff --git a/py-altair/distinfo b/py-altair/distinfo
index 9db4c8a366..18955cae81 100644
--- a/py-altair/distinfo
+++ b/py-altair/distinfo
@@ -1,5 +1,5 @@
$NetBSD$
-BLAKE2s (altair-5.0.1.tar.gz) = 7210036b0674be4d719fb4d44a024b51b90ab7ef224e424b63982530c50ebc51
-SHA512 (altair-5.0.1.tar.gz) = 23f6a72e213d02de12dc506f105bf4202c2ffc61cb66601b281b0f69afc2096c89c25160c3363b24b0bf4a6c415e4c4bf20fab013c2e8e5cefc15ae05d82d9fe
-Size (altair-5.0.1.tar.gz) = 456156 bytes
+BLAKE2s (altair-5.3.0.tar.gz) = 6116984d0695f6497c27e56833dc05b9eb29783b7ab4678cf6bcc96f179c77e6
+SHA512 (altair-5.3.0.tar.gz) = 1ee6e4c801db3123163449239f4163161bef878efdf87504aec9493676e57d54caee0756371a1904db746964c1d9213e2134fa49bde52b14ad7aae331177f78f
+Size (altair-5.3.0.tar.gz) = 826846 bytes
Home |
Main Index |
Thread Index |
Old Index