Skip to main content

Small janitorial helpers for Polars dataframes.

Project description

polars-janitor

Small janitorial helpers for Polars dataframes.

This project is inspired by R's janitor, but it is not a parity port. The aim is smaller: keep a few boring dataframe cleanup chores easy, predictable, and Polars-shaped.

Why this exists

Polars already has a strong API. Most cleanup work should stay plain Polars.

The rough spots this package tries to smooth out are the ones that show up around messy inputs: awkward column names from CSVs and spreadsheets, header rows hiding inside spreadsheet data, empty rows, all-null columns, constant columns, duplicate records by key, and quick schema checks before you combine frames. Those are janitorial jobs. They are not glamorous, but they happen often enough to deserve a small, sharp tool.

polars-janitor owes a lot to R's janitor and pyjanitor. Those projects made the case that small cleanup helpers are worth having. This package borrows that spirit, but keeps the API narrow and Polars-shaped.

The package does not register a dataframe namespace. Import it next to Polars:

import polars as pl
import polars_janitor as pj

Install

pip install polars-janitor

polars-janitor supports CPython 3.10 through 3.14 and Python Polars 1.29.0 and newer. Older Polars 1.x wheels do not expose the data exchange API this extension uses.

From a local checkout:

uv run --extra dev maturin develop --release

The Rust extension is built for the Python interpreter active in your environment. If you switch interpreters, for example from CPython 3.14 to CPython 3.13, rebuild it. The compiled _rust.*.pyd on Windows, or _rust.*.so on Linux and macOS, is not portable across Python versions.

Python usage

Clean column names

Use clean_names when you already have a DataFrame or LazyFrame.

df = pl.DataFrame(
    {
        "Customer ID": [1, 2],
        "% Complete": [0.5, 1.0],
        "OrderID": ["A001", "A002"],
    }
)

cleaned = pj.clean_names(df)

print(cleaned.columns)
# ["customer_id", "percent_complete", "order_id"]

clean_names also works on LazyFrame. It uses the static schema, so it does not need to collect the data.

lazy = pj.clean_names(df.lazy())
result = lazy.collect()

Use make_clean_names when you only need names back.

names = pj.make_clean_names(
    ["Customer ID", "Customer ID", "% Complete", "Mötley Crüe", "", None, "1st Sale"]
)

print(names)
[
    "customer_id",
    "customer_id_2",
    "percent_complete",
    "motley_crue",
    "x",
    "x_2",
    "x_1_st_sale",
]

Supported case styles are snake, camel, pascal, and constant.

pj.make_clean_names(["Customer ID", "% Complete"], case="camel")
# ["customerId", "percentComplete"]

pj.make_clean_names(["Customer ID", "% Complete"], case="constant")
# ["CUSTOMER_ID", "PERCENT_COMPLETE"]

Name cleaning is deterministic. It handles duplicate names, empty names, whitespace, symbols, mixed casing, common diacritics, and Python None. Other Python objects are converted with str(...).

Promote spreadsheet rows to names

Spreadsheet exports often put notes above the real header row. Use find_header to locate the first row where every cell is present and non-blank, then row_to_names to promote that row to cleaned column names.

raw = pl.DataFrame(
    {
        "column_1": [None, "Customer ID", "101", "101", "102"],
        "column_2": ["notes", "Order Date", "2026-01-01", "2026-01-01", "2026-01-02"],
        "column_3": ["", "% Complete", "0.5", "0.75", "1.0"],
    }
)

header = pj.find_header(raw)
cleaned = pj.row_to_names(raw, header)

print(header)
# 1

print(cleaned.columns)
# ["customer_id", "order_date", "percent_complete"]

row_to_names uses 0-based row numbers, like Python indexing. If you omit the row, it calls find_header for you.

cleaned = pj.row_to_names(raw)

You can also search for a known marker in one column.

pj.find_header(raw, value="Customer ID", column="column_1")
# 1

find_header and row_to_names are eager-only because they need to inspect values.

Remove empty rows and columns

Use remove_empty to drop rows where every selected column is null, columns where every value is null, or both.

df = pl.DataFrame(
    {
        "a": [None, None, 1],
        "b": [None, None, None],
        "c": ["x", None, "z"],
    }
)

