Skip to main content

interpolars

interpolars is a small Polars plugin that does N-dimensional interpolation from a source "grid" (your DataFrame) onto an explicit target DataFrame, with optional spherical-geometry-aware geospatial interpolation for lat/lon data.

It supports:

  • 1D/2D/3D/... multilinear interpolation (interpolate_nd)
  • Geospatial interpolation on lat/lon coordinates with IDL wrapping, pole handling, and scattered-data methods (interpolate_geospatial)
  • Multiple value columns in one call
  • Target passthrough columns (e.g. labels/metadata)
  • Grouped interpolation over "extra" coordinate dims (e.g. group by time and interpolate over latitude/longitude for each time slice)
  • Non-float coordinate dtypes such as Date and Duration (they are cast internally for interpolation math; group keys preserve dtype in output)
  • Configurable NaN/Null handling (handle_missing): error, drop, fill with a constant, or nearest-neighbor fill
  • Boundary extrapolation (extrapolate): linearly project beyond the source grid instead of clamping

Installation

This repo is built with maturin and managed with uv.

  • As a local editable/dev install (recommended for hacking on it):
cd /path/to/interpolars
uv sync --dev
  • Run tests:
cd /path/to/interpolars
uv run pytest

Notes:

  • Python: >= 3.12 (see pyproject.toml)
  • Polars: pinned to polars==1.37.1

The API

Two public functions are available:

  • interpolate_nd -- general N-dimensional interpolation on rectilinear grids
  • interpolate_geospatial -- latitude/longitude interpolation with spherical-geometry awareness (IDL wrapping, pole handling, scattered-data methods)

Both return a Polars expression (pl.Expr).


interpolate_nd

from interpolars import interpolate_nd

expr = interpolate_nd(
    expr_cols_or_exprs=["x", "y"],            # source coordinate columns/exprs
    value_cols_or_exprs=["value_a", "value_b"],  # source value columns/exprs
    interp_target=target_df,                  # DataFrame with target coordinates (+ metadata)
    handle_missing="error",                   # "error" | "drop" | "fill" | "nearest"
    fill_value=None,                          # required when handle_missing="fill"
    extrapolate=False,                        # True → linear extrapolation at boundaries
)

You typically use it inside LazyFrame.select:

import polars as pl
from interpolars import interpolate_nd

out = (
    source_df.lazy()
    .select(interpolate_nd(["x", "y"], ["value"], target_df))
    .collect()
)

Output shape and how to consume it

interpolate_nd(...) produces a single struct column named "interpolated".

That struct contains, in order:

  • all columns from interp_target (including metadata like label)
  • any "extra/group" coordinate dims from the source (see next section)
  • all interpolated value fields

To "flatten" the result into normal columns, use unnest:

flat = (
    source_df.lazy()
    .select(interpolate_nd(["x", "y"], ["value"], target_df))
    .unnest("interpolated")
    .collect()
)

Or access fields directly:

only_value = (
    source_df.lazy()
    .select(interpolate_nd(["x"], ["value"], target_df).struct.field("value").alias("value"))
    .collect()
)

Grouped interpolation over extra coordinate dims (e.g. time slices)

If the source coordinate columns include fields that do not exist in interp_target, those fields are treated as grouping dimensions.

Example:

  • source coords: ["latitude", "longitude", "time"]
  • target df columns: ["latitude", "longitude", "label"]
  • values: ["2m_temp", "precipitation"]

Then time is a group key:

  1. The source rows are grouped by unique time
  2. Interpolation runs over (latitude, longitude) within each time group
  3. Results are concatenated, producing len(target_df) * n_times rows
import polars as pl
from interpolars import interpolate_nd

target = pl.DataFrame(
    {
        "latitude": [0.25, 0.75],
        "longitude": [0.50, 0.25],
        "label": ["a", "b"],
    }
)

out = (
    source_df.lazy()
    .select(
        interpolate_nd(
            ["latitude", "longitude", "time"],
            ["2m_temp", "precipitation"],
            target,
        )
    )
    .unnest("interpolated")
    .collect()
)

Output order is deterministic:

  • target rows are repeated per group
  • groups are ordered by ascending group key (e.g. ascending time)

