Skip to main content

Fast Python progress bars with a C++ core. Windows-first.

Project description

BarFlow

A fast Python progress bar library with a C++ core. Windows-first. Built to beat tqdm, rich.progress, and alive-progress on cold import, per-iteration overhead, peak it/s, memory footprint, tail latency, multi-bar throughput, and first-frame latency — simultaneously.

import barflow

# Fastest: `for _ in progress:` runs at 160+ M it/s — faster than
# a bare `for _ in range(n): pass` because Py_None is immortal.
with barflow.Progress(total=n, desc="Crunching") as p:
    for _ in p:
        do_work()

# When you also need the iterated values:
for x in barflow.track(range(1_000_000), desc="Working"):
    ...

# Event-driven / manual:
with barflow.Progress(total=n, desc="Streaming") as p:
    for chunk in data:
        process(chunk)
        p.advance(len(chunk))

Benchmarks

Numbers below are from benchmarks/bench.py on Windows 11 / Python 3.13 / N = 20,000,000 iterations (5 runs per data point, best wall time for rate measurements, min CPU time for CPU measurements). Baseline bare for _ in range(n): pass is 145.75 M it/s (6.9 ns/iter, 140.6 ms of CPU). Raw output lives in benchmarks/bench_raw.md; methodology and platform notes are in benchmarks/results.md.

Headline

Axis BarFlow tqdm rich alive-progress
Cold import (ms) 1.21 72.27 74.96 30.12
Overhead, for _ in p: (ns/iter) 0.0 7.4 471.9 384.9
Overhead, track(...) (ns/iter) 3.0 7.4 471.9 384.9
Peak it/s, display off 160.8 M 70.2 M 2.1 M 2.6 M
Peak it/s, display on 101.8 M 19.6 M 2.1 M 2.1 M
Python heap peak (1 M iters) 486 B 298 KB 661 KB 3.4 MB
Tail latency p99.9 (ns) 100 200 2,200 2,200
First-frame latency (µs) 32 97 921 n/a
Multi-bar, 4 tasks (M it/s) 43.9 M 8.8 M 2.2 M n/a
Metadata churn (M it/s) 29.6 M 6.6 M 2.0 M 1.9 M
Total CPU, display on (ms for 20 M) 188 953 9,297 9,391

