From ad1a9897550a6a61f942396e1c473b97d4350c87 Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 11:31:44 -0400 Subject: [PATCH 1/6] Store sequences of traits as tuples, not lists --- lonboard/_layer.py | 75 ++-- lonboard/_map.py | 64 +++- lonboard/_viewport.py | 6 +- lonboard/layer_extension.py | 13 +- lonboard/traits.py | 94 ++++- poetry.lock | 679 +++++++++++++++++++++++++----------- pyproject.toml | 2 + tests/test_traits.py | 3 +- 8 files changed, 695 insertions(+), 241 deletions(-) diff --git a/lonboard/_layer.py b/lonboard/_layer.py index b0fa11f0..d936bb2e 100644 --- a/lonboard/_layer.py +++ b/lonboard/_layer.py @@ -43,6 +43,7 @@ ColorAccessor, FloatAccessor, NormalAccessor, + VariableLengthTuple, ) if TYPE_CHECKING: @@ -105,7 +106,7 @@ def __init__(self, *, extensions: Sequence[BaseExtension] = (), **kwargs): # TODO: validate that only one extension per type is included. E.g. you can't have # two data filter extensions. - extensions = traitlets.List(trait=traitlets.Instance(BaseExtension)).tag( + extensions = VariableLengthTuple(traitlets.Instance(BaseExtension)).tag( sync=True, **ipywidgets.widget_serialization ) """ @@ -113,16 +114,6 @@ def __init__(self, *, extensions: Sequence[BaseExtension] = (), **kwargs): objects to add additional features to a layer. """ - # TODO: the extensions list is not observed; separately, the list object itself does - # not propagate events, so an append wouldn't work. - - # @traitlets.observe("extensions") - # def _observe_extensions(self, change): - # """When a new extension is assigned, add its layer props to this layer.""" - # new_extensions: List[BaseExtension] = change["new"] - # for extension in new_extensions: - # self.add_traits(**extension._layer_traits) - def _add_extension_traits(self, extensions: Sequence[BaseExtension]): """Assign selected traits from the extension onto this Layer.""" for extension in extensions: @@ -146,6 +137,48 @@ def _add_extension_traits(self, extensions: Sequence[BaseExtension]): if trait.get_metadata("sync"): self.keys.append(name) + def add_extension(self, extension: BaseExtension, **props): + """Add a new layer extension to an existing layer instance. + + Any properties for the added extension should also be passed as keyword + arguments to this function. + + Examples: + + ```py + from lonboard import ScatterplotLayer + from lonboard.layer_extension import DataFilterExtension + + gdf = geopandas.GeoDataFrame(...) + layer = ScatterplotLayer.from_geopandas(gdf) + + extension = DataFilterExtension(filter_size=1) + filter_values = gdf["filter_column"] + + layer.add_extension(extension, get_filter_value=filter_values) + ``` + + Args: + extension: The new extension to add. + + Raises: + ValueError: if another extension of the same type already exists on the + layer. + """ + if any(isinstance(extension, type(ext)) for ext in self.extensions): + raise ValueError("Only one extension of each type permitted") + + self._add_extension_traits([extension]) + self.extensions += (extension,) + + # Assign any extension properties + added_names: List[str] = [] + for prop_name, prop_value in props.items(): + self.set_trait(prop_name, prop_value) + added_names.append(prop_name) + + self.send_state(added_names) + pickable = traitlets.Bool(True).tag(sync=True) """ Whether the layer responds to mouse pointer picking events. @@ -423,9 +456,9 @@ def __init__(self, **kwargs: BitmapLayerKwargs): bounds = traitlets.Union( [ - traitlets.List(traitlets.Float(), minlen=4, maxlen=4), - traitlets.List( - traitlets.List(traitlets.Float(), minlen=2, maxlen=2), + VariableLengthTuple(traitlets.Float(), minlen=4, maxlen=4), + VariableLengthTuple( + VariableLengthTuple(traitlets.Float(), minlen=2, maxlen=2), minlen=4, maxlen=4, ), @@ -447,7 +480,7 @@ def __init__(self, **kwargs: BitmapLayerKwargs): - Default: `0` """ - transparent_color = traitlets.List( + transparent_color = VariableLengthTuple( traitlets.Float(), default_value=None, allow_none=True, minlen=3, maxlen=4 ) """The color to use for transparent pixels, in `[r, g, b, a]`. @@ -456,7 +489,7 @@ def __init__(self, **kwargs: BitmapLayerKwargs): - Default: `[0, 0, 0, 0]` """ - tint_color = traitlets.List( + tint_color = VariableLengthTuple( traitlets.Float(), default_value=None, allow_none=True, minlen=3, maxlen=4 ) """The color to tint the bitmap by, in `[r, g, b]`. @@ -519,7 +552,7 @@ def __init__(self, **kwargs: BitmapTileLayerKwargs): _layer_type = traitlets.Unicode("bitmap-tile").tag(sync=True) data = traitlets.Union( - [traitlets.Unicode(), traitlets.List(traitlets.Unicode(), minlen=1)] + [traitlets.Unicode(), VariableLengthTuple(traitlets.Unicode(), minlen=1)] ).tag(sync=True) """ Either a URL template or an array of URL templates from which the tile data should @@ -574,7 +607,7 @@ def __init__(self, **kwargs: BitmapTileLayerKwargs): - Default: `None` """ - extent = traitlets.List( + extent = VariableLengthTuple( traitlets.Float(), minlen=4, maxlen=4, allow_none=True, default_value=None ).tag(sync=True) """ @@ -657,7 +690,7 @@ def __init__(self, **kwargs: BitmapTileLayerKwargs): - Default: `0` """ - transparent_color = traitlets.List( + transparent_color = VariableLengthTuple( traitlets.Float(), default_value=None, allow_none=True, minlen=3, maxlen=4 ) """The color to use for transparent pixels, in `[r, g, b, a]`. @@ -666,7 +699,7 @@ def __init__(self, **kwargs: BitmapTileLayerKwargs): - Default: `[0, 0, 0, 0]` """ - tint_color = traitlets.List( + tint_color = VariableLengthTuple( traitlets.Float(), default_value=None, allow_none=True, minlen=3, maxlen=4 ) """The color to tint the bitmap by, in `[r, g, b]`. @@ -2016,7 +2049,7 @@ def from_duckdb( - Default: `0.05` """ - color_domain = traitlets.List( + color_domain = VariableLengthTuple( traitlets.Float(), default_value=None, allow_none=True, minlen=2, maxlen=2 ).tag(sync=True) # """ diff --git a/lonboard/_map.py b/lonboard/_map.py index a18318cd..40385f87 100644 --- a/lonboard/_map.py +++ b/lonboard/_map.py @@ -14,7 +14,12 @@ from lonboard._layer import BaseLayer from lonboard._viewport import compute_view from lonboard.basemap import CartoBasemap -from lonboard.traits import DEFAULT_INITIAL_VIEW_STATE, BasemapUrl, ViewStateTrait +from lonboard.traits import ( + DEFAULT_INITIAL_VIEW_STATE, + BasemapUrl, + VariableLengthTuple, + ViewStateTrait, +) from lonboard.types.map import MapKwargs if TYPE_CHECKING: @@ -131,7 +136,7 @@ def __init__( This API is not yet stabilized and may change in the future. """ - layers = traitlets.List(trait=traitlets.Instance(BaseLayer)).tag( + layers = VariableLengthTuple(traitlets.Instance(BaseLayer)).tag( sync=True, **ipywidgets.widget_serialization ) """One or more `Layer` objects to display on this map. @@ -170,7 +175,7 @@ def __init__( custom_attribution = traitlets.Union( [ traitlets.Unicode(allow_none=True), - traitlets.List(traitlets.Unicode(allow_none=False)), + VariableLengthTuple(traitlets.Unicode(allow_none=False)), ] ).tag(sync=True) """ @@ -306,6 +311,57 @@ def __init__( global `parameters` when that layer is rendered. """ + def add_layer( + self, + layers: BaseLayer | Sequence[BaseLayer] | Map, + *, + focus: bool = False, + reset_zoom: bool = False, + ): + """Add one or more new layers to the map. + + Args: + layers: New layers to add to the map. This can be: + - a layer instance + - a list or tuple of layer instances + - another `Map` instance, in which case its layers will be added to this + map. + + focus: If True, set the view state of the map based on the _newly-added_ + layers. Defaults to False. + reset_zoom: If True, set the view state of the map based on _all_ layers. + Defaults to False. + + Raises: + ValueError: _description_ + """ + + if focus and reset_zoom: + raise ValueError("focus and reset_zoom may not both be set.") + + if isinstance(layers, Map): + new_layers = layers.layers + self.layers += layers.layers + # self.layers =x + # layers = layers.layers + elif isinstance(layers, BaseLayer): + new_layers = (layers,) + layers = [layers] + self.layers += (layers,) + else: + new_layers = tuple(layers) + self.layers += tuple(layers) + + self.layers += new_layers + + # self.layers += tuple(layers) + + if focus: + self.view_state = compute_view(new_layers) # type: ignore + + elif reset_zoom: + self.view_state = compute_view(self.layers) # type: ignore + def set_view_state( self, *, @@ -482,4 +538,4 @@ def as_html(self) -> HTML: @traitlets.default("view_state") def _default_initial_view_state(self): - return compute_view(self.layers) + return compute_view(self.layers) # type: ignore diff --git a/lonboard/_viewport.py b/lonboard/_viewport.py index 1b0a38d4..a01857e8 100644 --- a/lonboard/_viewport.py +++ b/lonboard/_viewport.py @@ -8,14 +8,14 @@ from __future__ import annotations import math -from typing import List, Tuple +from typing import Sequence, Tuple from lonboard._geoarrow.ops.bbox import Bbox from lonboard._geoarrow.ops.centroid import WeightedCentroid from lonboard._layer import BaseLayer -def get_bbox_center(layers: List[BaseLayer]) -> Tuple[Bbox, WeightedCentroid]: +def get_bbox_center(layers: Sequence[BaseLayer]) -> Tuple[Bbox, WeightedCentroid]: """Get the bounding box and geometric (weighted) center of the geometries in the table.""" @@ -55,7 +55,7 @@ def bbox_to_zoom_level(bbox: Bbox) -> int: return zoom_level -def compute_view(layers: List[BaseLayer]): +def compute_view(layers: Sequence[BaseLayer]): """Automatically computes a view state for the data passed in.""" bbox, center = get_bbox_center(layers) diff --git a/lonboard/layer_extension.py b/lonboard/layer_extension.py index 1c564ea6..16955409 100644 --- a/lonboard/layer_extension.py +++ b/lonboard/layer_extension.py @@ -6,6 +6,7 @@ FilterValueAccessor, FloatAccessor, PointAccessor, + VariableLengthTuple, ) @@ -318,9 +319,9 @@ class DataFilterExtension(BaseExtension): _layer_traits = { "filter_categories": traitlets.Union( [ - traitlets.List(traitlets.Any()), - traitlets.List( - traitlets.List(traitlets.Any()), + VariableLengthTuple(traitlets.Any()), + VariableLengthTuple( + VariableLengthTuple(traitlets.Any()), minlen=2, maxlen=4, ), @@ -331,9 +332,9 @@ class DataFilterExtension(BaseExtension): "filter_enabled": traitlets.Bool(True).tag(sync=True), "filter_range": traitlets.Union( [ - traitlets.List(traitlets.Float(), minlen=2, maxlen=2), - traitlets.List( - traitlets.List(traitlets.Float(), minlen=2, maxlen=2), + VariableLengthTuple(traitlets.Float(), minlen=2, maxlen=2), + VariableLengthTuple( + VariableLengthTuple(traitlets.Float(), minlen=2, maxlen=2), minlen=2, maxlen=4, ), diff --git a/lonboard/traits.py b/lonboard/traits.py index 2c7c0d90..e28b81d2 100644 --- a/lonboard/traits.py +++ b/lonboard/traits.py @@ -6,8 +6,19 @@ from __future__ import annotations +import sys import warnings -from typing import TYPE_CHECKING, Any, List, NoReturn, Optional, Set, Tuple, Union +from typing import ( + TYPE_CHECKING, + Any, + List, + NoReturn, + Optional, + Set, + Tuple, + TypeVar, + Union, +) from typing import cast as type_cast from urllib.parse import urlparse @@ -21,9 +32,10 @@ Table, fixed_size_list_array, ) -from traitlets import TraitError +from traitlets import TraitError, Undefined from traitlets.traitlets import TraitType from traitlets.utils.descriptions import class_of, describe +from traitlets.utils.sentinel import Sentinel from lonboard._serialization import ( ACCESSOR_SERIALIZATION, @@ -1076,3 +1088,81 @@ def validate(self, obj: HasTraits | None, value: Any) -> Any: self.error(obj, value, info="to be a HTTP(s) URL") else: return value + + +T = TypeVar("T") + + +class VariableLengthTuple(traitlets.Container[Tuple[T, ...]]): + """ + An instance of a Python tuple with variable numbers of elements of the same type. + """ + + klass = list # type:ignore[assignment] + _cast_types: Any = (tuple,) + + def __init__( + self, + trait: T | Sentinel = None, + default_value: Tuple[T] | Sentinel | None = Undefined, + minlen: int = 0, + maxlen: int = sys.maxsize, + **kwargs: Any, + ) -> None: + """Create a tuple trait type. + + The default value is created by doing ``list(default_value)``, + which creates a copy of the ``default_value``. + + ``trait`` can be specified, which restricts the type of elements + in the container to that TraitType. + + If only one arg is given and it is not a Trait, it is taken as + ``default_value``: + + ``c = List([1, 2, 3])`` + + Parameters + ---------- + trait : TraitType [ optional ] + the type for restricting the contents of the Container. + If unspecified, types are not checked. + default_value : SequenceType [ optional ] + The default value for the Trait. Must be list/tuple/set, and + will be cast to the container type. + minlen : Int [ default 0 ] + The minimum length of the input list + maxlen : Int [ default sys.maxsize ] + The maximum length of the input list + """ + self._maxlen = maxlen + self._minlen = minlen + super().__init__(trait=trait, default_value=default_value, **kwargs) + + def length_error(self, obj: Any, value: Any) -> None: + e = "The '%s' trait of %s instance must be of length %i <= L <= %i" % ( + self.name, + class_of(obj), + self._minlen, + self._maxlen, + ) + e += ", but a value of %s was specified." % (value,) + raise TraitError(e) + + def validate_elements(self, obj: Any, value: Any) -> Any: + length = len(value) + if length < self._minlen or length > self._maxlen: + self.length_error(obj, value) + + trait = self._trait + + validated = [] + for v in value: + try: + v = trait._validate(obj, v) + except TraitError as error: + self.error(obj, v, error) + else: + validated.append(v) + + return tuple(validated) diff --git a/poetry.lock b/poetry.lock index ec131989..2cdd7dd7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -112,21 +112,105 @@ tests = ["pytest"] [[package]] name = "arro3-compute" -version = "0.3.0b2" +version = "0.3.0" description = "Rust-based compute kernels for Arrow in Python." optional = false python-versions = ">=3.8" files = [ - {file = "arro3_compute-0.3.0b2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:dac65a17bb9cbcfad899c5702faac94506a4b5d45a5efc4b8c5272a61afeb2b0"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:92a6b33c16306cf6f78ad0fff03048399fd32c5b2adf024af5c8f6ff2f2d13ee"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22c5153eca546fec96c2f7981c2bfa8fad7aae0c52f48cdf04f32bfa7640a248"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7a594e8bb026adad243dfc8ac93a9af157e48c825372bc661a24878bb79e9c0"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:88b57224af9b7a31120bb39ad46c9136f50cddbe05ccea5731eb307d7933d22e"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b614e84ad5c2fdd74c661acf2e2d11f190acbaa4011a878d87c640eb1a3c12f7"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a44dccae6c2546d0d59706bfbcf116257fab17cf45df1bc8fe1ad59a70b119f"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dd9ad616c58af495fad45f2babc4a8d122ad21def0b1a4f0b4cf4707e753e3b2"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-win32.whl", hash = "sha256:f2bdc3c05dcea3d8b5a3becec1452e1b9ab9268c03fa8c7ba1f362be008f544e"}, - {file = "arro3_compute-0.3.0b2-cp38-abi3-win_amd64.whl", hash = "sha256:8985ad85661e661c4a33e1013260a6a0add85a4849af9e848847cebfd25c9376"}, + {file = "arro3_compute-0.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0b52f61aa251682a6d9a855dd932dfae752eb77369878ade140e8b5d9c7b693e"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:271cecf57c1d5abf0ed2dbd242d450a38196daf70d766bcd90014f548602084f"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0bf46dbf7af6a45396cd64d318a5eaa34106c5dfc136e517d84a89d6430cb897"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f9dcb18de91744c28c7faea5572401806df9dee90871f2397b0ecc3493a16d8"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5d758218a5af482b499b6e12dcd1856d1073ba89a865e20ece13ca91ad6fe6c"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f008421ed085869bb2280131f3599ab870d508a27f2520bcb795cc471157a39"}, + {file = "arro3_compute-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68044ca896a70e46881d46915ee2aedffc93c1590d00d6971b80159ba514530"}, + {file = "arro3_compute-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:abe3902bf60ea8621b8df7f0cf8322c26fbf56feb8dfff5f585a56b3b8c853ac"}, + {file = "arro3_compute-0.3.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:b5bb38588ee3fa42330e05b0a9075bf2d16f575f71c2c7de6f88eb10569f4f10"}, + {file = "arro3_compute-0.3.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d068cb5ce745e41338d0cd8139a3633622426f1cb4298c78341e774b6504339b"}, + {file = "arro3_compute-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a5024fe297984604fd36ae0de2b4c3a0f040de2364425b6675cc2eac2d35e24c"}, + {file = "arro3_compute-0.3.0-cp310-none-win32.whl", hash = "sha256:50c1d54838d677393ad56c1d7bc07f4ef46d188ebab6ea92717fe3f8cdda9ae1"}, + {file = "arro3_compute-0.3.0-cp310-none-win_amd64.whl", hash = "sha256:deb0fe932bc27d9fc5af2da3c92fd25c5cd2a94e76f2cb9b3160fefac5acef43"}, + {file = "arro3_compute-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f6e31cfddfbd8479f9a21043782330a3d92510e9ea160fa2ed678437776f7a07"}, + {file = "arro3_compute-0.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ab1d8848121a4a9d13fbdaa42ceda90dda6a3f978a7947d16f43a62ae8e7c36a"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa885482766382812b1972da9868e5c30f0da972020b9a54538bf37f3429b66b"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:366096d78bc231d5225bf76ce05bf754ced7134bfb711ccbeb985823f3d46df8"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8acdbd10893f3e6b0c1cd11cdaf0610f2b818c16c4199f80dd494c5b01e5958b"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b06e4650994f85c87429d9a39f7a5f7080202cd758fed0cac338416ba2163706"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e733628ac531cf9e951177c86db7ffecf9c6013f7bf9faf853acf8b6ff47db6d"}, + {file = "arro3_compute-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bfbdf2d1cf6b295e03d5eb34c1670cd330e6be7f42c24db2e479683f28a3041"}, + {file = "arro3_compute-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:91ad57a9ce55fc336913945d3f69e41350cfa8e3733f8af912fe9b217ba7d31c"}, + {file = "arro3_compute-0.3.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:18da3f519f35b0d61eb34842198f7aff4393d7648b21f70c3db2f60be39c440c"}, + {file = "arro3_compute-0.3.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:754910daae2ca134818887ef42d9fef960b68ae862de346e910e12953b984f8b"}, + {file = "arro3_compute-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2ccc32558cd8cae3f98dc20d353bf66e45b297d528f351333a75ac433b329cfe"}, + {file = "arro3_compute-0.3.0-cp311-none-win32.whl", hash = "sha256:32f2369d7afa94ecb2d97cce41385ea15c637a30978eb5eb0ac02531002300ff"}, + {file = "arro3_compute-0.3.0-cp311-none-win_amd64.whl", hash = "sha256:913ff788f456f0eec1e9c05d41a666345d766dde51974240c8ccbe55b763611e"}, + {file = "arro3_compute-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:427c053443313925a1d26a0c214f92f01edbeafd9e3212d9c83d6d6c300bada5"}, + {file = "arro3_compute-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d9fc2ac1ea5519e6a9f8cec94061f78d6c929b5d7c8830952a7c520c08e9ba7"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f21b93b58d0f5c56050818bcad652efcaf6acfff4ef698e1cf79970075345c87"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef5b122456226befca90214d8444088a0debb1b542b2406c3c9c94f9ba8d047b"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b1b607cc5d3a2232911ec8b8769487bd6d8359bcf09e9a6b5a7c25bd5666801c"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d420db564c46a49156773534e60c83541e3b72cfb4af3d32eb8fe177af089252"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:708ceed0f19e480168ecbc754d5fb9eaaae3a7b53e560822406e51feffa04354"}, + {file = "arro3_compute-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73b3c36037c0a967efcd59d765af77766694426068af571315e7e2d4a0af8dec"}, + {file = "arro3_compute-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f41244d133dc779d3f2acfd3e8875b607f59951fc13c3c196aa09f553c5d9c8b"}, + {file = "arro3_compute-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7b666381f7df628c32045daebdabba6a65017dc95fbdbe3c867f43fd935c9bdf"}, + {file = "arro3_compute-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d4ec7946e89e647e5238b3df599adc201a2a596abe52b23065482d1dd44bf3b3"}, + {file = "arro3_compute-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3831de5839f0964c6629dde2aa6e279f6164eba1d3226df0389e050a55463a43"}, + {file = "arro3_compute-0.3.0-cp312-none-win32.whl", hash = "sha256:5547db621aa80851afc37f081248d6766605bd53c77cb95a6cc1a4ec0df71d7b"}, + {file = "arro3_compute-0.3.0-cp312-none-win_amd64.whl", hash = "sha256:dbcf55d92565b3516ba2d939a1322948c411c71d5102d223624748afe4badf55"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5695bbed07fe16d77342ef00d1b24e67f14881e139e8f4b8419d28f475ffb85e"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b101bd3b0b64328bbf091e0808175b4146902f9d1c23e8ab61ee83f3b73fcc04"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13bd6ec3a47fd51a56a3c8a9296c38fe7b72eb48c93e961f44867c0e560876a2"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b757330a81f0e0a55d37d643650bdd0f5a4654867c7ac7e14c8d0c1103f75e76"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:906379f661555cbaa316893ba5033818ad7698ac8ccefda093a240440a06ab74"}, + {file = "arro3_compute-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0525f30d66fdf60786bd0916ef8ec88d494975cbfc816358bc461383df1d27b0"}, + {file = "arro3_compute-0.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b9b22e32a173c81679ce5a576808e7d382ac6900864fe24f32f36c5623624a6e"}, + {file = "arro3_compute-0.3.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:9b4974f39bd2ccd7883126ebac696d04e70a645dc28a469cf69bbc56f18b0771"}, + {file = "arro3_compute-0.3.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:da4e4cde6cd751a1281c17940e89283ed6e18186e0f2df989cc9a1e736f34ab5"}, + {file = "arro3_compute-0.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:17a329f615b72679068d9b7d2451d24365827aa986ec80014a26ff7f7d870122"}, + {file = "arro3_compute-0.3.0-cp38-none-win32.whl", hash = "sha256:f5bde30eafd62d32a8bced43dd42833a20f4063e171bcda0f6e06bd7c7533fbf"}, + {file = "arro3_compute-0.3.0-cp38-none-win_amd64.whl", hash = "sha256:79a500fe589aebd4e9b611f22b82b61fdd83d9595432446febf95882ab52d4bd"}, + {file = "arro3_compute-0.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a05ccbec5cc7defa3f5ec9ad2fae6de0f25aca1bf1a92b77db1e2ae2c3d4b2d2"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e24f9a6ad4387a1dccd01add16f3099d4d4b272b74122db4d9eeaa4306ca7a89"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:74c5aee2da6d9beca2b8d0b6dbc2a728b5974437b8fe39dc4ffff2460caaa3d2"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32389377daa228732e59c1dae17db29a0b6a6581baffc5c1ac415ea8242244b1"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2fb5d14797905e9165d07139b77c119c2c11eb4f3fefe25cbb56421a5698e32"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe123b726c40b8f3a001d869f46dd77275fcf7066bce499796a0fa0babc32307"}, + {file = "arro3_compute-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d63c6a049ab4dd2763569a992fca82328ed6fa107d5f96f4295c7022bc918f4"}, + {file = "arro3_compute-0.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:67dfebc12695c3be6b0276f16d5a506c45ccab5ab0586bb8ae64b90b3f8a7f24"}, + {file = "arro3_compute-0.3.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4cd9a680acf03dc72b1b7ef341d13e05667d80cbb2ba748c4659c60d4df53681"}, + {file = "arro3_compute-0.3.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4aff06278f0ca7381dfba310f132b787eb3a2398f59ed901bdb69aebaa680b6b"}, + {file = "arro3_compute-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0744b0a78d80599cf91d98c84f63210833f15a8a6d7fde75dc5c0d40766b2dec"}, + {file = "arro3_compute-0.3.0-cp39-none-win32.whl", hash = "sha256:1df35a359175bd600b687f38163ff384c4f1a31e823ca002d4703a95083d3ee0"}, + {file = "arro3_compute-0.3.0-cp39-none-win_amd64.whl", hash = "sha256:4a3637c9dfae74d2fed88e8bb5af486c6517e907ab39340a387cb97901240d0a"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2e130771125757a010cbec4973ec2a1695d31e79c6f046ac704d61aaf80f563"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3b7dcd0e86c7710371beac5f2c82fe60103e4600b83622e0f83df4ef2b0523d8"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a91e4d21b4e667c9b495af1692ab1652f1971dd0ed45a8538d00a1ac96b2dfb8"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d7bda96e549cff13038fbf417a07aec0425e704726e64a4a64b4281d08bb19f6"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38740db5cfdb2590608a5e09e596d9c2bb15f773d18745ad6ca1e784ea47354f"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15afbf1bae713e68cee373b003043bf9e467b2cca7e26fd565657d61ca0777c3"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:181f34b1a03497e8c1439f15e8401708ef18541e7eae85b32277eb429400d0c4"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:a4b71e96a2bc3dd485f8f4f86bd597e1628f1870844075e7b2c56524d74ccc20"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:4ba39a83aa3affa0b6ace2a0664204a1f481d915fb71913f614a3eb363ca9fc4"}, + {file = "arro3_compute-0.3.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5effe569633a8d1ee6789c920dbc1cd64aa233dff998f4b98411d2c7be5c0bd7"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7dc300d1b51ef8299d300646d88ba95ac8ddd688f44c166d4d14eb00ba24a1a8"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4c277e9dd33a761263ab208bae548d89fce757ffd43c87ea94bfe51bfdd35755"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:222c11f5b2dc92cfe6c3ea5748aa00a28961e088dd4bc6bacea018106ce29003"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:262a440e5e788cff5372acabe2d4a532886df79584f83eee92f8d5bbec88d173"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:87b609663600a453a58e69e2219affb174aa0c06f5ed80b109aa931dbc57d721"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:7bdd7b1190a0be558377d6c75216991ebf99d727d9cdc03d1da08d35b21c1068"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:5e479a2d82c63a1cd0cb2e3a17cce98158d5e48d69f4546233c4f2ea75761ff6"}, + {file = "arro3_compute-0.3.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6b345df0e092f593ef36e5722b38bddc5de5406c79ce34b2d1a6b9f56267b2bf"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6121e0870622c483aea021d9d3b47b014d5badbd09ad1fe27d2893d6f1843a29"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a057617bef28da6ec4201b500a392898572fbad79f03ca930cdd5361d198c6c"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3482faba11cb2def4b1fa8bcadac6d396884cf789f71813dbd2f978562e8bb02"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9f9f4ded1a02f362a0a42c628b6f7d8096a9fe353b0811ca171ebea6a4755e9"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba2aa8c2af8e217a909f87a08748d9ac016fb676203c8a813c65ef4bc7ec40eb"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:345a1076a1faaa33322ec439f337c0a219b286d3318fbf8f6231670f32997c46"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1fc491b30a7a40e9d11951a6ec00452e71b37aaec18339e9e5b843d802d097d5"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:1e9403824ecd25a753289982941fb46fa11012748f8a42a03789bebb9f22873d"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:ce624815864fabbbd4eb25aa82d8fade34f5678342072f5a61f174811a6b6147"}, + {file = "arro3_compute-0.3.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:d6820557a86cf94fdbd049d783e3bea9591bc8c24b6b7326d0318ba4c5497cbf"}, ] [package.dependencies] @@ -134,40 +218,208 @@ arro3-core = "*" [[package]] name = "arro3-core" -version = "0.3.0b2" +version = "0.3.0" description = "Core library for representing Arrow data in Python." optional = false python-versions = ">=3.8" files = [ - {file = "arro3_core-0.3.0b2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d5aac2a37ff624fdeef787909dcfeea83f3641bcc8749b14e765dba740038d90"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d5c9881f8ede7eedec22b5e8d2fa89dbf06eeb91b0d4b9a687d3ccc61da514a5"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45c7f6da94c8db538e7aff8a2f3fcc8959867d66f0ce1c3bd1e43b67540bf963"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c4eabe7b5b48995b9ed0654b48037c0f8c0ab401e567deb8872cc15d76b87537"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3d35bcb6fd870fcb329facd8615fe94e3ecf99e28db533f882ffd51e6b79cb2"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:150735a7fbdda544d9f0f1db04c8cfe7259bb618561166f221c597660023485d"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cac06b67cff8ffef04a224eb3b9b2fbdd4b0644d3f4416335c207ada590e517b"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c843c9efde77228c5bff20e30e541f261b05ccb0a70a9841835886f63f12367c"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-win32.whl", hash = "sha256:6a7d054e37aca2434f6def788c1a583d22748ae603d2684fc298d4830823d687"}, - {file = "arro3_core-0.3.0b2-cp38-abi3-win_amd64.whl", hash = "sha256:3536134ebe803d99d72d8efc53a99a94ef8e2d840ebbe88049552659d9792ff3"}, + {file = "arro3_core-0.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26aa1923565fc29d81945ff7a6a40549d6d2818cf5f53e60a4ab26b3ccd827aa"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c242e43c0eab523e7dfce267ef7a5b890a5e98c4c19555fa7d24eef238d9b375"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2f485f3012088f8b1d30d3c0dab87cc152fee31688ab16a7082cab48c48344a"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:604482a57bccc65a70217784cee06d4252d11444a066467e6be705e528654511"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f3fb03cd61e83c9d3a6ee22541f7ff4198264e0a21aa3bd62581b846945cf8eb"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af640bcb9b99439db0024979a11f41cc73ae09d94a8d642586f7e82359e8fb18"}, + {file = "arro3_core-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f42a5de9dfbf363bbd8a4466cb15ce07a134b99c2e622cdae7fc16828f9d8829"}, + {file = "arro3_core-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4a133f75bb861428366562094211d0048240136a1efc20b4432a42015b71c15e"}, + {file = "arro3_core-0.3.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:8750c511ca867e406f9e86ecf9758af1eea0079419e781b3fd0a3cb74a83751b"}, + {file = "arro3_core-0.3.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06986fbab49304c7cba9775ad25afd34a51f48efc4e928ff194847e66b6f06e3"}, + {file = "arro3_core-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f3e854ce5aefa7e72c0fef6db099558568310fe11e845c36a97010e5a79c9da2"}, + {file = "arro3_core-0.3.0-cp310-none-win32.whl", hash = "sha256:822806b42e579c51084c0d4580f779e1b055a210a8af45b09cf4a877b35a35c1"}, + {file = "arro3_core-0.3.0-cp310-none-win_amd64.whl", hash = "sha256:d74d12f42ef9ac81b47f6c850349001d45927722b5ceab4aa572ce712ccdfb08"}, + {file = "arro3_core-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:afdec27de5b8b8b9d36b0b195ca50e38523d0703310d6152e0bd318dcb73227c"}, + {file = "arro3_core-0.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0779ee81ad9e04732880f63b540d64175ba208d110fbac1b0602b1c55a74725d"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f429da599a5168bc4ef0ff0ed7050a58ce83f9140babe19df1d1da16d949135"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:90cdc9649582993a886a4050245fd192b25d9e1efd692c7780ea95c8009b172f"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9e2757fc43666cc46cb8f6d54e907aec68b4b322ef3af420a74b5e2b9c97574"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e654c7c467aed85043562f059edffcab1572b0068476c71746f04ae648f7844"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21d1d55e90070a8923395b23fdd7cfa375e195347cc935278d8bb65dd2313a3a"}, + {file = "arro3_core-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:339c8c54a96c4310211751b78d3a6b143e3ab8ce1133f76d7abd10d7fbad4a74"}, + {file = "arro3_core-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0f3ba831d5589e23a28ff0a02302e51745fa8f82b75628fd6b6386c904f9a76d"}, + {file = "arro3_core-0.3.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ca73f1ddd00b13836df374b023f751b53cf34bb9910fac399d2b432b279621ab"}, + {file = "arro3_core-0.3.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d4c8e92e517d592357a0ba02f65a6051727c31ee606dbd7efb701e2d02f7f4e2"}, + {file = "arro3_core-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:83958c471e13ff162dcad7cdd441035d4c59f09f74d9e36d3ef92272d93774d2"}, + {file = "arro3_core-0.3.0-cp311-none-win32.whl", hash = "sha256:64bc27d775457fdfd734f344c2861fab00759bd4dfc08b8c94e5342fc6ed40f1"}, + {file = "arro3_core-0.3.0-cp311-none-win_amd64.whl", hash = "sha256:2607e012701b766159bd093216e90c64921046ff25ace95a709fd6cce1823a4c"}, + {file = "arro3_core-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac8eb3e4faad28dedd95f0859443bb24063b7742217edfcc0405162be4b6e6bc"}, + {file = "arro3_core-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b9e04c9cb4a8610e881073f79ea3577d4f22aff1cc881bf99deeb99101ece76"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38c494c94643a17c3c6f7fe931e99fdce3dddf39fdd57074f000b762936ab57"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec1446062b3d754905184d8f923f1055af5f8272d6e281ed96ec5afb0baeac0d"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2fe5081eee439bc03cee1df1f510887813a6243adbdcc518b1b556f3b044e2ce"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2500220d64bae685ec8d4566a5409eb076707d9923ef8b7fe23f83c00b1de6ce"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f7911d513f9e6377867c85ef5f2528ae437d8219155e2cf988c4c7439f26e9c"}, + {file = "arro3_core-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3d033d29b0eb1e45b32c97251cd8e02e6967f86892d8674d52fa0ea9bd1a222"}, + {file = "arro3_core-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0af6f3f62e6dcfed8e8b618ff385edda3d1c346d4473cf462ae905814f931210"}, + {file = "arro3_core-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:144c778a8d4642cc58635ae0970565b6a3e8dc6a25bf455488b917c1628e8684"}, + {file = "arro3_core-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:141e8cd79d57b8857ce3b064c5b95b1f427a44c644fe1a27a1087f72a9a15aeb"}, + {file = "arro3_core-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8387ba395f72c47c7b83510014e59e394b8bef827ddcc727c9557992ae5cb133"}, + {file = "arro3_core-0.3.0-cp312-none-win32.whl", hash = "sha256:33866d4f2bb271a5277d293b1f0e5af6687fcbb0e16ac420331ed72c479448c5"}, + {file = "arro3_core-0.3.0-cp312-none-win_amd64.whl", hash = "sha256:1a43f28f828292f2e31ab87ff64b4f9aea54480fd46638130b072ec88f12d117"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2713efde691a2a62c34d2a0a75a5692c6d7839cc142d6cd9cad77db76096b967"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5729f63a62b900918890749cc100091c45843ce4d11551fb77f5918dc06b2d6b"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f396c9ae7e5d22a937200ca15c8eb7c602e9792dde2e375709f4160906194050"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:638bb8bfe6605d7166d24e12471960549d555a7021cca2bf98dc6eb4b5077526"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba96ba9ebd2547dde96d2c7bc14cad748917f584db4e923faaf54836e5f7f4ab"}, + {file = "arro3_core-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cce51c975190e91fc090ccf078ea1bf0b070fb8f33d320e1fbcd2088bb76d3c0"}, + {file = "arro3_core-0.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f4dde6ab8820ae1bd380ae3a0ae772b81f9545f1de494c7f643a37a8c6a5200a"}, + {file = "arro3_core-0.3.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:b175e6874f29f2065919bbde74c240c0776909355d17f68b5e6d38f27c78f87c"}, + {file = "arro3_core-0.3.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb49c58f8526506811b75534993354882b4f840893d198612d812e9d7cf59e03"}, + {file = "arro3_core-0.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e562188f1f2de49b6cdf2dda4934c63090ca0e7b2da85ddeaadaf59b70b06371"}, + {file = "arro3_core-0.3.0-cp38-none-win32.whl", hash = "sha256:21629fb456dd0d6c65bb7804ed5da603ebe87fe58c7bf4dd0be807ca92b62c70"}, + {file = "arro3_core-0.3.0-cp38-none-win_amd64.whl", hash = "sha256:f2f1436e05831b191c8d9e2210d9d958eecf25f86a171064004a4c85f26d3dfd"}, + {file = "arro3_core-0.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f976c62cf14506ea9dfc5a42fa6617b056f384761089b9b6d14c72706f058078"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c3f5366244a969a95a7e596b817536db05186f146d5fbc956a055a44531d189"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:45e028e87b3e5f156b71aae2a09ed151d1c62ebd3dc5a962ae826b4c15649569"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:126fb076ac494baf6bcb256a42bda198176ac418103dec04d1ea58048ea1a6de"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d93417e39878d5d04873a849ef9de912e9dbc234c70b86c6761f1de57ee5ffb"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e86c0ba9dee197f875894d0cc6345213cfe86167d6aa6352b862288b0593b644"}, + {file = "arro3_core-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7db4576d4db5f2735c679f879c4e342b099821d0bf1cb5c518fa5d7f18cbeb15"}, + {file = "arro3_core-0.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2d743a62602f86eff07cab0ca4fba1204d86b06056c947267b49c266f01cc476"}, + {file = "arro3_core-0.3.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:f3d03fe9d1bba3d51270d532e3015772fb9075e2d55eaaf07ecf5f2f50b1a11f"}, + {file = "arro3_core-0.3.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d356f51c032aa023574b8dab9988ac6ff10a40c5b2ae0b201dbdffefaee97672"}, + {file = "arro3_core-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c094a741b9379b2a6bd7ea1f50c1b0fc97bd53fcee609da792bcc5f8a1e76c40"}, + {file = "arro3_core-0.3.0-cp39-none-win32.whl", hash = "sha256:174267d82adefe26926790904131ea29de10b2d98c3ce7b0a1e3e9e1cc3ddde2"}, + {file = "arro3_core-0.3.0-cp39-none-win_amd64.whl", hash = "sha256:9f5e0a89c1d2835660264d673b0f4cf7cea33f2a1db5469b3b15333ecfc37248"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4fe613465c5faed94e6229247235aef32a05b61b432627c8228b8c0b3d5105"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11362f00761ae3b6f42842bf9bfc561036d07ce3a4ca841b817c562a19626009"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:659734ad0778c490d40714b135dfb2fb5ce4636545b10ea2a490a2c86ccd87d4"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:080b545dd6e23d2b1c138563f4e96a209e7f67671f9add9d3a23d139033205b4"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdf922fbe7008a1813b107c55be711c404f999f7b8d475ed0678b654a0ade297"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bcf599b2c11ac90dfc050a90a4734c062476898c1e7db99798854fd5df94551a"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:042dd72aaaac987d707c76b6d82c5551089d80d03c29e340a7e4299e4aefcc27"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:3af850cd875c60a43607fb31bcb9f6039bdcfe9ed0932aa8350c689bee78af99"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:25831b80886f300dea3fbef6d9748b01a8fbb3436c481b27e2d01667a827f3bf"}, + {file = "arro3_core-0.3.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:882ba314672d479b3cbb38d4a92264f9b25ffb01e147e0102b9dfe6190451c72"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11a5a16372fd718706204000782a148f08c5100d8f8cb72b700ee86f8ff3eb2d"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32069c94150c0cc2058074d21dfc2bb9ab101f5ac9aa9d9369fa2e4dcf453749"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:717d510457f10b5aed004a4d912f4b60df32133e46013b234e5012b5acd3e7e9"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69df234990383a205d06b64f1a2cc0b5c0742ce93265231cdab2dee01ac64bc7"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:6dceaa6ae95b40c8df47089e38a41d042b695f0486537f6729555b432d70dd59"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:6243f2f33159e6b9f131f05ebec193bfbee71b7799f4c9f67644c4ca8b6b5f96"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:530f8d7b864c6096f484fcc5e668583df4c8d9b2ad64c80dc7ff039090ca04c6"}, + {file = "arro3_core-0.3.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ab2d1fd67797c1aa20761d3ea19ce4aa5b4f0370b7e1ecf376d8cc37b31e0de3"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeb7eb8cefdffb765b8f5784fde756d8d8c0dae2186d6b824904a9c2756fc52"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b7ea86935969799850d96f992726d2c1fe3f28aa96add6469414584ab65a9c60"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10740d20f4cf5c9e163fd3f3c825016ef0f699aad6cb7ab5800b3d18d9b827ce"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b243956e29d63b153a7e7525d22c521b7b200ebb751e7c8f66c7eee23b4d40e"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62ca4be8b554182a74df0024a9c27e50a1fbecd6b29689200814eee0920dc058"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:460c8154791652c19f8bb3a7a8a0fe127359312b758b2de06c043f89e4147139"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:40c521eefd89bba4d368f27d736a27eca4545c2e068a1174f89824a10e1dc5c6"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:d0617a19c45f999598da8d4487f6efb303df1b6e1dca53e11593e47f754db69c"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2018a06727c480364251e94e4c65f18e12dcda7ce1bc13fadb4e5cf74e31ba4c"}, + {file = "arro3_core-0.3.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:a3c16b7a36f799eb947f320609ee289fa65f025f59dd01a9ad54ec5cdfaa02b7"}, ] [[package]] name = "arro3-io" -version = "0.3.0b2" +version = "0.3.0" description = "Rust-based readers and writers for Arrow in Python." optional = false python-versions = ">=3.8" files = [ - {file = "arro3_io-0.3.0b2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:cd4b282f88b2267382663b63f5d7e8d18f5f04fa84cab8551fd12e59856dde0d"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:f07797cb2448b1c64cdffdbd46d337ae0eb831440c254500e9206ed399ec21a9"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6caf2d4dc6d5a326f45b8b92c0ef585f108db093ec333963123b84b2e9d9326"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4b11516b5a1d034ea9d14192bca5aa304b6ac6e847db47428a460258c4d4d78"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f33a2dac0e7e913d988aa91af2d3d5cae726b4c9a0bf2121613b2e98a7806c5c"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab8170e857fc11f268dde04e243bd08966debe22259006c8bfc297e8a6f96330"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d40baa9295c734455744ff78a0449368370c38efccd93d675268eb6af5d302"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a15fae688bd3dedaedb88a3581f9c8a0b3bdef45972579caf1d53f5542cc75f"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-win32.whl", hash = "sha256:c5ec6e94c57cbb31ff95ead54bcf265b37111af41a13cebc7fe69389d52f4069"}, - {file = "arro3_io-0.3.0b2-cp38-abi3-win_amd64.whl", hash = "sha256:3346f240feeb6f8f9d5ca43f0ab546f68f1301a95c41374324e882ffe6e4edf1"}, + {file = "arro3_io-0.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:733a2c00ef53879fcf0a71c33bd9e5a440aaf0357530dfa62c55607a9c996bab"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f16c265fb62fc4a5b243d1a31fc0a4788f2718de6ad13644e98b9154ef453cd6"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6f69efc1f22b44ec0432f331519134f6fe7993168facd1a95b2b6ff6529b4e95"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c2484250a3e61502d6bed4be5326b8d144cef0829cd32c3b9c945b61c3850a9"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45b7dfd996b8c53f594de665a4bb2d94aa0f7055c7f296cfd024ad1624a0dc2b"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e7dc70c859ce2309ea5ef0f2fb123489d4a9c1ea0ce9cef58bbca3fbe720fb4"}, + {file = "arro3_io-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9c1ce0465d30b2baf5ae77ed29a1f7c00be1e237967d81b256f3d5704173a041"}, + {file = "arro3_io-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:40392df672f0ca8c9295afa274aac611bdb5e8aa923a4284b42dbb3189214a91"}, + {file = "arro3_io-0.3.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:bfc10d1c2e352ce6057fe0675a9d2eadfcb017ba0a06e7d4a0df617b00687197"}, + {file = "arro3_io-0.3.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:78320f04638679bacd3dea1fdabb775cc41ce8a5e84b4bc9975f42f2bbb2709a"}, + {file = "arro3_io-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0661fa5bf3c47483fee33c34ab5bdb763331e9a58bba07742388693a38cffff4"}, + {file = "arro3_io-0.3.0-cp310-none-win32.whl", hash = "sha256:8ff680c07153f7426885bdaca07050cabb36501517cb7b873043b77a450cd635"}, + {file = "arro3_io-0.3.0-cp310-none-win_amd64.whl", hash = "sha256:79336093371e0efd6a929bfd143a493c2fa7af3846c0694b1744dfbe1cd80d77"}, + {file = "arro3_io-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0996932cb7b739ec31970150f04242b32c6c182affbf9e6da624ee865e552b32"}, + {file = "arro3_io-0.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2da3d85aeb39ad01a92486dbeda141db0678404394ab62e804346e2f30ef885"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d2c9bcc0561dad2deee410697eabb3c3ff554ee5400308779358f54a04c8b26"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d085c92356c1d0bed469a27ec401aebeccfb0107e45508d2d10c3dd811b0784c"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7d7a2f11bc91989c71c5d3991d27838b13bf88252bea2fdeb550af22d79ecdbc"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0993e4bb6a1463ceb80e226b438a855825387d61727567de6463cafb3f76715f"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac74e2863d749b9b3b9c6898fd30c884ffdaa38b067ce2e82cf468e2353dd0cd"}, + {file = "arro3_io-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d27adae7ef0b12ffaf802331ebe9fc5cc342866a27719386899421b5e3041054"}, + {file = "arro3_io-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6ddf19b317670a3a648a5a969b3ce4a89793e99b100e6cbf8531f34fa8b0b0b"}, + {file = "arro3_io-0.3.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c315de04d36d34bac52c173d301e200b177f46486c491eb7073e0f16693238c7"}, + {file = "arro3_io-0.3.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dee7cae89b152f4ac3eeebf6a6d1c959ff392c2578200298f9b8110789d7732f"}, + {file = "arro3_io-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:125d8b629d06c71a7fad4559cf6544fd66ec4347d2bd85be6a9346a3f5d7595b"}, + {file = "arro3_io-0.3.0-cp311-none-win32.whl", hash = "sha256:75020c32efb1e507629ad5ed72668e15aba7c4fb0de30d0a85243e85e382c2ca"}, + {file = "arro3_io-0.3.0-cp311-none-win_amd64.whl", hash = "sha256:c7fcf94a3acd1401ac7ea71550d14fcd5a724e03c83efa7b418428be223172bd"}, + {file = "arro3_io-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1bc99648c361990f1d656333cd78d32af4c70ec79356881fcf4d9f1b32961521"}, + {file = "arro3_io-0.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d0ffc9c784bd8452eac53d73dd25e1b1ca01ae7262a8919d47f4b797190213a5"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7b113c5fb5c62e0ebaca5e0114ab5cfb6dc3af045b342f2a8a7b97b655ce935"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c36e6420622d256d92b0b02b3e9233cb52ebb2e8a5940ea6f5cea01c9bec9cea"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0514478b2c98ccf517cace9ed850914076d3b0bb5df780ad4d3bbecb19e847be"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e1e13db8b70fa4a038578ab890d90641daab8640334fd7433f7f40bafc7ecf5"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44a7232c1a4241c7a62369e3345140fc5022a291d89b390c06135e85cbec78ec"}, + {file = "arro3_io-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:786a626d14f045fa18431a876a9f961017039cb4b5ee8789b85ffc491c24f298"}, + {file = "arro3_io-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:751baff8fb40f98539ccc425710fe1c07be94cff25ac5d76c3dea9d203db326c"}, + {file = "arro3_io-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:2ba57e4fb8b5dda07969dd81b71f199867cde762600fc77fd991fb2248db863a"}, + {file = "arro3_io-0.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4e942b59912686aa3501dc781cb4cc995a3ca94d2b1296c8ca50ab8b004f1311"}, + {file = "arro3_io-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fb9cce06fd2bea5e3f62144f74214c53d81a44f14c369a192d1e107663746375"}, + {file = "arro3_io-0.3.0-cp312-none-win32.whl", hash = "sha256:26a7cc4bdae89a6704a5be7f2e4f1fed73fdb968577380b0422c50b4c82a879b"}, + {file = "arro3_io-0.3.0-cp312-none-win_amd64.whl", hash = "sha256:b0946a5cdde6558e925650e57366e7580541889ada505e8467090b303ea882c5"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18fb08fab5152ecf0bf7f3f45cc354bf01083f332ed9bb977208b5fc9f6b4c87"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cf24b509567ad84112ea50bf4094319df4b4888335c5fc33416ac44c26e0df34"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40ed63a7ab2a717962a9d7aa50969844ec06dcd14bdbbd12b87c3c9d6799f13d"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b419594bf0a2183ca876c1df0b3e2daaf9eda02d1d4a99e23d9ef71e3acb7db"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac377f770c51c92066770df57e9b228675d78126c08c4fe87742627a753664bb"}, + {file = "arro3_io-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0c6a14dddbffcccfc5fca8d0d9f0177285f160f357aed897d020ec941ba64548"}, + {file = "arro3_io-0.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8b0ff7cede61951418bb4d8f1d8479117cb2095f5f28541dbf258a3628beb26d"}, + {file = "arro3_io-0.3.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:3d2c9ee5a4915b96920f7ab3e74fa34e4345124d7fec318e369ccff667c50788"}, + {file = "arro3_io-0.3.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab28580123c8328b2d993f38e1216b4f5a7552f0731a9a40d57c4834c66c985f"}, + {file = "arro3_io-0.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2fbd405f531f6c9c94a43d687a25229dc2d04825bf43d7cfe29ea4565208837e"}, + {file = "arro3_io-0.3.0-cp38-none-win32.whl", hash = "sha256:f1e4953898ceb2a3eb3ad528ce0c73d4d98c4b6744f5136ee82a59a0178f8e5b"}, + {file = "arro3_io-0.3.0-cp38-none-win_amd64.whl", hash = "sha256:8ae78a73775fa549482f563afc1cabd8154169e8fa1877be999c5eb1b0a30c1b"}, + {file = "arro3_io-0.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cc9650f95452e78482830bbeaee29ffc16353f3bde61daf67f8df0ff192e33f6"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e60feebbc389a8b2a0314efa663c864bb577cb01c8cbeaba44d0a0588cad31f"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15214c067e714db3c9d294e810c21c40a0b0bc80802bbc40e0776a4f1d1ff944"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7a310c2b1687657e22390874b89579afcfed5197d594d116d7f7c885ec761a83"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db0ca5ada32dd0f51bdf138b569650bc054dc879aa1665156b141f153bb67b8f"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffa94c001ae347d4dcf8c43aa5ad4de21507ef7a83df0d20666d91d60b9f713"}, + {file = "arro3_io-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e6786e4a34ff835eedf16d259506e6491b674e9963f5f2dff05cc21ef646b800"}, + {file = "arro3_io-0.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4550477f03dbc64c160359bc02f18ef5b1a27bd55872889ddcadf3b905f429c6"}, + {file = "arro3_io-0.3.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:f0277b4b3bf9a5fb08e839362f65797f4e26f9fb25ca078f9c73cc8f59c5100d"}, + {file = "arro3_io-0.3.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:29226d9fc235eddf6f8615f82884cccdf217a1b4ef8857bf4d2f7dcb9e114282"}, + {file = "arro3_io-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c00fda940c6735faa630fcfd26f5ea02cf211cebb00aa4e4621c29ab8be0cb5"}, + {file = "arro3_io-0.3.0-cp39-none-win32.whl", hash = "sha256:40c4cab2f212d285060f8709ec3a15b365ed04801b6c6a1eaf065bf16db55e73"}, + {file = "arro3_io-0.3.0-cp39-none-win_amd64.whl", hash = "sha256:353f90495b9632fa23228b898793677f63a3b8146110f2d4555808a639ce36ac"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42ba78845a74efac27a47553678193b39d84cf6a7215369fef405364e66bc6fd"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b1ef9b34b42ea58b06a002ff6049c527ce96f4fbf5179fef378fb56eab0362f"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:708d5f5a23a203991a0d5a0b81491099cd1b9c26a5d96774d4eeec8652993213"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:816df4f7a963ad864e9ad69fe723cc532940b035a65054d1e75531de2630d953"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfe2c99120dfefaad155a30017681daa871c3d77648afbbda0a781ee8230d5f8"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:22fa95adbb5001278c3d5ec7a63cd131052dcc2dda5228de4377698aeb010897"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:981d91aa3e8d11d0750d7de3c78a35fdcfd943d72c84a23e3710fd20f57e43a9"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:c79e00489a27565d0a292e4795c465f411d912099aa058fae79ec18848f70ac3"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dedb696adfcb6fcd173f024b27e8733cf7908b5382fa84a8fa1103cade50bd2f"}, + {file = "arro3_io-0.3.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ff53cc2b078abecefec82f090f0957370198c633d4073bd760e9668f77c1656d"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d13d3caa7a3d5d3dc9b6a9492e2ba6f0c6fcaf4cfefd97276a1147d79987d793"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a075fc2ad0bcd657521c060560116b0b9c0815ada44a9019705163c3efdbec20"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d925164855fc0b4f0ff49c3a01911552234d774ee823f9333893c449b88267e"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85ba16280687667e2a789cec1293b9455e7941e5e251821023cb0ff5219824b7"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:5541dfc333eba2c47e5456fb54f87dc09749714494b5adee65402191748296b5"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:182cbd653f812fc1f9e72d428c91a8c19203706fdf7f7a08b5c53c97a38c3697"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:fc20db4aae60a82f9d18ef6796eebc5f20d8bb9718c5226caa374722bf405310"}, + {file = "arro3_io-0.3.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:78b203e99e4d920fe67ddec02664990400a688de0ade8ecd625dcb359f447536"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94e52ab221289ba70d0741bb40482c9bf8ea9136f133da447587f393529de618"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:645c43cd5533fb1569c2965738ea9a05fe2825db75c019d31c76b07ea78ee4bc"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de57900ea7fc6edba09a180d9cddcdef7805a35ff3d344193aa071d257147dcf"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:60857aa1d2fe26c559ed48d6176c68cbc9d256ee01090219bddb6d10e4362ccc"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29d33dfcc4d2efd5adbc7bbef3a5803fd6195529515bf5e7ccca4480449f9a2"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f4bd312a9e609928d57a73eea08364620b5841e019b19b94188e43f67216aae8"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1e72222acb18d8781138b1dc9e3572fa35072acc2a203409b51d99017237c774"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:9197545629d18896621631abb96155742027961504e280cf2efb7c0b35cd5c9d"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:cf4372ef0e12a9811ae420b88f8efa3ba08088feb77963cabe3114f9f8830456"}, + {file = "arro3_io-0.3.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:b35e25517ba0cce91b325378a5302f01df50a432ecccee62bbe2616241dbecfd"}, ] [package.dependencies] @@ -414,13 +666,13 @@ test = ["flake8", "isort", "pytest"] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] @@ -987,13 +1239,13 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.0.1" +version = "2.1.0" description = "Get the currently executing AST node of a frame, and other information" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, ] [package.extras] @@ -1303,13 +1555,13 @@ dev = ["flake8", "markdown", "twine", "wheel"] [[package]] name = "griffe" -version = "1.1.1" +version = "1.2.0" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false python-versions = ">=3.8" files = [ - {file = "griffe-1.1.1-py3-none-any.whl", hash = "sha256:0c469411e8d671a545725f5c0851a746da8bd99d354a79fdc4abd45219252efb"}, - {file = "griffe-1.1.1.tar.gz", hash = "sha256:faeb78764c0b2bd010719d6e015d07709b0f260258b5d4dd6c88343d9702aa30"}, + {file = "griffe-1.2.0-py3-none-any.whl", hash = "sha256:a8b2fcb1ecdc5a412e646b0b4375eb20a5d2eac3a11dd8c10c56967a4097663c"}, + {file = "griffe-1.2.0.tar.gz", hash = "sha256:1c9f6ef7455930f3f9b0c4145a961c90385d1e2cbc496f7796fbff560ec60d31"}, ] [package.dependencies] @@ -1364,13 +1616,13 @@ trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" -version = "0.27.0" +version = "0.27.2" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, - {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, ] [package.dependencies] @@ -1385,6 +1637,7 @@ brotli = ["brotli", "brotlicffi"] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "identify" @@ -1402,13 +1655,13 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.7" +version = "3.8" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, + {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, ] [[package]] @@ -1432,21 +1685,25 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p [[package]] name = "importlib-resources" -version = "6.4.3" +version = "6.4.4" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.4.3-py3-none-any.whl", hash = "sha256:2d6dfe3b9e055f72495c2085890837fc8c758984e209115c8792bddcb762cd93"}, - {file = "importlib_resources-6.4.3.tar.gz", hash = "sha256:4a202b9b9d38563b46da59221d77bb73862ab5d79d461307bcb826d725448b98"}, + {file = "importlib_resources-6.4.4-py3-none-any.whl", hash = "sha256:dda242603d1c9cd836c3368b1174ed74cb4049ecd209e7a1a0104620c18c5c11"}, + {file = "importlib_resources-6.4.4.tar.gz", hash = "sha256:20600c8b7361938dc0bb2d5ec0297802e575df486f5a544fa414da65e13721f7"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] [[package]] name = "iniconfig" @@ -1533,21 +1790,21 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa [[package]] name = "ipywidgets" -version = "8.1.3" +version = "8.1.5" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.3-py3-none-any.whl", hash = "sha256:efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2"}, - {file = "ipywidgets-8.1.3.tar.gz", hash = "sha256:f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c"}, + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.11,<3.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.11,<4.1.0" +widgetsnbextension = ">=4.0.12,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1810,13 +2067,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.2.4" +version = "4.2.5" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.2.4-py3-none-any.whl", hash = "sha256:807a7ec73637744f879e112060d4b9d9ebe028033b7a429b2d1f4fc523d00245"}, - {file = "jupyterlab-4.2.4.tar.gz", hash = "sha256:343a979fb9582fd08c8511823e320703281cd072a0049bcdafdc7afeda7f2537"}, + {file = "jupyterlab-4.2.5-py3-none-any.whl", hash = "sha256:73b6e0775d41a9fee7ee756c80f58a6bed4040869ccc21411dc559818874d321"}, + {file = "jupyterlab-4.2.5.tar.gz", hash = "sha256:ae7f3a1b8cb88b4f55009ce79fa7c06f99d70cd63601ee4aa91815d054f46f75"}, ] [package.dependencies] @@ -1883,13 +2140,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.11" +version = "3.0.13" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.11-py3-none-any.whl", hash = "sha256:78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0"}, - {file = "jupyterlab_widgets-3.0.11.tar.gz", hash = "sha256:dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27"}, + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, ] [[package]] @@ -2306,13 +2563,13 @@ files = [ [[package]] name = "mkdocs" -version = "1.6.0" +version = "1.6.1" description = "Project documentation with Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs-1.6.0-py3-none-any.whl", hash = "sha256:1eb5cb7676b7d89323e62b56235010216319217d4af5ddc543a91beb8d125ea7"}, - {file = "mkdocs-1.6.0.tar.gz", hash = "sha256:a73f735824ef83a4f3bcb7a231dcab23f5a838f88b7efc54a0eef5fbdbc3c512"}, + {file = "mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e"}, + {file = "mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2"}, ] [package.dependencies] @@ -2337,13 +2594,13 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp [[package]] name = "mkdocs-autorefs" -version = "1.1.0" +version = "1.2.0" description = "Automatically link across pages in MkDocs." optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_autorefs-1.1.0-py3-none-any.whl", hash = "sha256:492ac42f50214e81565e968f8cb0df9aba9d981542b9e7121b8f8ae9407fe6eb"}, - {file = "mkdocs_autorefs-1.1.0.tar.gz", hash = "sha256:f2fd43b11f66284bd014f9b542a05c8ecbfaad4e0d7b30b68584788217b6c656"}, + {file = "mkdocs_autorefs-1.2.0-py3-none-any.whl", hash = "sha256:d588754ae89bd0ced0c70c06f58566a4ee43471eeeee5202427da7de9ef85a2f"}, + {file = "mkdocs_autorefs-1.2.0.tar.gz", hash = "sha256:a86b93abff653521bda71cf3fc5596342b7a23982093915cb74273f67522190f"}, ] [package.dependencies] @@ -2389,13 +2646,13 @@ pygments = ">2.12.0" [[package]] name = "mkdocs-material" -version = "9.5.32" +version = "9.5.34" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.32-py3-none-any.whl", hash = "sha256:f3704f46b63d31b3cd35c0055a72280bed825786eccaf19c655b44e0cd2c6b3f"}, - {file = "mkdocs_material-9.5.32.tar.gz", hash = "sha256:38ed66e6d6768dde4edde022554553e48b2db0d26d1320b19e2e2b9da0be1120"}, + {file = "mkdocs_material-9.5.34-py3-none-any.whl", hash = "sha256:54caa8be708de2b75167fd4d3b9f3d949579294f49cb242515d4653dbee9227e"}, + {file = "mkdocs_material-9.5.34.tar.gz", hash = "sha256:1e60ddf716cfb5679dfd65900b8a25d277064ed82d9a53cd5190e3f894df7840"}, ] [package.dependencies] @@ -2460,17 +2717,18 @@ python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] [[package]] name = "mkdocstrings-python" -version = "1.10.8" +version = "1.10.9" description = "A Python handler for mkdocstrings." optional = false python-versions = ">=3.8" files = [ - {file = "mkdocstrings_python-1.10.8-py3-none-any.whl", hash = "sha256:bb12e76c8b071686617f824029cb1dfe0e9afe89f27fb3ad9a27f95f054dcd89"}, - {file = "mkdocstrings_python-1.10.8.tar.gz", hash = "sha256:5856a59cbebbb8deb133224a540de1ff60bded25e54d8beacc375bb133d39016"}, + {file = "mkdocstrings_python-1.10.9-py3-none-any.whl", hash = "sha256:cbe98710a6757dfd4dff79bf36cb9731908fb4c69dd2736b15270ae7a488243d"}, + {file = "mkdocstrings_python-1.10.9.tar.gz", hash = "sha256:f344aaa47e727d8a2dc911e063025e58e2b7fb31a41110ccc3902aa6be7ca196"}, ] [package.dependencies] griffe = ">=0.49" +mkdocs-autorefs = ">=1.0" mkdocstrings = ">=0.25" [[package]] @@ -2665,14 +2923,19 @@ files = [ [[package]] name = "paginate" -version = "0.5.6" +version = "0.5.7" description = "Divides large result sets into pages for easier browsing" optional = false python-versions = "*" files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, + {file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"}, + {file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"}, ] +[package.extras] +dev = ["pytest", "tox"] +lint = ["black"] + [[package]] name = "palettable" version = "3.3.3" @@ -3265,13 +3528,13 @@ test = ["pytest", "pytest-cov"] [[package]] name = "pyparsing" -version = "3.1.2" +version = "3.1.4" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, - {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, + {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, + {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, ] [package.extras] @@ -3498,120 +3761,120 @@ pyyaml = "*" [[package]] name = "pyzmq" -version = "26.1.1" +version = "26.2.0" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.7" files = [ - {file = "pyzmq-26.1.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:b1bb952d1e407463c9333ea7e0c0600001e54e08ce836d4f0aff1fb3f902cf63"}, - {file = "pyzmq-26.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:65e2a18e845c6ea7ab849c70db932eaeadee5edede9e379eb21c0a44cf523b2e"}, - {file = "pyzmq-26.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:def7ae3006924b8a0c146a89ab4008310913fa903beedb95e25dea749642528e"}, - {file = "pyzmq-26.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8234571df7816f99dde89c3403cb396d70c6554120b795853a8ea56fcc26cd3"}, - {file = "pyzmq-26.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18da8e84dbc30688fd2baefd41df7190607511f916be34f9a24b0e007551822e"}, - {file = "pyzmq-26.1.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c70dab93d98b2bf3f0ac1265edbf6e7f83acbf71dabcc4611889bb0dea45bed7"}, - {file = "pyzmq-26.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fcb90592c5d5c562e1b1a1ceccf6f00036d73c51db0271bf4d352b8d6b31d468"}, - {file = "pyzmq-26.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cf4be7460a0c1bc71e9b0e64ecdd75a86386ca6afaa36641686f5542d0314e9d"}, - {file = "pyzmq-26.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4cbecda4ddbfc1e309c3be04d333f9be3fc6178b8b6592b309676f929767a15"}, - {file = "pyzmq-26.1.1-cp310-cp310-win32.whl", hash = "sha256:583f73b113b8165713b6ce028d221402b1b69483055b5aa3f991937e34dd1ead"}, - {file = "pyzmq-26.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5e6f39ecb8eb7bfcb976c49262e8cf83ff76e082b77ca23ba90c9b6691a345be"}, - {file = "pyzmq-26.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:8d042d6446cab3a1388b38596f5acabb9926b0b95c3894c519356b577a549458"}, - {file = "pyzmq-26.1.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:362cac2423e36966d336d79d3ec3eafeabc153ee3e7a5cf580d7e74a34b3d912"}, - {file = "pyzmq-26.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0841633446cb1539a832a19bb24c03a20c00887d0cedd1d891b495b07e5c5cb5"}, - {file = "pyzmq-26.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e1fcdc333afbf9918d0a614a6e10858aede7da49a60f6705a77e343fe86a317"}, - {file = "pyzmq-26.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc8d655627d775475eafdcf0e49e74bcc1e5e90afd9ab813b4da98f092ed7b93"}, - {file = "pyzmq-26.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32de51744820857a6f7c3077e620ab3f607d0e4388dfead885d5124ab9bcdc5e"}, - {file = "pyzmq-26.1.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a880240597010914ffb1d6edd04d3deb7ce6a2abf79a0012751438d13630a671"}, - {file = "pyzmq-26.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:26131b1cec02f941ed2d2b4b8cc051662b1c248b044eff5069df1f500bbced56"}, - {file = "pyzmq-26.1.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ce05841322b58510607f9508a573138d995a46c7928887bc433de9cb760fd2ad"}, - {file = "pyzmq-26.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32123ff0a6db521aadf2b95201e967a4e0d11fb89f73663a99d2f54881c07214"}, - {file = "pyzmq-26.1.1-cp311-cp311-win32.whl", hash = "sha256:e790602d7ea1d6c7d8713d571226d67de7ffe47b1e22ae2c043ebd537de1bccb"}, - {file = "pyzmq-26.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:717960855f2d6fdc2dba9df49dff31c414187bb11c76af36343a57d1f7083d9a"}, - {file = "pyzmq-26.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:08956c26dbcd4fd8835cb777a16e21958ed2412317630e19f0018d49dbeeb470"}, - {file = "pyzmq-26.1.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:e80345900ae241c2c51bead7c9fa247bba6d4b2a83423e9791bae8b0a7f12c52"}, - {file = "pyzmq-26.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ec8fe214fcc45dfb0c32e4a7ad1db20244ba2d2fecbf0cbf9d5242d81ca0a375"}, - {file = "pyzmq-26.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf4e283f97688d993cb7a8acbc22889effbbb7cbaa19ee9709751f44be928f5d"}, - {file = "pyzmq-26.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2508bdc8ab246e5ed7c92023d4352aaad63020ca3b098a4e3f1822db202f703d"}, - {file = "pyzmq-26.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:741bdb4d96efe8192616abdc3671931d51a8bcd38c71da2d53fb3127149265d1"}, - {file = "pyzmq-26.1.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:76154943e4c4054b2591792eb3484ef1dd23d59805759f9cebd2f010aa30ee8c"}, - {file = "pyzmq-26.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9498ac427d20d0e0ef0e4bbd6200841e91640dfdf619f544ceec7f464cfb6070"}, - {file = "pyzmq-26.1.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f34453ef3496ca3462f30435bf85f535f9550392987341f9ccc92c102825a79"}, - {file = "pyzmq-26.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:50f0669324e27cc2091ef6ab76ca7112f364b6249691790b4cffce31e73fda28"}, - {file = "pyzmq-26.1.1-cp312-cp312-win32.whl", hash = "sha256:3ee5cbf2625b94de21c68d0cefd35327c8dfdbd6a98fcc41682b4e8bb00d841f"}, - {file = "pyzmq-26.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:75bd448a28b1001b6928679015bc95dd5f172703ed30135bb9e34fc9cda0a3e7"}, - {file = "pyzmq-26.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:4350233569b4bbef88595c5e77ee38995a6f1f1790fae148b578941bfffd1c24"}, - {file = "pyzmq-26.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8087a3281c20b1d11042d372ed5a47734af05975d78e4d1d6e7bd1018535f3"}, - {file = "pyzmq-26.1.1-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:ebef7d3fe11fe4c688f08bc0211a976c3318c097057f258428200737b9fff4da"}, - {file = "pyzmq-26.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a5342110510045a47de1e87f5f1dcc1d9d90109522316dc9830cfc6157c800f"}, - {file = "pyzmq-26.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af690ea4be6ca92a67c2b44a779a023bf0838e92d48497a2268175dc4a505691"}, - {file = "pyzmq-26.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc994e220c1403ae087d7f0fa45129d583e46668a019e389060da811a5a9320e"}, - {file = "pyzmq-26.1.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:b8e153f5dffb0310af71fc6fc9cd8174f4c8ea312c415adcb815d786fee78179"}, - {file = "pyzmq-26.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0065026e624052a51033857e5cd45a94b52946b44533f965f0bdf182460e965d"}, - {file = "pyzmq-26.1.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:63351392f948b5d50b9f55161994bc4feedbfb3f3cfe393d2f503dea2c3ec445"}, - {file = "pyzmq-26.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ffecc43b3c18e36b62fcec995761829b6ac325d8dd74a4f2c5c1653afbb4495a"}, - {file = "pyzmq-26.1.1-cp313-cp313-win32.whl", hash = "sha256:6ff14c2fae6c0c2c1c02590c5c5d75aa1db35b859971b3ca2fcd28f983d9f2b6"}, - {file = "pyzmq-26.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:85f2d2ee5ea9a8f1de86a300e1062fbab044f45b5ce34d20580c0198a8196db0"}, - {file = "pyzmq-26.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:cc09b1de8b985ca5a0ca343dd7fb007267c6b329347a74e200f4654268084239"}, - {file = "pyzmq-26.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:bc904e86de98f8fc5bd41597da5d61232d2d6d60c4397f26efffabb961b2b245"}, - {file = "pyzmq-26.1.1-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:00f39c367bbd6aa8e4bc36af6510561944c619b58eb36199fa334b594a18f615"}, - {file = "pyzmq-26.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de6f384864a959866b782e6a3896538d1424d183f2d3c7ef079f71dcecde7284"}, - {file = "pyzmq-26.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3abb15df0c763339edb27a644c19381b2425ddd1aea3dbd77c1601a3b31867b8"}, - {file = "pyzmq-26.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40908ec2dd3b29bbadc0916a0d3c87f8dbeebbd8fead8e618539f09e0506dec4"}, - {file = "pyzmq-26.1.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:c11a95d3f6fc7e714ccd1066f68f9c1abd764a8b3596158be92f46dd49f41e03"}, - {file = "pyzmq-26.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:4437af9fee7a58302dbd511cc49f0cc2b35c112a33a1111fb123cf0be45205ca"}, - {file = "pyzmq-26.1.1-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:76390d3d66406cb01b9681c382874400e9dfd77f30ecdea4bd1bf5226dd4aff0"}, - {file = "pyzmq-26.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:4d4c7fe5e50e269f9c63a260638488fec194a73993008618a59b54c47ef6ae72"}, - {file = "pyzmq-26.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:25d128524207f53f7aae7c5abdc2b63f8957a060b00521af5ffcd20986b5d8f4"}, - {file = "pyzmq-26.1.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d74b925d997e4f92b042bdd7085cd0a309ee0fd7cb4dc376059bbff6b32ff34f"}, - {file = "pyzmq-26.1.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:732f957441e5b1c65a7509395e6b6cafee9e12df9aa5f4bf92ed266fe0ba70ee"}, - {file = "pyzmq-26.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0a45102ad7ed9f9ddf2bd699cc5df37742cf7301111cba06001b927efecb120"}, - {file = "pyzmq-26.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9f380d5333fc7cd17423f486125dcc073918676e33db70a6a8172b19fc78d23d"}, - {file = "pyzmq-26.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:8eaffcd6bf6a9d00b66a2052a33fa7e6a6575427e9644395f13c3d070f2918dc"}, - {file = "pyzmq-26.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:f1483d4975ae1b387b39bb8e23d1ff32fe5621aa9e4ed3055d05e9c5613fea53"}, - {file = "pyzmq-26.1.1-cp37-cp37m-win32.whl", hash = "sha256:a83653c6bbe5887caea55e49fbd2909c14b73acf43bcc051eb60b2d514bbd46e"}, - {file = "pyzmq-26.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9763a8d3f5f74ef679989b373c37cc22e8d07e56d26439205cb83edb7722357f"}, - {file = "pyzmq-26.1.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2b045647caf620ce0ed6c8fd9fb6a73116f99aceed966b152a5ba1b416d25311"}, - {file = "pyzmq-26.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f66dcb6625c002f209cdc12cae1a1fec926493cd2262efe37dc6b25a30cea863"}, - {file = "pyzmq-26.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0cf1d980c969fb9e538f52abd2227f09e015096bc5c3ef7aa26e0d64051c1db8"}, - {file = "pyzmq-26.1.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:443ebf5e261a95ee9725693f2a5a71401f89b89df0e0ea58844b074067aac2f1"}, - {file = "pyzmq-26.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29de77ba1b1877fe7defc1b9140e65cbd35f72a63bc501e56c2eae55bde5fff4"}, - {file = "pyzmq-26.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f6071ec95af145d7b659dae6786871cd85f0acc599286b6f8ba0c74592d83dd"}, - {file = "pyzmq-26.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f0512fc87629ad968889176bf2165d721cd817401a281504329e2a2ed0ca6a3"}, - {file = "pyzmq-26.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5ccfcf13e80719f6a2d9c0a021d9e47d4550907a29253554be2c09582f6d7963"}, - {file = "pyzmq-26.1.1-cp38-cp38-win32.whl", hash = "sha256:809673947e95752e407aaaaf03f205ee86ebfff9ca51db6d4003dfd87b8428d1"}, - {file = "pyzmq-26.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:62b5180e23e6f581600459cd983473cd723fdc64350f606d21407c99832aaf5f"}, - {file = "pyzmq-26.1.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:fe73d7c89d6f803bed122135ff5783364e8cdb479cf6fe2d764a44b6349e7e0f"}, - {file = "pyzmq-26.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db1b7e2b50ef21f398036786da4c153db63203a402396d9f21e08ea61f3f8dba"}, - {file = "pyzmq-26.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7c506a51cb01bb997a3f6440db0d121e5e7a32396e9948b1fdb6a7bfa67243f4"}, - {file = "pyzmq-26.1.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:92eca4f80e8a748d880e55d3cf57ef487692e439f12d5c5a2e1cce84aaa7f6cb"}, - {file = "pyzmq-26.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14bdbae02f72f4716b0ffe7500e9da303d719ddde1f3dcfb4c4f6cc1cf73bb02"}, - {file = "pyzmq-26.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e03be7ed17836c9434cce0668ac1e2cc9143d7169f90f46a0167f6155e176e32"}, - {file = "pyzmq-26.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc5df31e36e4fddd4c8b5c42daee8d54d7b529e898ac984be97bf5517de166a7"}, - {file = "pyzmq-26.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f218179c90a12d660906e04b25a340dd63e9743000ba16232ddaf46888f269da"}, - {file = "pyzmq-26.1.1-cp39-cp39-win32.whl", hash = "sha256:7dfabc180a4da422a4b349c63077347392463a75fa07aa3be96712ed6d42c547"}, - {file = "pyzmq-26.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c5248e6e0fcbbbc912982e99cdd51c342601f495b0fa5bd667f3bdbdbf3e170f"}, - {file = "pyzmq-26.1.1-cp39-cp39-win_arm64.whl", hash = "sha256:2ae7aa1408778dc74582a1226052b930f9083b54b64d7e6ef6ec0466cfdcdec2"}, - {file = "pyzmq-26.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:be3fc2b11c0c384949cf1f01f9a48555039408b0f3e877863b1754225635953e"}, - {file = "pyzmq-26.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48dee75c2a9fa4f4a583d4028d564a0453447ee1277a29b07acc3743c092e259"}, - {file = "pyzmq-26.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23f2fe4fb567e8098ebaa7204819658195b10ddd86958a97a6058eed2901eed3"}, - {file = "pyzmq-26.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:472cacd16f627c06d3c8b2d374345ab74446bae913584a6245e2aa935336d929"}, - {file = "pyzmq-26.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8285b25aa20fcc46f1ca4afbc39fd3d5f2fe4c4bbf7f2c7f907a214e87a70024"}, - {file = "pyzmq-26.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2067e63fd9d5c13cfe12624dab0366053e523b37a7a01678ce4321f839398939"}, - {file = "pyzmq-26.1.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cc109be2ee3638035d276e18eaf66a1e1f44201c0c4bea4ee0c692766bbd3570"}, - {file = "pyzmq-26.1.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d0da97e65ee73261dba70469cc8f63d8da3a8a825337a2e3d246b9e95141cdd0"}, - {file = "pyzmq-26.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa79c528706561306938b275f89bb2c6985ce08469c27e5de05bc680df5e826f"}, - {file = "pyzmq-26.1.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:3ddbd851a3a2651fdc5065a2804d50cf2f4b13b1bcd66de8e9e855d0217d4fcd"}, - {file = "pyzmq-26.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d3df226ab7464684ae6706e20a5cbab717c3735a7e409b3fa598b754d49f1946"}, - {file = "pyzmq-26.1.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abad7b897e960d577eb4a0f3f789c1780bc3ffe2e7c27cf317e7c90ad26acf12"}, - {file = "pyzmq-26.1.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c513d829a548c2d5c88983167be2b3aa537f6d1191edcdc6fcd8999e18bdd994"}, - {file = "pyzmq-26.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70af4c9c991714ef1c65957605a8de42ef0d0620dd5f125953c8e682281bdb80"}, - {file = "pyzmq-26.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8d4234f335b0d0842f7d661d8cd50cbad0729be58f1c4deb85cd96b38fe95025"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2c0fdb7b758e0e1605157e480b00b3a599073068a37091a1c75ec65bf7498645"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc657577f057d60dd3642c9f95f28b432889b73143140061f7c1331d02f03df6"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e3b66fe6131b4f33d239f7d4c3bfb2f8532d8644bae3b3da4f3987073edac55"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59b57e912feef6951aec8bb03fe0faa5ad5f36962883c72a30a9c965e6d988fd"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:146956aec7d947c5afc5e7da0841423d7a53f84fd160fff25e682361dcfb32cb"}, - {file = "pyzmq-26.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:9521b874fd489495865172f344e46e0159095d1f161858e3fc6e28e43ca15160"}, - {file = "pyzmq-26.1.1.tar.gz", hash = "sha256:a7db05d8b7cd1a8c6610e9e9aa55d525baae7a44a43e18bc3260eb3f92de96c6"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, ] [package.dependencies] @@ -3896,19 +4159,23 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "73.0.1" +version = "74.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-73.0.1-py3-none-any.whl", hash = "sha256:b208925fcb9f7af924ed2dc04708ea89791e24bde0d3020b27df0e116088b34e"}, - {file = "setuptools-73.0.1.tar.gz", hash = "sha256:d59a3e788ab7e012ab2c4baed1b376da6366883ee20d7a5fc426816e3d7b1193"}, + {file = "setuptools-74.1.1-py3-none-any.whl", hash = "sha256:fc91b5f89e392ef5b77fe143b17e32f65d3024744fba66dc3afe07201684d766"}, + {file = "setuptools-74.1.1.tar.gz", hash = "sha256:2353af060c06388be1cecbf5953dcdb1f38362f87a2356c480b6b4d5fcfc8847"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] [[package]] name = "shapely" @@ -4406,29 +4673,33 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [[package]] name = "widgetsnbextension" -version = "4.0.11" +version = "4.0.13" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.11-py3-none-any.whl", hash = "sha256:55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36"}, - {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, ] [[package]] name = "zipp" -version = "3.20.0" +version = "3.20.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"}, - {file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"}, + {file = "zipp-3.20.1-py3-none-any.whl", hash = "sha256:9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064"}, + {file = "zipp-3.20.1.tar.gz", hash = "sha256:c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [extras] cli = ["click", "pyogrio", "shapely"] @@ -4437,4 +4708,4 @@ geopandas = ["geopandas", "pandas", "shapely"] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "f576a4af0e4c78d4e99c4ce4ffd7ba7f122b0071767d25f4fe2a3d31f3cebb4d" +content-hash = "b2e69dc58b8ee9a39556d9da431785f7ecd68ce6522352172ff0ccd84f6016e8" diff --git a/pyproject.toml b/pyproject.toml index e96475bd..df1ec38a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,8 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.8" anywidget = "^0.9.0" +# Minimum version for generic type hints +traitlets = ">=5.10" arro3-core = "^0.3.0-beta.2" arro3-io = "^0.3.0-beta.2" arro3-compute = "^0.3.0-beta.2" diff --git a/tests/test_traits.py b/tests/test_traits.py index 5a8cdb7c..aad2a43e 100644 --- a/tests/test_traits.py +++ b/tests/test_traits.py @@ -15,6 +15,7 @@ ColorAccessor, FloatAccessor, NormalAccessor, + VariableLengthTuple, ) @@ -172,7 +173,7 @@ def test_float_accessor_validation_type(): class FilterValueAccessorWidget(BaseArrowLayer): # This needs a data filter extension in the extensions array to validate filter_size - extensions = traitlets.List(trait=traitlets.Instance(BaseExtension)).tag( + extensions = VariableLengthTuple(trait=traitlets.Instance(BaseExtension)).tag( sync=True, **ipywidgets.widget_serialization ) From 702b39559d70c99531bbc6bab39674f9c1d94ea6 Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 11:34:45 -0400 Subject: [PATCH 2/6] Add example with secondary `viz` --- lonboard/_map.py | 11 ++++++++++- lonboard/_viz.py | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lonboard/_map.py b/lonboard/_map.py index 40385f87..4647bbb1 100644 --- a/lonboard/_map.py +++ b/lonboard/_map.py @@ -320,12 +320,21 @@ def add_layer( ): """Add one or more new layers to the map. + Examples: + + ```py + from lonboard import viz + + m = viz(some_data) + m.add_layer(viz(more_data), focus=True) + ``` + Args: layers: New layers to add to the map. This can be: - a layer instance - a list or tuple of layer instances - another `Map` instance, in which case its layers will be added to this - map. + map. This lets you pass the result of `viz` into this method. focus: If True, set the view state of the map based on the _newly-added_ layers. Defaults to False. diff --git a/lonboard/_viz.py b/lonboard/_viz.py index b4d45f27..f4ca805c 100644 --- a/lonboard/_viz.py +++ b/lonboard/_viz.py @@ -166,6 +166,9 @@ def viz( Alternatively, you can pass a `list` or `tuple` of any of the above inputs. + If you want to easily add more data, to an existing map, you can pass the output of + `viz` into [`Map.add_layer`][lonboard.Map.add_layer]. + Args: data: a data object of any supported type. From b6a06977aab05dda17f361d20026fd310dd294f3 Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 12:17:59 -0400 Subject: [PATCH 3/6] Try to fix add_extension --- lonboard/_layer.py | 68 ++++++++++++++++++-------------- lonboard/layer_extension.py | 8 ++-- src/model/base-layer.ts | 5 ++- src/model/extension.ts | 78 ++++++++++++++++++++++++------------- src/model/layer.ts | 6 ++- 5 files changed, 102 insertions(+), 63 deletions(-) diff --git a/lonboard/_layer.py b/lonboard/_layer.py index d936bb2e..cc4354ea 100644 --- a/lonboard/_layer.py +++ b/lonboard/_layer.py @@ -137,47 +137,55 @@ def _add_extension_traits(self, extensions: Sequence[BaseExtension]): if trait.get_metadata("sync"): self.keys.append(name) - def add_extension(self, extension: BaseExtension, **props): - """Add a new layer extension to an existing layer instance. + # This doesn't currently work due to I think some race conditions around syncing + # traits vs the other parameters. - Any properties for the added extension should also be passed as keyword - arguments to this function. + # def add_extension(self, extension: BaseExtension, **props): + # """Add a new layer extension to an existing layer instance. - Examples: + # Any properties for the added extension should also be passed as keyword + # arguments to this function. - ```py - from lonboard import ScatterplotLayer - from lonboard.layer_extension import DataFilterExtension + # Examples: - gdf = geopandas.GeoDataFrame(...) - layer = ScatterplotLayer.from_geopandas(gdf) + # ```py + # from lonboard import ScatterplotLayer + # from lonboard.layer_extension import DataFilterExtension - extension = DataFilterExtension(filter_size=1) - filter_values = gdf["filter_column"] + # gdf = geopandas.GeoDataFrame(...) + # layer = ScatterplotLayer.from_geopandas(gdf) - layer.add_extension(extension, get_filter_value=filter_values) - ``` + # extension = DataFilterExtension(filter_size=1) + # filter_values = gdf["filter_column"] - Args: - extension: The new extension to add. + # layer.add_extension( + # extension, + # get_filter_value=filter_values, + # filter_range=[0, 1] + # ) + # ``` - Raises: - ValueError: if another extension of the same type already exists on the - layer. - """ - if any(isinstance(extension, type(ext)) for ext in self.extensions): - raise ValueError("Only one extension of each type permitted") + # Args: + # extension: The new extension to add. - self._add_extension_traits([extension]) - self.extensions += (extension,) + # Raises: + # ValueError: if another extension of the same type already exists on the + # layer. + # """ + # if any(isinstance(extension, type(ext)) for ext in self.extensions): + # raise ValueError("Only one extension of each type permitted") - # Assign any extension properties - added_names: List[str] = [] - for prop_name, prop_value in props.items(): - self.set_trait(prop_name, prop_value) - added_names.append(prop_name) + # with self.hold_trait_notifications(): + # self._add_extension_traits([extension]) + # self.extensions += (extension,) - self.send_state(added_names) + # # Assign any extension properties + # added_names: List[str] = [] + # for prop_name, prop_value in props.items(): + # self.set_trait(prop_name, prop_value) + # added_names.append(prop_name) + + # self.send_state(added_names + ["extensions"]) pickable = traitlets.Bool(True).tag(sync=True) """ diff --git a/lonboard/layer_extension.py b/lonboard/layer_extension.py index 16955409..3baf48ec 100644 --- a/lonboard/layer_extension.py +++ b/lonboard/layer_extension.py @@ -351,21 +351,21 @@ class DataFilterExtension(BaseExtension): "get_filter_category": FilterValueAccessor(default_value=None, allow_none=True), } - filter_size = traitlets.Int(1, min=1, max=4).tag(sync=True) + filter_size = traitlets.Int(None, min=1, max=4, allow_none=True).tag(sync=True) """The size of the filter (number of columns to filter by). The data filter can show/hide data based on 1-4 numeric properties of each object. - - Type: `int`, optional + - Type: `int`. This is required if using range-based filtering. - Default 1. """ - category_size = traitlets.Int(1, min=1, max=4).tag(sync=True) + category_size = traitlets.Int(None, min=1, max=4, allow_none=True).tag(sync=True) """The size of the category filter (number of columns to filter by). The category filter can show/hide data based on 1-4 properties of each object. - - Type: `int`, optional + - Type: `int`. This is required if using category-based filtering. - Default 0. """ diff --git a/src/model/base-layer.ts b/src/model/base-layer.ts index c8842766..26a89554 100644 --- a/src/model/base-layer.ts +++ b/src/model/base-layer.ts @@ -42,7 +42,9 @@ export abstract class BaseLayerModel extends BaseModel { } extensionInstances(): LayerExtension[] { - return this.extensions.map((extension) => extension.extensionInstance); + return this.extensions + .map((extension) => extension.extensionInstance()) + .filter((extensionInstance) => extensionInstance !== null); } extensionProps() { @@ -52,6 +54,7 @@ export abstract class BaseLayerModel extends BaseModel { props[layerPropertyName] = this[layerPropertyName as keyof this]; } } + // console.log("extension props", props); return props; } diff --git a/src/model/extension.ts b/src/model/extension.ts index 13ddc95f..a361ddf6 100644 --- a/src/model/extension.ts +++ b/src/model/extension.ts @@ -13,25 +13,22 @@ import { isDefined } from "../util.js"; export abstract class BaseExtensionModel extends BaseModel { static extensionType: string; - abstract extensionInstance: LayerExtension; - constructor(model: WidgetModel, updateStateCallback: () => void) { super(model, updateStateCallback); } + + abstract extensionInstance(): LayerExtension | null; } export class BrushingExtension extends BaseExtensionModel { static extensionType = "brushing"; - extensionInstance: _BrushingExtension; - constructor( model: WidgetModel, layerModel: BaseLayerModel, updateStateCallback: () => void, ) { super(model, updateStateCallback); - this.extensionInstance = new _BrushingExtension(); layerModel.initRegularAttribute("brushing_enabled", "brushingEnabled"); layerModel.initRegularAttribute("brushing_target", "brushingTarget"); @@ -52,20 +49,21 @@ export class BrushingExtension extends BaseExtensionModel { "getBrushingTarget", ]; } + + extensionInstance(): _BrushingExtension { + return new _BrushingExtension(); + } } export class CollisionFilterExtension extends BaseExtensionModel { static extensionType = "collision-filter"; - extensionInstance: _CollisionFilterExtension; - constructor( model: WidgetModel, layerModel: BaseLayerModel, updateStateCallback: () => void, ) { super(model, updateStateCallback); - this.extensionInstance = new _CollisionFilterExtension(); layerModel.initRegularAttribute("collision_enabled", "collisionEnabled"); layerModel.initRegularAttribute("collision_group", "collisionGroup"); @@ -89,12 +87,18 @@ export class CollisionFilterExtension extends BaseExtensionModel { "getCollisionPriority", ]; } + + extensionInstance(): _CollisionFilterExtension { + return new _CollisionFilterExtension(); + } } export class DataFilterExtension extends BaseExtensionModel { static extensionType = "data-filter"; - extensionInstance: _DataFilterExtension; + // DataFilterExtensionOptions is not exported + protected categorySize?: 0 | 1 | 2 | 3 | 4; + protected filterSize?: 0 | 1 | 2 | 3 | 4; constructor( model: WidgetModel, @@ -103,14 +107,8 @@ export class DataFilterExtension extends BaseExtensionModel { ) { super(model, updateStateCallback); - // TODO: set filterSize, fp64, countItems in constructor - // TODO: should filter_size automatically update from python? - const filterSize = this.model.get("filter_size"); - const categorySize = this.model.get("category_size"); - this.extensionInstance = new _DataFilterExtension({ - ...(isDefined(filterSize) ? { filterSize } : {}), - ...(isDefined(categorySize) ? { categorySize } : {}), - }); + this.initRegularAttribute("filter_size", "filterSize"); + this.initRegularAttribute("category_size", "categorySize"); // Properties added by the extension onto the layer layerModel.initRegularAttribute("filter_categories", "filterCategories"); @@ -146,12 +144,34 @@ export class DataFilterExtension extends BaseExtensionModel { "getFilterValue", ]; } + + extensionInstance(): _DataFilterExtension | null { + if (isDefined(this.filterSize)) { + const props = { + ...(isDefined(this.filterSize) ? { filterSize: this.filterSize } : {}), + }; + // console.log("ext props", props); + return new _DataFilterExtension(props); + } else if (isDefined(this.categorySize)) { + const props = { + ...(isDefined(this.categorySize) + ? { categorySize: this.categorySize } + : {}), + }; + // console.log("ext props", props); + return new _DataFilterExtension(props); + } else { + return null; + } + } } export class PathStyleExtension extends BaseExtensionModel { static extensionType = "path-style"; - extensionInstance: _PathStyleExtension; + protected dash?: boolean; + protected offset?: boolean; + protected highPrecisionDash?: boolean; constructor( model: WidgetModel, @@ -160,14 +180,10 @@ export class PathStyleExtension extends BaseExtensionModel { ) { super(model, updateStateCallback); - const dash = this.model.get("dash"); - const highPrecisionDash = this.model.get("high_precision_dash"); - const offset = this.model.get("offset"); - this.extensionInstance = new _PathStyleExtension({ - ...(isDefined(dash) ? { dash } : {}), - ...(isDefined(highPrecisionDash) ? { highPrecisionDash } : {}), - ...(isDefined(offset) ? { offset } : {}), - }); + // PathStyleExtensionOptions is not exported + this.initRegularAttribute("dash", "dash"); + this.initRegularAttribute("high_precision_dash", "highPrecisionDash"); + this.initRegularAttribute("offset", "offset"); // Properties added by the extension onto the layer layerModel.initRegularAttribute("dash_gap_pickable", "dashGapPickable"); @@ -185,6 +201,16 @@ export class PathStyleExtension extends BaseExtensionModel { "getOffset", ]; } + + extensionInstance(): _PathStyleExtension { + return new _PathStyleExtension({ + ...(isDefined(this.dash) ? { dash: this.dash } : {}), + ...(isDefined(this.highPrecisionDash) + ? { highPrecisionDash: this.highPrecisionDash } + : {}), + ...(isDefined(this.offset) ? { offset: this.offset } : {}), + }); + } } export async function initializeExtension( diff --git a/src/model/layer.ts b/src/model/layer.ts index 472d7df9..0fce64e5 100644 --- a/src/model/layer.ts +++ b/src/model/layer.ts @@ -712,10 +712,12 @@ export class ScatterplotModel extends BaseArrowLayerModel { } render(): GeoArrowScatterplotLayer { - return new GeoArrowScatterplotLayer({ + const props = { ...this.baseLayerProps(), ...this.layerProps(), - }); + }; + // console.log(props); + return new GeoArrowScatterplotLayer(props); } } From d43d43d76d87b1969792c3a0048aa778b15d2661 Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 12:46:54 -0400 Subject: [PATCH 4/6] Fix tests --- tests/test_duckdb.py | 59 ++++++++++++++++++-------------------------- tests/test_layer.py | 2 +- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/tests/test_duckdb.py b/tests/test_duckdb.py index 6448f30a..69c840d7 100644 --- a/tests/test_duckdb.py +++ b/tests/test_duckdb.py @@ -1,20 +1,28 @@ +from pathlib import Path from tempfile import TemporaryDirectory +from urllib.request import urlretrieve import duckdb +import geodatasets import pytest from lonboard import PolygonLayer, ScatterplotLayer, SolidPolygonLayer, viz +cities_url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_populated_places_simple.zip" +cities_path = Path("ne_110m_populated_places_simple.zip") -def test_viz_geometry(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") +if not cities_path.exists(): + urlretrieve(cities_url, "ne_110m_populated_places_simple.zip") + +cities_gdal_path = f"/vsizip/{cities_path}" + +def test_viz_geometry(): con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT * FROM ST_Read("{points_path}"); + SELECT * FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "GEOMETRY" @@ -23,14 +31,11 @@ def test_viz_geometry(): def test_viz_wkb_blob(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT name, ST_AsWKB(geom) as geom FROM ST_Read("{points_path}"); + SELECT name, ST_AsWKB(geom) as geom FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "WKB_BLOB" @@ -39,14 +44,11 @@ def test_viz_wkb_blob(): def test_viz_point_2d(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT name, CAST(geom as POINT_2D) as geom FROM ST_Read("{points_path}"); + SELECT name, CAST(geom as POINT_2D) as geom FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "POINT_2D" @@ -58,7 +60,7 @@ def test_viz_bbox_2d(): gpd = pytest.importorskip("geopandas") with TemporaryDirectory() as tmpdir: - nybb = gpd.read_file(gpd.datasets.get_path("nybb")) + nybb = gpd.read_file(geodatasets.get_path("nybb")) nybb = nybb.to_crs("EPSG:4326") tmp_path = f"{tmpdir}/nybb.shp" nybb.to_file(tmp_path) @@ -77,14 +79,11 @@ def test_viz_bbox_2d(): def test_layer_geometry(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT * FROM ST_Read("{points_path}"); + SELECT * FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "GEOMETRY" @@ -93,14 +92,11 @@ def test_layer_geometry(): def test_layer_wkb_blob(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT name, ST_AsWKB(geom) as geom FROM ST_Read("{points_path}"); + SELECT name, ST_AsWKB(geom) as geom FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "WKB_BLOB" @@ -109,14 +105,11 @@ def test_layer_wkb_blob(): def test_layer_point_2d(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - con = duckdb.connect() sql = f""" INSTALL spatial; LOAD spatial; - SELECT name, CAST(geom as POINT_2D) as geom FROM ST_Read("{points_path}"); + SELECT name, CAST(geom as POINT_2D) as geom FROM ST_Read("{cities_gdal_path}"); """ rel = con.sql(sql) assert rel.types[-1] == "POINT_2D" @@ -128,7 +121,8 @@ def test_layer_bbox_2d(): gpd = pytest.importorskip("geopandas") with TemporaryDirectory() as tmpdir: - nybb = gpd.read_file(gpd.datasets.get_path("nybb")) + nybb = gpd.read_file(geodatasets.get_path("nybb")) + nybb = nybb.to_crs("EPSG:4326") tmp_path = f"{tmpdir}/nybb.shp" nybb.to_file(tmp_path) @@ -149,7 +143,8 @@ def test_solid_polygon_layer_bbox_2d(): gpd = pytest.importorskip("geopandas") with TemporaryDirectory() as tmpdir: - nybb = gpd.read_file(gpd.datasets.get_path("nybb")) + nybb = gpd.read_file(geodatasets.get_path("nybb")) + nybb = nybb.to_crs("EPSG:4326") tmp_path = f"{tmpdir}/nybb.shp" nybb.to_file(tmp_path) @@ -168,13 +163,10 @@ def test_solid_polygon_layer_bbox_2d(): @pytest.mark.skip("Skip because it mutates global state") def test_create_table_as(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - sql = f""" INSTALL spatial; LOAD spatial; - CREATE TABLE test AS SELECT * FROM ST_Read("{points_path}"); + CREATE TABLE test AS SELECT * FROM ST_Read("{cities_gdal_path}"); """ duckdb.execute(sql) m = viz(duckdb.table("test")) @@ -182,13 +174,10 @@ def test_create_table_as(): def test_create_table_as_custom_con(): - gpd = pytest.importorskip("geopandas") - points_path = gpd.datasets.get_path("naturalearth_cities") - sql = f""" INSTALL spatial; LOAD spatial; - CREATE TABLE test AS SELECT * FROM ST_Read("{points_path}"); + CREATE TABLE test AS SELECT * FROM ST_Read("{cities_gdal_path}"); """ con = duckdb.connect() con.execute(sql) diff --git a/tests/test_layer.py b/tests/test_layer.py index bf514857..e1844daa 100644 --- a/tests/test_layer.py +++ b/tests/test_layer.py @@ -45,7 +45,7 @@ def test_accessor_length_validation_extension(): points = shapely.points([1, 2], [3, 4]) gdf = gpd.GeoDataFrame(geometry=points) - extension = DataFilterExtension() + extension = DataFilterExtension(filter_size=1) with pytest.raises(TraitError, match="same length as table"): _layer = ScatterplotLayer.from_geopandas( From 302c0f9741c658852c21cce9c28f0d6b391ba513 Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 12:48:19 -0400 Subject: [PATCH 5/6] don't pin arro3 strongly --- poetry.lock | 203 +++++++++++++++++++++++-------------------------- pyproject.toml | 6 +- 2 files changed, 99 insertions(+), 110 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2cdd7dd7..d85487b5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2180,115 +2180,104 @@ test-ui = ["calysto-bash"] [[package]] name = "kiwisolver" -version = "1.4.5" +version = "1.4.6" description = "A fast implementation of the Cassowary constraint solver" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, + {file = "kiwisolver-1.4.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9739f60317af3ebb15372a61907a71ba71e9cc3c21239d4e39051ecf51928d98"}, + {file = "kiwisolver-1.4.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7802ac87e8efd05f4ed6b82dfe4749cd4f38140c198a7d392ebbb3ab5fb38bd6"}, + {file = "kiwisolver-1.4.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0632248f5a06a2e4134637628de7300b923d242a30926a1bbf7cc4e487dc0bb8"}, + {file = "kiwisolver-1.4.6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b747105ddb84ce77a41fbc9485df366519526d1f7f4a096ca02570bf082a70c3"}, + {file = "kiwisolver-1.4.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9f338d9724cc2b2ea49e8f3af3a6733f5191cf85801db5b137350dc021e16dad"}, + {file = "kiwisolver-1.4.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdeb0c875a8df911cf026f2ee7043d63d59768e58864835d5c5c27020f251fd2"}, + {file = "kiwisolver-1.4.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:182b3eed63f8f79623bba26f1ac75e6c94463c98b70828029db8fe2d230b7ba0"}, + {file = "kiwisolver-1.4.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0b17c30a50ce5345469f206708adb5946917d59c900e53af7108da2a0c4b56f"}, + {file = "kiwisolver-1.4.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cc09aff78d1eb3b4c63d31eba1db6da5b4d580cf65596562038b6c8ec5806a17"}, + {file = "kiwisolver-1.4.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:300443d53ed971a0dd35249f5012a3c3c95004da2e3f5877ed3cb784228d67bd"}, + {file = "kiwisolver-1.4.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:7e3012902606eba35014f725dbd2aab3a28a276cb6872fb21bb27c0ee384a554"}, + {file = "kiwisolver-1.4.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4cf699500d5d88a5424a4a26dfdcada6aa3a1917431e459c88c38dadd6a300d7"}, + {file = "kiwisolver-1.4.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:212a903a4f90aa6bdbd0709b28df4a337687839dd7cf7030bb288ef756f338e4"}, + {file = "kiwisolver-1.4.6-cp310-cp310-win32.whl", hash = "sha256:7de63234cf06d3a0d218d5c6e907f6ceed72a9d369a8c561d1a161ffafd2fa95"}, + {file = "kiwisolver-1.4.6-cp310-cp310-win_amd64.whl", hash = "sha256:ad4410b6aca71bcfba185d92a3094114914b4ddd9d61d5b7b91047cb273a077b"}, + {file = "kiwisolver-1.4.6-cp310-cp310-win_arm64.whl", hash = "sha256:bc523ab49257fd7bbe00e23aff6924624a5da1ce924e4b3e39530049298779da"}, + {file = "kiwisolver-1.4.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45a5cb5abad1ad9c265eed7e058fefafeb7964565b93b397ba2f480faec8d674"}, + {file = "kiwisolver-1.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e52b2568c47fb4f54d17576954e02b1de156c85152f87283a99db9670fd18c0"}, + {file = "kiwisolver-1.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:00af95204100bc1d0f26e1ed52ec77d6e3da5c9b845c88d31875c164e4ba6c0c"}, + {file = "kiwisolver-1.4.6-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ab1fedf86f3951a9e90a64edd15f598860ed60cd3664259756f097d527b5ae"}, + {file = "kiwisolver-1.4.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc985766bf20141ce64baecc39fb9fedbce094b2b8de1bb62676b79328988e4"}, + {file = "kiwisolver-1.4.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1942a155c737a7c3835a957897f0cc9ebc0085b7a75d934d86aecb1b27b8873"}, + {file = "kiwisolver-1.4.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f464403e391724f8e7dff188d3fb77a85bd1273b3fdba182e6671abcc44434f8"}, + {file = "kiwisolver-1.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce5efe545eea86f52ec5a1185e5052815ea86778e8268bad71fa46433f7c0bef"}, + {file = "kiwisolver-1.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cb30165f71b7b3378668346e220c81d590593a3a1ff76428a53780310df03f35"}, + {file = "kiwisolver-1.4.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5a987f740e1c9964e614acb87ba1f014b4be760a341effc8dc789913d1840e6"}, + {file = "kiwisolver-1.4.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f2ceaa6d0450623d108956647ef19a1a28c7e07880f1171c932477308d44d80b"}, + {file = "kiwisolver-1.4.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:788cbf99738f18ae8a27b9d4d7314502b4b917005cfdacd1d6a59038332ae24d"}, + {file = "kiwisolver-1.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2f6668678a6b9488a7f8a6320e1b1c6396d179a976472dbc08d1600d04119511"}, + {file = "kiwisolver-1.4.6-cp311-cp311-win32.whl", hash = "sha256:10a09a3e4213c2806bcfd2eb4edb756c557973d2cacf06873b18a247fce897da"}, + {file = "kiwisolver-1.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:683ffef2c51fdc54112dc610d06b59b88c21e23fb669b905da6d5bec80da1bde"}, + {file = "kiwisolver-1.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:3b852c7f0ed9a2fd339c228829bca0964233ed45de50aae3e87b72ca37d177f8"}, + {file = "kiwisolver-1.4.6-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:979df7e9334f6a3694ee9be8d42817e519ef6d155a16499714d082cf41296852"}, + {file = "kiwisolver-1.4.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50c9c6c42bb6ca231626d1182b9128e89c5ce3c64456f811ff0280deb42d7bfe"}, + {file = "kiwisolver-1.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ace86489e7951bd26329a589198d3875c3d48380f889c69d3eb254b506a80101"}, + {file = "kiwisolver-1.4.6-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f94771988da902b475f78e85cf63c5c94392773b4a6494234d87c1b363b2fbc5"}, + {file = "kiwisolver-1.4.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a62379eee430b1c477bb0a0bf6858a57c7c0dad9cee8b3144a5cb5d366c66a54"}, + {file = "kiwisolver-1.4.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e99b97d69499a7414572c906fbc7ca312519f2e17999730129f6c4492786e953"}, + {file = "kiwisolver-1.4.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab93f58afe3a02922a343189404f24ed885564e6316649790240124b95ef1d6e"}, + {file = "kiwisolver-1.4.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34105f4460ba50fc18a16a8e77a5122f7affe075628763fda748ad0ec534c3ee"}, + {file = "kiwisolver-1.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0081f85f0222620563409d4804c6567a930a45dafbe9674c7913fde131653992"}, + {file = "kiwisolver-1.4.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:df2a4a7cc2e01991e039a792457751b601bdf30143ab5f23f9a1e58f20c875f4"}, + {file = "kiwisolver-1.4.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1f401784df70ea2870e4e10adade66b5b06cb2c151bc2a8a414a1d10554e9a81"}, + {file = "kiwisolver-1.4.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:b19761c8c613b6d04c44f1a4797a144b44136f17ec009ccfb025e17b5698140c"}, + {file = "kiwisolver-1.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ee7289430ded484cc2eff9d8ffcce58ed7fe2c26919321dbc0580322a49e0120"}, + {file = "kiwisolver-1.4.6-cp312-cp312-win32.whl", hash = "sha256:331b9d9f408e874ecf34bd79b79df8e099f0b1b351b8844609c1bfdc8d2d45b2"}, + {file = "kiwisolver-1.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:a9be95d086578b3ada61a4621c0e7ee5f456820bfdccc3329061fdeae1e31179"}, + {file = "kiwisolver-1.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:773f2d87825779ab69196dfcf63e9d91043273421c6128c8d4ed82bc6316068f"}, + {file = "kiwisolver-1.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:140f376c22b5148453acff768cff19c34ebbd593126617018732ea1d9ce65547"}, + {file = "kiwisolver-1.4.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:160b983a1bca62d2274c886ddffc3168e0d6a1ae54d54556229f5bd57a4295e4"}, + {file = "kiwisolver-1.4.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f51a061d280300d33d37ebcfd02d5b480004e5bb5092e80ccabcdec8b7b1be9c"}, + {file = "kiwisolver-1.4.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2e33395cca1a27102beed4baf4e97490fcbb2c245626bddb940eafcfe697bf4a"}, + {file = "kiwisolver-1.4.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7d04968b6015583968e62eca184c5104cbdc02666fd5cc7a4b535f9846968fd"}, + {file = "kiwisolver-1.4.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2cfbcd3a4b6193dd89dd005fbc5db8115a9f204727446562992f9f7fed217b3a"}, + {file = "kiwisolver-1.4.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a69366fb349c2be904ac13063e3b6bcae76ed1c826fcbc646f43135b45abb68"}, + {file = "kiwisolver-1.4.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3420b5179fb732a899a0dfbfdcbc221712d850b5772b082415658466e887e55"}, + {file = "kiwisolver-1.4.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4ccbc596114d32bb5d2ff74eb1785ab1b2d5bc56e7e54662ef335b333f427548"}, + {file = "kiwisolver-1.4.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fa61478e1356df92566ca46fe4165d0a36b9e336ee7fe7e71b923267fc5283aa"}, + {file = "kiwisolver-1.4.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:204039c59e6160f1227c2a33153d0738c93c171dbcc5b632c653f7a7abd08dc9"}, + {file = "kiwisolver-1.4.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:827425185329b813b40bbc176e0757282c558d6efab3c9f681f629c737e08a6e"}, + {file = "kiwisolver-1.4.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:ccff4e5ec806db412aceec89b8e7a83a56ff93c5c615c725e7784d90c5a556c4"}, + {file = "kiwisolver-1.4.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0d048002e15b9583ddff6ef4a27bd7f94fff830473856e82f311071b5cca9ade"}, + {file = "kiwisolver-1.4.6-cp38-cp38-win32.whl", hash = "sha256:11b0fdacd87bfe02c4f293ac38b2caf736591253687dce4d489a780a4bf2c39e"}, + {file = "kiwisolver-1.4.6-cp38-cp38-win_amd64.whl", hash = "sha256:ab480d087f10270ff24b06247e41eff901a452b890bfd708d8b7eb58bb01b212"}, + {file = "kiwisolver-1.4.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8ec27e296790903e2a3484a1d93a8324d0cd660394842e0cf2a3657060ad8edc"}, + {file = "kiwisolver-1.4.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9a59519a485ef60d17af17d93f70679a9e41372f3b777c27103b4ce13ece4e40"}, + {file = "kiwisolver-1.4.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d047def01426d15d5dde1fb9ba4e1d8ed7218069e73f00e0994d050913b2c3f4"}, + {file = "kiwisolver-1.4.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b9dbf4091b04e1037c9c75ca67e71a348d145c4fac7e1bb3de2e3fe6f13df150"}, + {file = "kiwisolver-1.4.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:872c1323f29f0822000e47acac9a0b6ed2af843a20b27c85fa0fdc906f98140f"}, + {file = "kiwisolver-1.4.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbfa70f983f8a2ea69a3f72c4f04aaa1a152a246c4933e9d5d9c30da95815a9b"}, + {file = "kiwisolver-1.4.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb55ba22ebebc537c2f13ffe3ad83ff1529be360ee36192bb61f330af3a785a5"}, + {file = "kiwisolver-1.4.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8188c27be2e590c519e747d885511204c3e01f2ec77006843a204af6d22ab9c"}, + {file = "kiwisolver-1.4.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:19fa65a9e422eeb3b1d50073eb54e2e8c83821632b735d9d6af0ce1fcf42adea"}, + {file = "kiwisolver-1.4.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:89748381d0251d829cffeec03a5c2710812dc133a085a4f52be0996c291e721a"}, + {file = "kiwisolver-1.4.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:78a708e8371675e73208fa61b0985031e911584ad377593226c5974eaf0c2e2e"}, + {file = "kiwisolver-1.4.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:159a2ed7a89b51fcb9766562626f7d9fc411ed5f8b365413bc5ea2d4a8b81a2c"}, + {file = "kiwisolver-1.4.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7d42dbf8229d4c09632e46c83aeaf1dce6125925088704421c57c483dc9db304"}, + {file = "kiwisolver-1.4.6-cp39-cp39-win32.whl", hash = "sha256:a05655320567b9c83b95c1b45339d01ce6373ff2e2d64f643fee2ba2432f035e"}, + {file = "kiwisolver-1.4.6-cp39-cp39-win_amd64.whl", hash = "sha256:67b72c9cbd78ec8666af40747b80bf309f160701084e7cf492a02464e470ee29"}, + {file = "kiwisolver-1.4.6-cp39-cp39-win_arm64.whl", hash = "sha256:ef452cf166271827939e907b23a1bda423329663a93a644d4a7be8f7bbb431ed"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c0d4811a031ff5194d9b45c15090d674cbf9890461a5028c4475f7b3202a5b1d"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:3aa8e43fbc847c26e17e50befac4de2336e223093263aa5b66c9c2030697b911"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d9a5af0c3cad547b59a2605d1af95c79c69c6a3aaf908be9677094ca6ba6dfa"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:43e9bc95d7e9e6f7975f2f481db40738796ea718bf55e22c32eb8e242ed418fc"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b474a369ebe8c2cd02df20997b94cd566edc708f38dce18e66385766dcef5f3c"}, + {file = "kiwisolver-1.4.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:33422cbf4ea20cd42945a7ad6b04bc50da9630a5b42854e139944ffde3ba926f"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e033139b0a5981e30c1518b97ae4b20b4172e82ed49f09180d02640bde0ae831"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:261ca5e3a0b3fd3f6bf794122e0f80c76f5b5bb8055508a9d8a8869b5e7e8bef"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acdb63f64219a374f7f9bb6c560a435545511364b24757819332f86da03894b9"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c14338ac087b9a8db1db1b7d74ff91c0a2b1c93f6f1ab4942af15f1938449acf"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a40af4800335cab9dfc3b8cb300384ef14e7740f21142c66d7b3f57228c4a290"}, + {file = "kiwisolver-1.4.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:dcb6a2bade6292f2b5b19225a4330af49f855edeed6e3c17240df905696a1494"}, + {file = "kiwisolver-1.4.6.tar.gz", hash = "sha256:3cda29d601445e6aa11f80d90a9b8c2ae501650c55d7ad29829bd44499c9e7e0"}, ] [[package]] @@ -4708,4 +4697,4 @@ geopandas = ["geopandas", "pandas", "shapely"] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "b2e69dc58b8ee9a39556d9da431785f7ecd68ce6522352172ff0ccd84f6016e8" +content-hash = "3a65b35899bfcfcbe35da7e849e05d488fade0be66c56935c8051f41ec159e07" diff --git a/pyproject.toml b/pyproject.toml index df1ec38a..e89072b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,9 +34,9 @@ python = "^3.8" anywidget = "^0.9.0" # Minimum version for generic type hints traitlets = ">=5.10" -arro3-core = "^0.3.0-beta.2" -arro3-io = "^0.3.0-beta.2" -arro3-compute = "^0.3.0-beta.2" +arro3-core = ">=0.3.0" +arro3-io = ">=0.3.0" +arro3-compute = ">=0.3.0" ipywidgets = ">=7.6.0" numpy = ">=1.14" # The same version pin as geopandas From 48afd968ce54e2a382ac2b4c50bc3d2f0ac2a2ab Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Tue, 3 Sep 2024 13:21:48 -0400 Subject: [PATCH 6/6] check shapely --- tests/test_duckdb.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/test_duckdb.py b/tests/test_duckdb.py index 69c840d7..2b518694 100644 --- a/tests/test_duckdb.py +++ b/tests/test_duckdb.py @@ -18,6 +18,9 @@ def test_viz_geometry(): + # For WKB parsing + pytest.importorskip("shapely") + con = duckdb.connect() sql = f""" INSTALL spatial; @@ -31,6 +34,9 @@ def test_viz_geometry(): def test_viz_wkb_blob(): + # For WKB parsing + pytest.importorskip("shapely") + con = duckdb.connect() sql = f""" INSTALL spatial; @@ -79,6 +85,9 @@ def test_viz_bbox_2d(): def test_layer_geometry(): + # For WKB parsing + pytest.importorskip("shapely") + con = duckdb.connect() sql = f""" INSTALL spatial; @@ -92,6 +101,9 @@ def test_layer_geometry(): def test_layer_wkb_blob(): + # For WKB parsing + pytest.importorskip("shapely") + con = duckdb.connect() sql = f""" INSTALL spatial; @@ -174,6 +186,9 @@ def test_create_table_as(): def test_create_table_as_custom_con(): + # For WKB parsing + pytest.importorskip("shapely") + sql = f""" INSTALL spatial; LOAD spatial;