Date and Duration coordinates

Coordinate columns can be pl.Date, pl.Datetime, and pl.Duration (and other numeric-like dtypes). The plugin will cast coordinates internally for interpolation computations.

Example (Date as an interpolation axis):

from datetime import date
import polars as pl
from interpolars import interpolate_nd

source = pl.DataFrame(
    {
        "d": pl.Series("d", [date(2020, 1, 1), date(2020, 1, 3)], dtype=pl.Date),
        "value": [0.0, 2.0],
    }
)
target = pl.DataFrame(
    {
        "d": pl.Series("d", [date(2020, 1, 2)], dtype=pl.Date),
        "label": ["mid"],
    }
)

out = (
    source.lazy()
    .select(interpolate_nd(["d"], ["value"], target))
    .unnest("interpolated")
    .collect()
)

Example (Duration as an interpolation axis):

import polars as pl
from interpolars import interpolate_nd

source = pl.DataFrame(
    {
        "dt": pl.Series("dt", [0, 10_000], dtype=pl.Duration("ms")),
        "value": [0.0, 10.0],
    }
)
target = pl.DataFrame(
    {
        "dt": pl.Series("dt", [5_000], dtype=pl.Duration("ms")),
        "label": ["half"],
    }
)

out = (
    source.lazy()
    .select(interpolate_nd(["dt"], ["value"], target))
    .unnest("interpolated")
    .collect()
)

Handling NaN and Null values (handle_missing)

By default, any NaN or Null in source coordinates or values will raise an error. You can change this with the handle_missing parameter:

Mode Coords with NaN/Null Values with NaN/Null
"error" (default) Error Error
"drop" Drop row Drop row
"fill" Drop row Replace with fill_value
"nearest" Drop row Replace with nearest valid grid point's value
  • Rows with NaN/Null in coordinate columns are always dropped (except in "error" mode, which raises). A grid point with no location cannot be meaningfully filled.
  • fill_value is required when handle_missing="fill" and ignored otherwise.
  • "nearest" finds the closest valid grid point by Euclidean distance in coordinate space.
# Drop any source rows that have NaN or Null in coords or values
out = (
    source_df.lazy()
    .select(interpolate_nd(["x", "y"], ["value"], target_df, handle_missing="drop"))
    .collect()
)

# Replace NaN/Null values with 0.0 (NaN coords are dropped)
out = (
    source_df.lazy()
    .select(
        interpolate_nd(
            ["x", "y"], ["value"], target_df,
            handle_missing="fill", fill_value=0.0,
        )
    )
    .collect()
)

# Replace NaN/Null values with the nearest valid grid point's value
out = (
    source_df.lazy()
    .select(interpolate_nd(["x", "y"], ["value"], target_df, handle_missing="nearest"))
    .collect()
)

Note: "drop" can cause "missing corner point" errors if the remaining grid is no longer a full cartesian product after removing rows. "fill" and "nearest" preserve the grid structure.


Boundary extrapolation (extrapolate)

By default, target points outside the source grid are clamped to the nearest boundary value. Set extrapolate=True to linearly project from the two nearest grid points along each axis instead:

import polars as pl
from interpolars import interpolate_nd

source = pl.DataFrame({"x": [0.0, 1.0, 2.0], "value": [0.0, 10.0, 20.0]})

# x=3.0 is outside [0, 2]; extrapolate from slope of (1,10)→(2,20)
target = pl.DataFrame({"x": [3.0]})

out = (
    source.lazy()
    .select(interpolate_nd(["x"], ["value"], target, extrapolate=True))
    .unnest("interpolated")
    .collect()
)
# value = 30.0  (linear projection)

Without extrapolate=True, the same query would clamp to the boundary and return 20.0.

handle_missing and extrapolate compose freely -- for example, handle_missing="nearest", extrapolate=True fills NaN values with the nearest neighbor and extrapolates at boundaries.


interpolate_geospatial

For latitude/longitude data, interpolate_geospatial provides spherical-geometry-aware interpolation with automatic International Date Line wrapping, pole averaging, and support for both gridded and scattered source data.

from interpolars import interpolate_geospatial