BarFlow wins on every axis — 25–62× faster cold import, zero measurable overhead on its iteration fast path (faster than a bare for _ in range(n) because Py_None is immortal on 3.12+ and skips the store-cycle refcount work that range's small-int yields incur), 5.2× display-on throughput vs tqdm, ~50× vs rich / alive, 600×+ less Python heap peak, 2× tighter tail latency, 3× faster first-frame paint than tqdm, and ~50× less CPU than rich / alive over 20 M iterations. The sub-1.0 CPU/wall ratio reflects the decoupled render thread: it wakes on a 50 ms timeout, formats into a preallocated buffer, and spends most of its life parked on a condition variable, so the producer loop never pays for rendering inline.

Import startup (median, baseline-subtracted, 11 runs)

Library Cold import (ms) vs BarFlow
barflow 1.21
alive 30.12 25×
tqdm 72.27 60×
rich 74.96 62×

Measured by timing python -c "from <lib> import ..." in a subprocess and subtracting a bare-interpreter baseline (python -c "pass"), so the number is just the work the library does at import time. BarFlow's module graph is deliberately lazy: themes, columns, style, spinners, hooks, and aio are all resolved on first attribute access via __getattr__, so the cold import only pays for the C extension load and an __init__.py that does nothing but expose Progress, Tracker, and track.

No-display hot path — pure per-tick overhead

Display is disabled (disable=True where the library supports it) so we measure the cost of advancing the counter, not rendering. ns/iter is over the bare for-loop baseline.

Variant M it/s ns/iter over baseline
barflow-iter 160.76 0.0
barflow-track 101.13 3.0
tqdm 70.23 7.4
barflow-tick 65.39 8.4
alive 2.55 384.9
rich 2.09 471.9
  • barflow-iter is for _ in p: — BarFlow's Progress type implements the iteration protocol directly, so FOR_ITER dispatches tp_iternext without the CPython vectorcall trampoline. The iternext body is three x86 instructions (load, fetch_add, return Py_None), and Py_None's immortal refcount on 3.12+ means the loop's STORE_FAST _ is free. Net result: below the bare for-loop baseline, because a range-driven loop still does refcount work on its cached small-int yields.
  • barflow-track is the for x in barflow.track(iterable): wrapper, used when you also need the yielded values.
  • barflow-tick is the manual Progress.tick() call from Python, which pays the full CPython vectorcall dispatch overhead per call. Use the iteration protocol above when you don't have a source iterable.

Display on — throughput with a live renderer

Comparator libraries write into an io.StringIO sink with force_terminal=True so no real console I/O is measured. BarFlow writes to its native Windows console path (no sink parameter), which makes the comparison conservatively worse for BarFlow.

Library M it/s vs BarFlow
barflow 101.76
tqdm 19.57 5.20×
rich 2.11 48×
alive-progress 2.09 49×

BarFlow's render loop emits delta frames: each column's previously-rendered bytes are cached, and on the next frame the render thread emits \x1b[<n>C (cursor-right) over unchanged spans instead of re-writing the bytes. On a real TTY this cuts bytes-written per frame by roughly 60% for the default layout; the sink-based benchmark above does not exercise the delta path, so the number you see is the lower bound — real terminals get more.

Memory footprint

Library tracemalloc peak RSS import RSS run
barflow 486 B 236 KB 192 KB
tqdm 298 KB 6.83 MB 992 KB
rich 661 KB 6.58 MB 1.77 MB
alive-progress 3.41 MB 1.64 MB 3.79 MB

tracemalloc peak is the high-water mark of the Python heap over a 1 M-iteration run (bench_memory.py). BarFlow's ~500 bytes is effectively one Progress object's shell — the counter, output buffer, render thread, and render scratch all live in C-owned storage that tracemalloc cannot see. Competitors allocate hundreds of KB to several MB of Python objects per run.

Tail latency (per-iter distribution, display on)

Library p50 p90 p99 p99.9 max
barflow 100 ns 100 ns 100 ns 100 ns 7.80 µs
tqdm 100 ns 200 ns 200 ns 200 ns 28.00 µs
rich 500 ns 600 ns 800 ns 2.20 µs 153.20 µs
alive-progress 500 ns 600 ns 700 ns 2.20 µs 138.00 µs

Per-iter timestamps recorded with perf_counter_ns() across 100 K iterations; bench_tail_latency.py. BarFlow is the only library whose p99.9 does not diverge from its p50 — the render thread never spills work onto the producer, so there is no jitter source to create tail spikes.

First-frame latency (__enter__ to first byte)

Library median min p90
barflow 32 µs 28 µs 41 µs
tqdm 97 µs 93 µs 109 µs
rich 921 µs 845 µs 1.05 ms

BarFlow paints a synchronous first frame on Progress.__enter__ before the render thread takes over, eliminating the 50 ms "blank bar" window that would otherwise be visible for short-lived jobs. Measured by bench_first_frame.py.

Multi-bar throughput (4 concurrent tasks)

Library wall time aggregate
barflow 22.8 ms 43.9 M it/s
tqdm 114.1 ms 8.8 M it/s
rich 465.8 ms 2.2 M it/s
alive-progress skipped (no clean multi-task API)

4 tasks × 250 K ticks each, driven round-robin from one thread (bench_multibar.py). BarFlow stays lock-free — every task has its own cache-line-padded counter, and the render thread walks the task vector under a mutex that the hot path never touches.

Metadata churn (description updated every 1 K iters)

Library wall time it/s
barflow 33.8 ms 29.6 M
tqdm 152.4 ms 6.6 M
rich 514.1 ms 2.0 M
alive-progress 526.9 ms 1.9 M

1 M ticks, set_description called every 1000 ticks with a pre-generated 40-char string (bench_metadata_churn.py). BarFlow exposes set_description(str) and set_task_description(task_id, str) that briefly acquire the render mutex to swap the description; the lock-free tick hot path is unaffected.

CPU cost — render thread counted

time.process_time() sums user+system time across every thread of the process (Windows GetProcessTimes, Linux CLOCK_PROCESS_CPUTIME_ID, macOS task_info), so a background render thread cannot hide from this measurement.

Library Mode CPU ms (best of 5) Extra ns/iter CPU / wall
barflow display-off 187.5 2.3 0.96
barflow display-on 187.5 2.3 0.96
tqdm display-off 265.6 6.2 0.93
tqdm display-on 953.1 40.6 0.95
alive-progress display-off 7,671.9 376.6 0.98
alive-progress display-on 9,390.6 462.5 0.98
rich display-off 9,437.5 464.8 0.96
rich display-on 9,296.9 457.8 0.98

Two things stand out:

  1. BarFlow's CPU cost is identical whether the display is on or off. Turning the bar on adds no measurable per-iter CPU because the render thread wakes on a 50 ms condition-variable timeout and spends the rest of its life parked. The producer loop sees the same hot path in both modes.
  2. tqdm's CPU grows 3.6× when the display turns on (266 → 953 ms), because rendering runs inline on the producer thread. Rich and alive-progress sit near ~50× BarFlow's CPU cost in both modes — they pay hundreds of nanoseconds of dict/lock work per advance() call before any rendering happens.

Caveats / reproducibility

  • Numbers are from a single Windows 11 box; absolute values will differ on Linux / macOS but the ratios are stable in repeated runs. Re-run python benchmarks/bench.py --n 20000000 --runs 5 to reproduce the main table, and python benchmarks/bench_*.py for each extra axis (tail latency, memory, first-frame, multi-bar, metadata churn).
  • tqdm is run with mininterval=0.05 (matching BarFlow's default) rather than its out-of-box 0.10, so the comparison isolates per-render work from render frequency instead of giving tqdm a free 2× render-skip advantage.
  • time.process_time() resolution is ~15 ms on Windows, so the smallest CPU numbers (barflow: 187 ms) sit only ~12 ticks above noise floor. Differences against tqdm (5×) and rich/alive (~50×) are well outside that window.
  • Display-on throughput is measured against an io.StringIO sink, which skips Windows console latency. On a real TTY, BarFlow's delta-render (cursor-advance over unchanged column spans) gives it additional headroom that the StringIO harness cannot see.

Install

pip install barflow

Wheels are published for Windows (AMD64), Linux (x86_64, aarch64), and macOS (x86_64, arm64) for CPython 3.13 and 3.14, including the free-threaded cp313t / cp314t builds.

Features

  • Zero-overhead iteration. for _ in progress: runs at 160+ M it/s — below the bare for _ in range(n) baseline, because FOR_ITER dispatches directly to tp_iternext (no vectorcall trampoline) and Py_None is immortal on 3.12+ (no refcount work on STORE_FAST).
  • C++ hot path. tick, advance, and Tracker's iter-next are single std::atomic::fetch_add calls with no locks and no Python-level bookkeeping. Task counters are cache-line padded so the render thread's reads never false-share with producer writes.
  • Decoupled renderer. A background thread wakes on a 50 ms condition-variable timeout and formats into a preallocated buffer. The producer never blocks.
  • Delta-render. The render loop caches each column's previous bytes and emits \x1b[<n>C cursor-advance over unchanged spans instead of rewriting the frame. Roughly 60% fewer bytes written per frame on the default layout.
  • Synchronous first frame. Progress.__enter__ paints one frame inline before the render thread takes over, so short-lived jobs don't see the 50 ms blank-bar window.
  • Windows-first. Unconditional ENABLE_VIRTUAL_TERMINAL_PROCESSING, UTF-16 transcoded WriteConsoleW chunked at 32 KB, legacy-console fallback. No colorama dependency. A reusable wscratch transcoding buffer means steady-state frames are zero-alloc.
  • Multi-task + columns. 9 built-in column types (description/bar/percent/count/rate/elapsed/eta/spinner/text), rich-style column API, themes, ANSI cursor stacking for nested bars. Progress.set_description(str) and set_task_description(task_id, str) expose metadata churn without touching the lock-free hot path.
  • Spinner DSL. Compositional factories (frame / scrolling / bouncing / alongside / sequential) compile to precomputed frame tables at __enter__.
  • print() interception. capture_output=True reroutes sys.stdout through write_above() so user prints appear above live bars without tearing.
  • asyncio. barflow.aio.atrack(aiter) wraps async iterables.
  • Tiny cold import. import barflow is ~1.2 ms (baseline-subtracted median) — 25–62× faster than the alternatives. All non-core submodules (themes, columns, spinners, style, hooks, aio) are lazy-loaded via PEP 562 __getattr__.
  • Sub-kilobyte Python heap. Peak tracemalloc usage across a 1 M-iteration run is ~500 bytes, vs 300 KB (tqdm), 660 KB (rich), and 3.4 MB (alive-progress).

Usage

import barflow
from barflow.columns import (
    SpinnerColumn, DescriptionColumn, BarColumn, PercentColumn,
    CountColumn, RateColumn, EtaColumn,
)

# Simplest form — when you need the iterated values
for x in barflow.track(range(1000), desc="task"):
    ...

# Fastest form — when you just need a counter
with barflow.Progress(total=1000, desc="task") as p:
    for _ in p:
        do_work()

# Custom columns
with barflow.Progress(
    SpinnerColumn(name="dots"), " ",
    DescriptionColumn(), " ",
    BarColumn(width=40, color="magenta"), " ",
    PercentColumn(), "  ",
    CountColumn(), " | ", EtaColumn(),
    total=1000, desc="build",
) as p:
    for _ in range(1000):
        p.tick()

# Named theme
with barflow.Progress(theme="classic", total=1000) as p:
    ...

# Multi-task
with barflow.Progress(theme="classic") as p:
    dl = p.add_task(total=100, desc="download")
    ex = p.add_task(total=100, desc="extract")
    for i in range(100):
        p.update(dl, 1)
        p.update(ex, 1)

# Live prints during a bar
with barflow.Progress(total=100, capture_output=True) as p:
    for i in range(100):
        if i % 10 == 0:
            print(f"checkpoint {i}")   # appears above the bar
        p.tick()

# asyncio
import asyncio, barflow.aio as aio
async def main():
    async for x in aio.atrack(some_async_iter(), total=1000):
        ...
asyncio.run(main())

Design

See docs/DESIGN.md for the full architecture: atomic hot path, background render thread, column pipeline, Windows console handling, and the benchmarks methodology.

Build from source

Requires Visual Studio 2022+ (Windows) or GCC/Clang + Python headers (POSIX) and Python ≥ 3.13.

# Windows
build.bat

# POSIX
python -m pip install -e .

License

MIT. See LICENSE.

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

barflow-0.2.2.tar.gz (99.1 kB view details)

Uploaded Source

Built Distributions

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

barflow-0.2.2-cp314-cp314t-win_amd64.whl (95.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

barflow-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

barflow-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

barflow-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (467.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

barflow-0.2.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (450.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

barflow-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl (85.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

barflow-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl (86.2 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

barflow-0.2.2-cp314-cp314-win_amd64.whl (94.5 kB view details)

Uploaded CPython 3.14Windows x86-64

barflow-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

barflow-0.2.2-cp314-cp314-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

barflow-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (459.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

barflow-0.2.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (443.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

barflow-0.2.2-cp314-cp314-macosx_11_0_arm64.whl (84.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

barflow-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl (85.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

barflow-0.2.2-cp313-cp313t-win_amd64.whl (94.3 kB view details)

Uploaded CPython 3.13tWindows x86-64

barflow-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

barflow-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

barflow-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (467.3 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

barflow-0.2.2-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (450.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

barflow-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl (85.3 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

barflow-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl (86.1 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

barflow-0.2.2-cp313-cp313-win_amd64.whl (93.3 kB view details)

Uploaded CPython 3.13Windows x86-64

barflow-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

barflow-0.2.2-cp313-cp313-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

barflow-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (458.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

barflow-0.2.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (443.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

barflow-0.2.2-cp313-cp313-macosx_11_0_arm64.whl (84.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

barflow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl (85.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

File details

Details for the file barflow-0.2.2.tar.gz.

File metadata

  • Download URL: barflow-0.2.2.tar.gz
  • Upload date:
  • Size: 99.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for barflow-0.2.2.tar.gz
Algorithm Hash digest
SHA256 15e8473ef992247ef9b13e31c6fb26d44f43696fe8a7cd68db871a8d91a6d7cb
MD5 0ede59f05672f1bb6aa25242fbadbbd2
BLAKE2b-256 cd7953e0ff578393d1bfc6331ce1df8bd6208a002b38b3104aa4f57be3d9d249

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2.tar.gz:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: barflow-0.2.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 95.6 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 12e2988ad54dcd483ef4f9e548506acb6861801fd2e64253bc5795c12445b17e
MD5 e360e2d094432a473faa2552f55cc70e
BLAKE2b-256 830965916064212a13770fb895f2ba473e527a11cc1fca4fe24126749d7de9a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-win_amd64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b1e973c99cee773367f11877af1096c113cebd199e70663d7c819c8468cc108
MD5 f605a461933d26dba772c2af80f56125
BLAKE2b-256 21d7fe5cad72f39261ea87e1b449c030bd8549eddbd908749e2b4de24bfb012b

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 116d29c2267161e1268606a354917f33f3093c73427bcc8c3b21edb23aaec7b6
MD5 c5138d4fc48c6c77d4725de13c72e041
BLAKE2b-256 319333205a1a6b5f50606fdf30943626cd8b346545e53e4ad3a2f53e17b68621

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee14309a0a105ceb74e4ef3f6b6daab878fdd791e1d3acc2b5bb62e91dcb5a12
MD5 19e16e19aac8cf5f57568b0fd561b20e
BLAKE2b-256 59b2c6e58e198b5ae4644e61a9f163091c275a564e32864c9c0594097e397f86

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d8638e002319ebf3a730c2b899664750b01e25415d4839968db7c8ffccb5f5dc
MD5 2c20c9a75f06bdc7421f700a0d694adf
BLAKE2b-256 c7bdfad73444e9691bc58604239efc2ff25665c7fd9b8e84e63eef9bfb5c2002

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a62dcf98e9feebf8dbc527c427240311a810836bb1a35180757c8c9268f061c0
MD5 b6d9db7a352063e79201418d822bfd8d
BLAKE2b-256 e863851856e1bb6a586759dc044ebdfd06dc250e880230b0e1ca36f016684bc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 357be20699ddb72cd473f008616bff3935331fced154fc307edbb17d4f3c35d3
MD5 c279e7c5473f27353f9129f04685ecce
BLAKE2b-256 959da6e622a7a31b96eff2a9f6e369b86ec2b98a6597302802cff920f2197823

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: barflow-0.2.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 94.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for barflow-0.2.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2dd753cba956f46687d82ccbbbd8599a8453ad872f9415fd96849d3b65436b1b
MD5 e8bbc85871a92c949a1e9556ec9207ce
BLAKE2b-256 630c407e1f812527ab49f611fba93e376f7aa9861a56b73a15507e10910d797f

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b92b3fa6748c057c6b3b6f8bd21bd205ce98941f1adfdd1dc5a41df161e0736b
MD5 94a352a6e7329d9197c4bd972389ff48
BLAKE2b-256 132d2f1d9c40dbcd799f604021046a4b76b2733c77fff4d48b1feb6df6256b59

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 75cabac40720053ae7d5dc64672c1bc7ca7a7d9469ec36b472d1f65afb218f83
MD5 f22eb2e5e1c5713fe1ca3deacfcaef26
BLAKE2b-256 81f3209d62b98f77f20a1e4be895d8d7f76c784b29a1fa0e1891c6d7131a3c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8e46cb455930c6c897aeebc0533ab7f559d1f339a92b1d62bf776648089132d
MD5 49b510c0158d643961b1ec41ee4110da
BLAKE2b-256 b3e085e0449e7f562eedf0b4d41d921cdb4b8913a5de249fa6d649d24c76e5a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d1d248fe6f8435389f57cc77af1954ca0b3c6d0a2820a8f22892c7768685d282
MD5 0a0ee0c021d9d76fc9dd8b251630ec46
BLAKE2b-256 c894328ee0547ff85f07ac375f1fa2aacda6aac30f4f9b4ed7e928f64b60c14a

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e518900758b8298fde4bd3ed8e379a280b1ab41d742c4975365b0a5a2b54178
MD5 5dcc06076844a163f7f36a1eac14b87d
BLAKE2b-256 28c261f1a6b487ed73f2f36d7ba5a44ba5ded8476a23458eb385c6fd2a0a6d4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fd55200ff004318a6e18e0a219b105021895acb852ed9c30fa6b322fbf974f4d
MD5 e2f94db65c004348ba2542d2862c81ca
BLAKE2b-256 870dc553719961c64ef8a12c4a488e634c153f209ccffde80bb8237426cef1b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: barflow-0.2.2-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 94.3 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 e64190a630b3b5d98a7d24b60499c04adfad63a68dee76202a840246d700aae8
MD5 d3c31e456a53ee10a9dd9e93f93e3e8d
BLAKE2b-256 9aea2cb645e1ff612c9a02442b9f62048cc359dcce9d960a09d2444a5af85e28

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-win_amd64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b627dc72279fc922b5c48bfe234ed275b03fc5fcd6e3b799004af59068f590a1
MD5 dd591e79337df48cdd1438f7141d1eb2
BLAKE2b-256 735890ee3f7d654ad9d03b3ab59f81d1d02360b3011621902178f49ac8123c57

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc162f00e90193c4810c6b65916bbdc834df426e2bbb1702af10855d7adf8df0
MD5 67d3df16445fbc9177e35aa89045029c
BLAKE2b-256 8fad90704902137c70452752afc0bbf78c3ba3f2bdaea29f801a5f2327a2c28f

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3686cc1009e10beb8dd4756da82041ca8bb0cc5e7feb331cdf96a5b74a6d918f
MD5 99742c8a1665e4d011a1070923200ad2
BLAKE2b-256 1963cae58f14e57d2981a378b460ec6d9a12d833a7a27a70d3c6908d7310f9c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 65fc29cfbe152505bba1f938a6ba4c647d3b72e2d2b3f166f65c8bc7a878e399
MD5 814aaea9683c8f7da46f26fbd3ee4989
BLAKE2b-256 e1a082880b77c805bc9491d3ca46a5084b65614465953b3a0019c409968428c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 351c3b69d96905d293e54530955dc0f0a5a4fe2da74e775d2d2cec816474ebd1
MD5 3c6433a067ce715007cbe94759943bbf
BLAKE2b-256 aed8e398bafce00e3e2b5456ca77c5700947364fc5632029b73c266a6b43b683

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1e2de6f2b5bbd2bd816418c8674fa3a4417af31a19cf27d049b569a89bdd129b
MD5 689e376b1bda9a0a01bda14e216f3c79
BLAKE2b-256 33729bb6df04f81544068d6617ccaf0498d39e017bd43bb61aa4c56c731e0a91

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: barflow-0.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 93.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for barflow-0.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d3fef33c0e45024ef7200cbf447a5c477f24a3f435f8c109f35028d2fdbad7e0
MD5 8e5ecf85b7f61ffcaaa2144806402e2b
BLAKE2b-256 f8ab9c8568011dafe2ae65ccc0c3236ae2d73361c6536e890fe747a6fe1bf86e

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 543b26ddfb82d6bf52113989c16ae74faf6a99831fce34df123c8f6c6d9f6f1c
MD5 61caa0d58db08e45ad74dab1adf1d868
BLAKE2b-256 47fe0f00e6924cdf35c180440a1e75a36303b89658e98736fec51bc3e99df1d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 72733cccf285897a620e95c46206a915fa3f2f388522e85136da9e47436a0ec2
MD5 3152394fdf1e8577bc48bc7553de5e3f
BLAKE2b-256 155a6dff8af902701597ef6060f3b479f85cc8e51dfc2372ebc6dd4333b74824

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71433c5a5d348819bae3a2a91663612a5051116e42caf1e2dbe28e2f89c96b32
MD5 69a5065803b607a0ccf6f6b13d3f1907
BLAKE2b-256 9cb946c7cad8b203313cc58c8767bad46879f073dd890a4005565ba00032a3a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 425f87e9a262646b2b447b0ae098b38b8ca64df0eb3c21eba91bdcbc68ca9bd2
MD5 52962fde90a51d36fe66180d0bf8a39a
BLAKE2b-256 bd0acda2c5194c50d5dc7ccefa2ccf99cca7959ed17002fac604b7bf69d3c491

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c64c04a27b4e88c685fe06c0b791788e2abd1894d778f75cdf6d1796a9256acc
MD5 fb450d408ef9b08649de60b89255d57d
BLAKE2b-256 8555c4aac9dec36b2ce6e0e1a6ce2fbcbe1b3e5a4f9f783bec5a4c90d80ced9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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

File details

Details for the file barflow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for barflow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ae98a72b64c563f96e14078e0efe3341a1a148bcb77d187134dbba2529fa79b5
MD5 1f71a7804965ed0f43b538659df2d4eb
BLAKE2b-256 380182188f317194efe1fb19079fb357b2f7b234dca39cb6c110eda0cfa2e9a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for barflow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on NevermindNilas/barflow

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