pj.remove_empty(df, axis="rows")
pj.remove_empty(df, axis="cols")
pj.remove_empty(df, axis="both")

You can limit the check to a subset of columns.

pj.remove_empty(df, axis="rows", subset=["a", "c"])

Lazy support is intentionally smaller here. LazyFrame supports axis="rows" because the schema does not change. axis="cols" and axis="both" are eager-only because Polars would need to inspect the data before knowing which columns still exist.

Remove constant columns

Use remove_constant to drop columns with one distinct value.

df = pl.DataFrame(
    {
        "constant": [1, 1, 1],
        "with_null": [1, None, 1],
        "varied": [1, 2, 1],
        "nulls": [None, None, None],
    }
)

pj.remove_constant(df)

By default, nulls count as a value. In the example above, with_null stays because it contains both 1 and null.

If you want nulls ignored during the constant check, pass ignore_nulls=True.

pj.remove_constant(df, ignore_nulls=True)

remove_constant is eager-only. Dropping constant columns from a LazyFrame would make the output schema depend on the data.

Get duplicate records

Use get_dupes to return every row whose key appears more than once.

df = pl.DataFrame(
    {
        "id": [1, 1, 2, 3, 3, 3],
        "value": ["a", "b", "c", "d", "e", "f"],
    }
)

dupes = pj.get_dupes(df, keys="id")
print(dupes)

The result includes a duplicate_count column by default.

shape: (5, 3)
┌─────┬───────┬─────────────────┐
│ id  ┆ value ┆ duplicate_count │
│ --- ┆ ---   ┆ ---             │
│ i64 ┆ str   ┆ u32             │
╞═════╪═══════╪═════════════════╡
│ 1   ┆ a     ┆ 2               │
│ 1   ┆ b     ┆ 2               │
│ 3   ┆ d     ┆ 3               │
│ 3   ┆ e     ┆ 3               │
│ 3   ┆ f     ┆ 3               │
└─────┴───────┴─────────────────┘

You can pass more than one key.

orders = pl.DataFrame(
    {
        "customer_id": [101, 101, 101, 102],
        "date": ["2026-01-01", "2026-01-01", "2026-01-02", "2026-01-01"],
        "amount": [10.0, 12.0, 9.0, 7.0],
    }
)

pj.get_dupes(orders, keys=["customer_id", "date"])

You can also omit the count column.

pj.get_dupes(df, keys="id", include_count=False)

get_dupes works with eager and lazy frames.

Compare frame schemas

Use compare_df_cols when you want a small schema report before joining, concatenating, or handing frames to another pipeline.

left = pl.DataFrame({"id": [1], "amount": [10.0], "status": ["new"]})
right = pl.DataFrame({"id": [2], "amount": ["10.0"], "created_at": ["2026-01-01"]})

comparison = pj.compare_df_cols({"left": left, "right": right.lazy()})
print(comparison)
shape: (4, 3)
┌─────────────┬─────────┬────────┐
│ column_name ┆ left    ┆ right  │
│ ---         ┆ ---     ┆ ---    │
│ str         ┆ str     ┆ str    │
╞═════════════╪═════════╪════════╡
│ id          ┆ Int64   ┆ Int64  │
│ amount      ┆ Float64 ┆ String │
│ status      ┆ String  ┆ null   │
│ created_at  ┆ null    ┆ String │
└─────────────┴─────────┴────────┘

Filter to only matches or mismatches with return_.

pj.compare_df_cols({"left": left, "right": right}, return_="mismatch")

Use compare_df_cols_same when you only need a boolean.

pj.compare_df_cols_same({"left": left, "right": right})
# False

Schema comparison supports eager and lazy frames. It uses lazy schemas and does not collect lazy data.

Example

Run the small messy-dataframe example from a checkout:

uv run --extra dev python examples\messy_dataframe.py

The example promotes a spreadsheet header row, cleans names, removes empty rows and columns, drops constant columns, returns duplicate customer records, and compares schemas.

What this is not

This is not a dataframe namespace package. There is no df.janitor.clean_names() registration on import.

This package also leaves out helpers that Polars already handles clearly:

  • rounding
  • string concatenation
  • value counts
  • pivot and crosstab wrappers
  • paste-style helpers