expr = interpolate_geospatial(
    source_lat="lat",                      # source latitude column (degrees)
    source_lon="lon",                      # source longitude column (degrees)
    value_cols_or_exprs=["temperature"],   # value column(s) to interpolate
    interp_target=target_df,               # DataFrame with target lat/lon (+ metadata)
    handle_missing="error",                # "error" | "drop" | "fill" | "nearest"
    fill_value=None,                       # required when handle_missing="fill"
    extrapolate=False,                     # True → extrapolate at boundaries
    method="tensor_product",               # "tensor_product" | "slerp" | "idw" | "rbf"
    # keyword-only parameters:
    tensor_method="linear",                # 1-D sub-method for tensor_product
    power=2.0,                             # distance exponent for idw
    k_neighbors=0,                         # nearest neighbors for idw/rbf (0 = all for idw)
    rbf_kernel="thin_plate_spline",        # kernel for rbf
    rbf_epsilon=None,                      # shape param for rbf (None = auto)
    lon_range="auto",                      # "signed_180" | "unsigned_360" | "auto"
)

Usage follows the same pattern as interpolate_nd:

import polars as pl
from interpolars import interpolate_geospatial

out = (
    source_df.lazy()
    .select(interpolate_geospatial("lat", "lon", ["temperature"], target_df))
    .unnest("interpolated")
    .collect()
)

Geospatial interpolation methods

Four methods are available, selected via the method parameter:

Method Input requirement Description
"tensor_product" (default) Rectilinear grid Tensor-product interpolation with longitude wrapping, pole averaging, and ghost points for periodic grids. Supports all 1-D sub-methods via tensor_method.
"slerp" Rectilinear grid Bilinear interpolation using SLERP-derived angular fraction weights along parallels. More accurate than standard bilinear near the poles and for large grid cells. Linear only.
"idw" Any (including scattered) Inverse Distance Weighting using Haversine (great-circle) distance. Tune via power and k_neighbors.
"rbf" Any (including scattered) Local Radial Basis Function interpolation using Haversine distance. Solves a k x k linear system per target point. Tune via rbf_kernel, rbf_epsilon, and k_neighbors.

Tensor-product sub-methods (tensor_method)

When method="tensor_product", the tensor_method parameter selects the 1-D interpolation method applied along each axis:

"linear" (default), "nearest", "cubic", "pchip", "akima", "makima"

IDW tuning

  • power (default 2.0): distance exponent. Higher values give more weight to nearby points.
  • k_neighbors (default 0): number of nearest source points to use. 0 means use all.

RBF tuning

  • rbf_kernel: "linear", "thin_plate_spline" (default), "cubic", "gaussian", "multiquadric", "inverse_multiquadric"
  • rbf_epsilon: shape parameter (None = auto-detect from median pairwise distance)
  • k_neighbors: number of nearest neighbors for the local solve (default 20 for RBF)

Longitude convention (lon_range)

The lon_range parameter controls how longitude values are normalized:

Mode Range When to use
"signed_180" [-180, 180) Source data uses negative longitudes for the Western hemisphere
"unsigned_360" [0, 360) Source data uses 0-360 convention
"auto" (default) Detected from source Uses signed_180 if any source longitude is negative, otherwise unsigned_360
# Explicit signed_180: source data with 350° is normalized to -10°
result = (
    source_df.lazy()
    .select(
        interpolate_geospatial(
            "lat", "lon", ["v"], target_df,
            lon_range="signed_180",
        )
    )
    .unnest("interpolated")
    .collect()
)

Important constraints / behavior

  • NaN/Null handling is configurable via handle_missing (see above). The default ("error") raises on any NaN or Null.
  • Grid requirement: interpolate_nd, tensor_product, and slerp require a full cartesian grid (per group) -- every corner must exist. idw and rbf work on arbitrary scattered points.
  • Out-of-bounds targets: clamped by default; set extrapolate=True for linear extrapolation.
  • Duplicate names: value field names cannot collide with interp_target columns (and group fields cannot collide either); collisions error.

Project layout

  • src/interpolars/__init__.py: Python API wrapper (interpolate_nd + interpolate_geospatial)
  • src/expressions.rs: the Polars expression implementation (Rust)
  • tests/: pytest suite with examples (including grouped, Date/Duration, and geospatial coverage)

Metadata

Release files for interpolars 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for interpolars 2.2.0
File Size Uploaded Provenance Actions
interpolars-2.2.0.tar.gz 52.7 kB Without provenance Details for interpolars-2.2.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for interpolars 2.2.0
File Actions
interpolars-2.2.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details for interpolars-2.2.0-cp314-cp314t-win_arm64.whl
interpolars-2.2.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for interpolars-2.2.0-cp314-cp314t-win_amd64.whl
interpolars-2.2.0-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details for interpolars-2.2.0-cp314-cp314t-win32.whl
interpolars-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for interpolars-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
interpolars-2.2.0-cp314-cp314t-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 Details for interpolars-2.2.0-cp314-cp314t-musllinux_1_2_i686.whl
interpolars-2.2.0-cp314-cp314t-musllinux_1_2_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l Details for interpolars-2.2.0-cp314-cp314t-musllinux_1_2_armv7l.whl
interpolars-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details for interpolars-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
interpolars-2.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details for interpolars-2.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl
interpolars-2.2.0-cp314-cp314t-manylinux_2_28_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-32 Details for interpolars-2.2.0-cp314-cp314t-manylinux_2_28_i686.whl
interpolars-2.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details for interpolars-2.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl
interpolars-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for interpolars-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
interpolars-2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details for interpolars-2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl
interpolars-2.2.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details for interpolars-2.2.0-cp39-abi3-win_arm64.whl
interpolars-2.2.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for interpolars-2.2.0-cp39-abi3-win_amd64.whl
interpolars-2.2.0-cp39-abi3-win32.whl CPython 3.9 abi3 Windows x86-32 Details for interpolars-2.2.0-cp39-abi3-win32.whl
interpolars-2.2.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details for interpolars-2.2.0-cp39-abi3-musllinux_1_2_x86_64.whl
interpolars-2.2.0-cp39-abi3-musllinux_1_2_i686.whl CPython 3.9 abi3 Linux musl 1.2+ x86-32 Details for interpolars-2.2.0-cp39-abi3-musllinux_1_2_i686.whl
interpolars-2.2.0-cp39-abi3-musllinux_1_2_armv7l.whl CPython 3.9 abi3 Linux musl 1.2+ ARMv7l Details for interpolars-2.2.0-cp39-abi3-musllinux_1_2_armv7l.whl
interpolars-2.2.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details for interpolars-2.2.0-cp39-abi3-musllinux_1_2_aarch64.whl
interpolars-2.2.0-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details for interpolars-2.2.0-cp39-abi3-manylinux_2_28_x86_64.whl
interpolars-2.2.0-cp39-abi3-manylinux_2_28_i686.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-32 Details for interpolars-2.2.0-cp39-abi3-manylinux_2_28_i686.whl
interpolars-2.2.0-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details for interpolars-2.2.0-cp39-abi3-manylinux_2_28_aarch64.whl
interpolars-2.2.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for interpolars-2.2.0-cp39-abi3-macosx_11_0_arm64.whl
interpolars-2.2.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details for interpolars-2.2.0-cp39-abi3-macosx_10_12_x86_64.whl

Total release size: 148.0 MB

Release files / interpolars-2.2.0.tar.gz

Download URL interpolars-2.2.0.tar.gz
Size 52.7 kB
Tags Source
SHA-256 checksum
How to use checksums
90f79df8c782b6d2de351be4bdb56cfef8ddca47945659847841493a9d6e6f25
BLAKE2b-256 checksum
How to use checksums
f7eae124c1665cfb0ea11a9d755f6a6b941761848feabec3d54b52b91c0c2360
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-win_arm64.whl

Download URL interpolars-2.2.0-cp314-cp314t-win_arm64.whl
Size 5.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
8e9ac2b973be0fb42ed92a1423b87e2eeb3c44a4451f1f45eac596863021819c
BLAKE2b-256 checksum
How to use checksums
f627a5b0ca8adcdd0974ab617c711b85e19692618466e172dbd515e818cb2788
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-win_amd64.whl