It also leaves out the more R-specific janitor surface:

  • tabyl
  • adorn_*
  • statistical tests
  • date parsing helpers

Those may be useful in R, but in Polars they either duplicate existing APIs or push the package toward a grab bag. The package should stay small enough that every public function earns its place.

Known limits

LazyFrame support is deliberately conservative. clean_names, remove_empty(..., axis="rows"), get_dupes, compare_df_cols, and compare_df_cols_same can work from lazy schemas or build lazy plans without collecting data. Helpers that need to inspect values are eager-only: find_header, row_to_names, remove_constant, and remove_empty(..., axis="cols" | "both").

The package supports CPython 3.10 through 3.14 and Python Polars 1.29.0 and newer. Compatibility tests run against that lower bound and the current lockfile version.

The project favors broad Python Polars compatibility over direct Rust deserialization of Python lazy plans. Most eager frame helpers cross through pyo3-polars; lazy frames keep their plans in Python Polars, with Rust deciding what public Polars plan to build. clean_names is a little different: Rust cleans the names, then Polars' public rename API applies them.

The compiled extension is CPython-version-specific. If import polars_janitor fails after changing Python versions, rebuild with maturin develop --release or reinstall from the wheel for that interpreter.

Benchmarks

These are local medians from this Windows x64 machine using CPython 3.13.5, Polars 1.40.1, pyjanitor 0.32.23 with pandas 3.0.3, and R 4.6.0 with janitor 2.2.1. Setup is outside the timed loop. Treat them as directional, not as a universal performance claim or a dunk contest.

The R comparison uses base R data.frames because janitor is a data.frame/tibble package. pyjanitor has Polars methods for clean_names and row_to_names, so those are shown separately. Its compare_df_cols helper is pandas-only in the tested version.

Task Size polars-janitor pyjanitor/Polars pyjanitor/pandas R janitor
clean_names 10,000 columns 14.25 ms 159.68 ms 38.27 ms 5030.00 ms
compare_df_cols 5,000 columns 15.53 ms n/a 277.58 ms 70.00 ms
row_to_names + clean_names 2,000 columns 8.39 ms 32.45 ms 44.29 ms 950.00 ms

Run the same benchmark from a checkout:

uv run --extra dev --with pandas --with pyjanitor python benchmarks\benchmark_competitors.py

If R is installed and the janitor package is available to that R installation, the script includes the R column. Otherwise it prints the Python comparisons.

Rust implementation

The public package is Python. The cleanup logic lives in Rust, with a thin Python layer where using Polars' own public API is faster or more compatible.

The Rust code is split into three modules:

  • names: name normalization, case conversion, Unicode cleanup, and duplicate suffixing
  • frame: eager Polars dataframe operations
  • python: PyO3 bindings, argument parsing, LazyFrame plan construction, and error mapping

This is not an expression plugin. These functions operate on schemas or whole frames, not on a single expression inside a query.

Generated build files are not source. Local development may create _rust.*.pyd, _rust.*.so, .pdb, __pycache__, .venv, dist/, and target/; the project ignores those.

Development

Build the extension into the local virtual environment:

uv run --extra dev maturin develop --release

Run the checks:

cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
ruff check .
uv run --extra dev pytest

Run the name-cleaning benchmark smoke test:

uv run --extra dev python benchmarks\benchmark_names.py

Run the competitor benchmark:

uv run --extra dev --with pandas --with pyjanitor python benchmarks\benchmark_competitors.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polars_janitor-0.1.1.tar.gz (72.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

polars_janitor-0.1.1-cp314-cp314-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.14Windows x86-64

polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

polars_janitor-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (12.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

polars_janitor-0.1.1-cp314-cp314-macosx_10_12_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

polars_janitor-0.1.1-cp313-cp313-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.13Windows x86-64

polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

polars_janitor-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (12.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

polars_janitor-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

polars_janitor-0.1.1-cp312-cp312-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.12Windows x86-64

polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

polars_janitor-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (12.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

polars_janitor-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

polars_janitor-0.1.1-cp311-cp311-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.11Windows x86-64

polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

polars_janitor-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (12.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

polars_janitor-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

polars_janitor-0.1.1-cp310-cp310-win_amd64.whl (11.8 MB view details)

Uploaded CPython 3.10Windows x86-64

polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

polars_janitor-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (12.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

polars_janitor-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file polars_janitor-0.1.1.tar.gz.

File metadata

  • Download URL: polars_janitor-0.1.1.tar.gz
  • Upload date:
  • Size: 72.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for polars_janitor-0.1.1.tar.gz
Algorithm Hash digest
SHA256 96bb71523727a5f9142518396093173dc5baf1726f950b3a379123ff96d56951
MD5 b89c5365260a8440f6fd44f1d506935d
BLAKE2b-256 4b1f482b8589695b795feb65152864540dc91d474ceee9d1bad1367a847a8342

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1.tar.gz:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b9878d68e004f1f79101a1d0ba4f629e49235638e51910de9d4dcaddd3fefa1e
MD5 525747a3809f6a1e0ad64103658df94c
BLAKE2b-256 2994a77bf6ede7a4c34427c7c79d04d090a82d79526f5893524c85510f8d2e0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp314-cp314-win_amd64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa52ef5e41310e9ab107e55ecca9c9006cd8b221bcaf65b3065e3c3bc5cc3088
MD5 004736c30d0a2505e2655d45adec75f0
BLAKE2b-256 0521ed3cab16bda7d45af9bad9343d873d1ad6adf523289f1406a51f055dbf42

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2a295cc52f40d444df040090b53aa8b0e941c9cac079909980b2224f5ffe50b
MD5 bc7dee00e2c5d13d00cf895fd0fbd1a5
BLAKE2b-256 fa5b7cd69675c74332b56cca2894dfb675a867baaeae374a752834e9770172e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35e806154da4c8681695f06af33791a089e3b49f55c860ac5afd2643f43bfbbc
MD5 3eacf27195618dec31b14a152003d27f
BLAKE2b-256 c7db34ded19cdb42d50b185bb46a1bc00ff202157fcd8c25390ce6be6437a7f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 322d715356a10df23fdc9e6a1a6ea0103fb33c3d4429969ce6b5ed9903eb50dd
MD5 c7a82043e6e7b213a566957b861b0f63
BLAKE2b-256 d257cbd49767e100dbf60cf9ccefc6eef72348d55fa085c0f01a43bf52d5e787

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2264901e64521d9677bfc5b79f5806706df7dcf3080c90b62c2cd287f7ccfc96
MD5 e783a8deda0d8b05cfbce7f2ee28dc78
BLAKE2b-256 66ffbd5d6f54dbfbd238d41ec1e1b53f71c58265df480bbdfee64dded06e1d9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 528134f85f473e8c4a5a0b496cd3bf301b16d700184a487381ba4c8a7920b4fe
MD5 fd7bcbd0393bc7291f71d8154c5ea049
BLAKE2b-256 95457bc888a2fdd8ef81d58eb2cae3247622cb5d66cef9bca885f7fe5626a2b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 298b58a12dc1495750cab448c035036a31652c032f491b86a6a15c5ae57f144c
MD5 801a053f5a62798e2e081e14beb40e01
BLAKE2b-256 dfdeb62f8f8d4576d37ecfc16ad7bec55d5c0d5e50b02b0ad5cd8fd6298cf1fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cc07f06a700ae87db84c7e22dcf64acaad35c602c11cc23dd7d25123d87db14
MD5 1c62a6aafae1eb72ec58723776e41767
BLAKE2b-256 0177b2d51c3ccee1eac09a7b2ad61a5c0e4714ebd4c25a475ff3397b869d5f01

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d914c1171fae733c400dfc3272b73c3bf6301bab035b64c86e3072eb8677777e
MD5 08c6f19dc019088b61c9e45ef32b9947
BLAKE2b-256 d4a4b85946a05b738bcccc471071ea3a34e2b952680e24960e81237fc7e823b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7043e8ffa5573adff5e70fe8dd78ec7972b7ac56ba01c0793b6fe041edae97ad
MD5 75a9459809814722aec4063ddbae3246
BLAKE2b-256 f1c84d42a97c0670e7109e60ca2eab96ab4c90dbeb02dbec750fa2f847fba677

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a3db9d9ed7396eede054169560992570df5d45c98d20d10bba8850cfe6e7a76
MD5 9237f02158053f7a790e0be4c1b547bc
BLAKE2b-256 7d9f747329d670d5242355989a3f1d01c7a18644b90f414a57864b66c76c594a

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6ee5823bcd4deaf021aad77aed32ecc7aaca4817e1fe552133fbfe4a8da9219
MD5 99daabd055d730fd158c7f9e1b82ba28
BLAKE2b-256 7e353c57743a98b9bd1e5fdbf11c1efbd9a72d5a7189fa34203748c6074a8653

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94706c2a0388eb7791d8b72779c29cfd5fc35c2d09829455962a30cfb5e0b0f3
MD5 904e92a2955695da10fa4d3b81f0ce6b
BLAKE2b-256 e8976774503e63ae039472afe907a40c99e34da40288bb648d00196847abb5ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2bd01a050e94079755a1fc0db183addbb80430cacbbdabbae8350d650b2a06cc
MD5 9f65c61a1b399a38a6b13f64fb8897d2
BLAKE2b-256 017e53141895fa6e1fc5567377d7820b742301196df2330fec4234937587559b

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8926931671d8ef5730e63806729ad123dc033561b29009a1d1a3ea925c0a8360
MD5 2c31f74102fdcb0120259a2dfdf7217f
BLAKE2b-256 ac3d68b248d26c92a8ce7354f3398327dc26551e94d57097f091f70ec71325f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c956f21574c9cf83e299854fc04248d32cc09b97f7f672a976f3b56dc986e82e
MD5 584fe7e209bb5368ac5a78b007d2f22c
BLAKE2b-256 e89f14dc726b467a80a8e3a4d74c3fd0f6de4aae0d8bb72a51ab5e7f65e33c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 187820ed0bb6f4e3f68207e2fbd03f5011d65c294880f040f12f0f203cf77115
MD5 1e58e8238586ac2914df25e49d6e72cc
BLAKE2b-256 6619934201a3c47bf2ae78bda24f3ca2b1fa7e50fdabe37447a8f15b46e9afe6

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d799796986504b88b8d989fc24cbe1b7d145f5528d2486e60aca60eb4d9cc1e
MD5 966ce9f4ebf0d82880c9d7429b9b77d9
BLAKE2b-256 c297249acbcc474557334644a561a25a9c826c4dd61ab96f2077898250d9313c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1fe943b018566a40f22a34238bcade87a930df03a6a823bf0c513fa053bd9b27
MD5 6902c7646374c5095ba970a580adce92
BLAKE2b-256 f35a5448b38ad86f8010e99b3ba0f251767301ac2a51748b1c5cf5d83c3cec46

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 35d90334d151cf410ea17616b9e5f6f172e579073acdd6bdc3c22b56c0a25cbc
MD5 f6a6745e83c8f66906fb1bfe6f9c01c9
BLAKE2b-256 a5c7c1e4fcd8b93f44208c53cfa09e4f9fd2be13dd4d276d15102d83a125cd30

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff16b2359812bbb5198872ff2f4346350d99d473695f335af60087431f3534ff
MD5 31d1af669fa034b5ec41203ca2f71db4
BLAKE2b-256 899cc429c8ba2338f6a930cc6684ea211a269772b3fd5a2fce04c6978615a22c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b89d295eb7ac43a57aefc6eca332620bd60edaefc491bb9199fe7b9d1efb0c0f
MD5 fe28644e3a99e3fc0b5e9c42f965b8e3
BLAKE2b-256 4502aa792cde32a3f5bf74528afe31016cdf4b2af5d62711016544df72ccfa97

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cea67a7527bac25795295b7354e1718c8f7e71a1ad5213af5234bc8d10ee5d0
MD5 ff095e81d1f35a1a6c9d6009e7e27f72
BLAKE2b-256 a852bc9312ec8350a9b0ff704e2588d9ecb64a0e75dee1dcee54da8975141765

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_janitor-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_janitor-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4a7694f1726f6d08679abe971127fdc9de27000bd56e7fe295ccbd67f25d972c
MD5 d6bbd9c0cf8b5422a70a8d4e46297bf6
BLAKE2b-256 4ab404d8bcffc8ce4552fe787f3672747517c492a6257e882249bc573b6f3612

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_janitor-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on vovavili/polars_janitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page