Download URL interpolars-2.2.0-cp314-cp314t-win_amd64.whl
Size 5.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b17a6a64e2cc5b6fe838135d9afadb229fff1726d13ac16850ecaceb91e74530
BLAKE2b-256 checksum
How to use checksums
eae0f1c93355de5cf8ffd60f74f4bb7965e61f9dcc983a78b036b081913e8521
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-win32.whl

Download URL interpolars-2.2.0-cp314-cp314t-win32.whl
Size 4.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
8b0f0baadc5f1359e5b3663feb6f1b5309d68ca8ac3cdbcbbae879cc72c1c803
BLAKE2b-256 checksum
How to use checksums
bb9eed9dac5fa09f2a3fb3a86ed8d445872e2137a917b1c512f757d615bb6350
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL interpolars-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 6.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
258fcc7749581b27ddf6a7d76f37abaa86ef472c4add827c079b79e96a5656b0
BLAKE2b-256 checksum
How to use checksums
855081604e0703470655bace47cc7d777cc8b37d1fac64e682614588bf6c5d77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-musllinux_1_2_i686.whl

Download URL interpolars-2.2.0-cp314-cp314t-musllinux_1_2_i686.whl
Size 6.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
a1086368a7b3aec05c27e27ec09e3878d82e28076e4f7d23c2d228ae5d997689
BLAKE2b-256 checksum
How to use checksums
eb86d2d7f457e38c866a07c348339f3473ebb4dd775d96c0ca3dfc28c72b81d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-musllinux_1_2_armv7l.whl

Download URL interpolars-2.2.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Size 6.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
4bb547349b99c4683e915fd511f8f9037ee36915337aeb2f534c2b2f7d7e3823
BLAKE2b-256 checksum
How to use checksums
084aeeeb56d17b009cd928063d470f3020b26b0962b4106b07a6b458debab666
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL interpolars-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 6.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5233e786c222d02f0f2a752f6704c258b0bbdd2f0287149c2b9c589e4f159d83
BLAKE2b-256 checksum
How to use checksums
0b5a4727a2e7d2d21ab0a5834f2052175e9ed0db7b72d252570f493574ce5d88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL interpolars-2.2.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 7.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
354acae88a389e9be457b190c576e5c8c97e70df518271217f2aa3b7c0d65d5e
BLAKE2b-256 checksum
How to use checksums
6a836273cd2a17b6d26ec79fdbc825e77d5ec394ea282e516c118b9883012cc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-manylinux_2_28_i686.whl

Download URL interpolars-2.2.0-cp314-cp314t-manylinux_2_28_i686.whl
Size 7.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-32
SHA-256 checksum
How to use checksums
ff0b6ccb6f6616b96e53e4fb3be39fc2d923859bc7dd7fa54e3f96e06f154421
BLAKE2b-256 checksum
How to use checksums
b85a4e0174edc1182d35d974a96fd34e7ed7d96163b2efdf64aa010432152fb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL interpolars-2.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 6.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c80245e757a5dddd5c20e597011f82612d721f4626aba4da917f70237fb73877
BLAKE2b-256 checksum
How to use checksums
ed9e688b32450f2dfa666ed99bbe36f0252881da92bb6cf69a4b4ff97322e1f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL interpolars-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 5.7 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0b18bd28d3fc53fe653e033e40e924e4f55661190fe2b905d2076181a8856d74
BLAKE2b-256 checksum
How to use checksums
2da919a8043e6a8e78069c926302a393fd15ec3ba33c500f59be0c5ba6b92fcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL interpolars-2.2.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5a37ce7614228ff6423cf825ba6cd94fbca14310eb1cccc726e900325fdfa64f
BLAKE2b-256 checksum
How to use checksums
12bde17035cdea4fa918e3450a3212049fb2acc9a85ccb94120bc1c358408354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-win_arm64.whl

Download URL interpolars-2.2.0-cp39-abi3-win_arm64.whl
Size 5.0 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
f126f247dfac0d16a90c1cf3bf82e036af7719fed00c5b4013c60c43aff22d38
BLAKE2b-256 checksum
How to use checksums
7365acafd4ca86d42c4f8d215f73607fde2dd5e5b7e9a1ad5f2e1f13a3ae2daa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-win_amd64.whl

Download URL interpolars-2.2.0-cp39-abi3-win_amd64.whl
Size 5.6 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
196a7edaa2ca5144886d73c6ac55097c526d588d87617aa3070f33874e446ddd
BLAKE2b-256 checksum
How to use checksums
54f040f949a6c7f182f8aa3798b63ea0414b68f190ed96cf2451b8c51f544c20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-win32.whl

Download URL interpolars-2.2.0-cp39-abi3-win32.whl
Size 4.6 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
e69caccdb39ebd786355fcc590ea23fcacf81250e2e6a40aaef6405d04f92610
BLAKE2b-256 checksum
How to use checksums
a4994b402029441f89cc187c757974be52d6556cc3324bd18503bf06a0ae145b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL interpolars-2.2.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 6.9 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
0b090bba7b0de57cf8d798031c56d15579e4e05497a63af4c8836ca77fded25c
BLAKE2b-256 checksum
How to use checksums
a62a56a3b76128f0ffd98e2617a5e1b233b538fd173b99107e893d3470649ef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-musllinux_1_2_i686.whl

Download URL interpolars-2.2.0-cp39-abi3-musllinux_1_2_i686.whl
Size 6.9 MB
Tags CPython 3.9 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
fd94478e95bac8f56cb7641c9608e0c380c6d33e51aa37a8e92d390cf21a6603
BLAKE2b-256 checksum
How to use checksums
4384dfcce93ca2020b6fcc7db9a09179fd0d78cce376bf8918d6e5fc3ff7941f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL interpolars-2.2.0-cp39-abi3-musllinux_1_2_armv7l.whl
Size 6.6 MB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
9d0aff9644555c0fb925e4d62017852156e861fb91c75722fb62e7af4b0d83ca
BLAKE2b-256 checksum
How to use checksums
29590d7d2fa40fbc3270ca87add6ea855448879f318ab63c6924a47ad8bb4368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL interpolars-2.2.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 6.4 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
06c79ca87b5a883a8f88d3c66a2fab90598552382f90e506737ecfc447c6e280
BLAKE2b-256 checksum
How to use checksums
be558500cff174711d0fa71a0b8ea15e638598aed8e14a06cf1cb6d85d687bca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL interpolars-2.2.0-cp39-abi3-manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
4a1042445e45529619c11b442ac18be61acf3e4bb0ad129aa67f6a519fa4e0b7
BLAKE2b-256 checksum
How to use checksums
f635e420e7a2384e9e197be7a46c58b4b518209a634f081d01431f24ecd5e5da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-manylinux_2_28_i686.whl

Download URL interpolars-2.2.0-cp39-abi3-manylinux_2_28_i686.whl
Size 7.0 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-32 abi3
SHA-256 checksum
How to use checksums
43dbeda33a2275124f6d112ef33609ca3b80afdba10a3ad045d02d7c69980653
BLAKE2b-256 checksum
How to use checksums
9d3b341784540e5b1a89121411b940ab3995a201f2f4573f851c58a358d73df0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL interpolars-2.2.0-cp39-abi3-manylinux_2_28_aarch64.whl
Size 6.2 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
3e816a6cd3b4e218673b90c3b8200d715ab6187db70c49e89bb34f5c33828a66
BLAKE2b-256 checksum
How to use checksums
2ecc685d0dac20462365df3b5478fa4bce11597d8f3bf70ba812dc314059f63c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL interpolars-2.2.0-cp39-abi3-macosx_11_0_arm64.whl
Size 5.8 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a5542992c3b9ecd46078b74fb98ac2933fb1e01fae7d304e8f4ef415ea219608
BLAKE2b-256 checksum
How to use checksums
793217f2ffc71eab5e219d76cba6bf16d776a52520589446318d8d02a16d37e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / interpolars-2.2.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL interpolars-2.2.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 6.2 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f3337cec99eaaa72b84448101d3ddb3854ccc8bc3098dbcf09f7b45755d6102f
BLAKE2b-256 checksum
How to use checksums
beca6b1d2685d78587e3171a0ad7687047f38e51f361a6442fec415de3dcd515
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for interpolars 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page