fast-unionfind
Disjoint sets (union-find) for Python at C speed, with no dependencies.
from fast_unionfind import unionfind
uf = unionfind(1_000_000)
uf.unite(3, 7) # True: two sets became one
uf.unite(7, 3) # False: already the same set
uf.connected(3, 7) # True
uf[7] == uf.find(3) # True
It is link-by-rank with path halving, so any sequence of m operations over n elements costs O(m α(n)) — effectively constant per operation. It has no runtime dependencies at all (not even numpy), it is compiled with Cython, and it is safe to query from many threads at once, including on free-threaded Python.
Why another union-find
Two reasons.
There was no C-speed union-find available as a stand-alone package. The fast implementations live inside larger libraries, as internals you cannot depend on.
Building one efficiently is less trivial than it looks. The union-finds
inside two widely used clustering libraries, hdbscan and scikit-learn, had
subtle performance bugs that made single-linkage labelling quadratic while
every result stayed correct. We found and reported both:
hdbscan#731 and
scikit-learn#34626
(a fix is in review as
#34872).
Install
pip install fast-unionfind
Building from source needs a C compiler and Cython.
Python API
unionfind(n) builds a union-find over the elements 0 … n-1 and picks the
narrowest index width that fits: a UnionFind32 (4 bytes per element) up to
2³²−1 elements, a UnionFind64 (8 bytes) beyond that. Either class can also be
built directly. UnionFind is their common base, for annotations and
isinstance checks, and cannot be instantiated itself.
uf.unite(x, y) |
Merge the sets holding x and y. True if they were distinct. |
uf.union(x, y) |
Alias of unite, under the name the literature uses. |
uf.find(x), uf[x] |
The representative of x's set. |
uf.connected(x, y) |
Whether x and y are in the same set. |
len(uf) |
The number of elements, not of sets. |
uf.labels() |
Every element's representative, as an array.array. |
uf.width |
32 or 64. |
width_for(n) |
The width unionfind(n) would choose, without allocating. |
Elements are ids, not sequence positions. Anything outside range(n) raises
IndexError, negative values included, so uf[-1] is an error rather than
the last element.
Representatives change as sets merge, so compare them rather than store them.
There is no set count or grouping method, because both are one visible line on
top of labels(), and writing them out keeps their O(n) cost in plain sight:
n_sets = len(set(uf.labels()))
groups = collections.defaultdict(list)
for element, root in enumerate(uf.labels()):
groups[root].append(element)
labels() returns a buffer, so numpy.frombuffer(uf.labels(), dtype=...) wraps
it without copying if you do have numpy.
Union-finds pickle exactly, ranks included, so a restored one links later unions the same way the original would have.
Cython API
The union-find itself is not a method. It is a pair of fused cdef inline
functions defined in the .pxd, so a module that cimports them compiles its
own copy, specialised for its index width, and the C compiler inlines them into
your loop:
from libc.stdint cimport uint32_t
from fast_unionfind.core cimport UnionFind32, uf_find, uf_unite
def kruskal(Py_ssize_t n, uint32_t[::1] ei, uint32_t[::1] ej):
cdef UnionFind32 uf = UnionFind32(n) # owns the memory
cdef uint32_t* parents = uf.parents # plain struct reads:
cdef unsigned char* ranks = uf.ranks # the class is final
cdef Py_ssize_t k, merged = 0
with nogil:
for k in range(ei.shape[0]):
if uf_unite(parents, ranks, ei[k], ej[k]):
merged += 1
return merged
uf_find(parents, x) |
Root of x, halving the path. noexcept nogil, unchecked. |
uf_unite(parents, ranks, x, y) |
Link by rank. True if it merged. noexcept nogil, unchecked. |
Both are fused over uint32_t and uint64_t. Use UnionFind64's parents for
the wide one. They do no bounds checking, which is the point of this layer. Keep
the owning UnionFind32/UnionFind64 alive for as long as you use its pointers.
The .pxd files ship in the wheel, so an installed package is enough for
Cython to resolve the cimport. To be explicit anyway, add
fast_unionfind.get_include() to your extension's include_dirs.
Since the core compiles into your module, a consumer does not even import
fast_unionfind at runtime for these calls, only to construct the object that
owns the arrays.
Thread safety
Concurrent finds are safe as long as no union is running at the same time.
They do race, on path-compression stores, but harmlessly. Every such store
points a node at one of its own ancestors, so the root stays reachable and
unchanged. A lost write can only undo some compression, never send a walk
somewhere wrong, and the aligned integer slots mean no store is ever
half-written. This is what makes a lock-free parallel "are these already
connected?" filter over a Kruskal edge list sound.
Unions must not run concurrently with each other or with finds. Serialise them.
The extension is declared freethreading_compatible, and nothing in it needs
the GIL.
Performance
Two workloads over m = 4n random edges, written as Cython loops. The first,
unite_all, is Kruskal's scan. The second, filter_scan, unites half the
edges and then asks "already connected?" of all of them, which is two finds
per edge. The comparison is the same algorithm written the usual way, as
methods on a cdef class cimported from another extension module, where
Cython must call through the imported vtable and nothing can inline.
| n | workload | inlined core | cimported class | speedup |
|---|---|---|---|---|
| 100 000 | unite_all |
2 ms | 3 ms | 1.51× |
| 100 000 | filter_scan |
2 ms | 4 ms | 1.64× |
| 300 000 | unite_all |
7 ms | 9 ms | 1.36× |
| 300 000 | filter_scan |
9 ms | 13 ms | 1.49× |
| 1 000 000 | unite_all |
24 ms | 35 ms | 1.45× |
| 1 000 000 | filter_scan |
32 ms | 51 ms | 1.57× |
| 10 000 000 | unite_all |
1.17 s | 1.53 s | 1.30× |
| 10 000 000 | filter_scan |
1.59 s | 2.17 s | 1.37× |
Best of 50 runs at n ≤ 300 000 and best of 5 above that, on x86-64 with GCC -O3, Python 3.14 and Cython 3.3. The gain narrows at 10 million elements, where the 40 MB parent array no longer fits in cache and memory traffic dominates the call cost.
From Python, method calls cost about 42 ns each, which is almost all interpreter overhead and the same as calling a class method directly.
The class-based column was measured before that implementation was retired, so
it cannot be re-run from this repository. python benchmarks/bench.py times
this package's workloads and Python-level calls, compiling the workloads on
first use.
License
BSD 3-clause; see LICENSE.
Metadata
Release files for fast-unionfind 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fast_unionfind-1.0.1.tar.gz | 22.4 kB | Details |
Built distributions (wheels)
Total release size: 21.0 MB
Release files / fast_unionfind-1.0.1.tar.gz
| Download URL | fast_unionfind-1.0.1.tar.gz |
|---|---|
| Size | 22.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
920cebe6bea630782e8d2af882987a70da1b3e68d5d97e9771dabe657f0950ad
|
|
BLAKE2b-256 checksum How to use checksums |
34bf0187a5cdad0253cf328c1267b331b68e75f778e8105e390cd29502f94399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-win_amd64.whl |
|---|---|
| Size | 110.6 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
08e1f3a9fd11effcf6efbb19cc2b16dbd9b62662c68f2aed557032fc9fe7212d
|
|
BLAKE2b-256 checksum How to use checksums |
7901cbb45cd95119c22c3babc00444ae84d73af58845241a8ae010bfb2264bd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 601.9 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
4ba2c67dd44a99eeffb40ea52028ace9eb314af143a6ec4b97fa297d5f484e19
|
|
BLAKE2b-256 checksum How to use checksums |
10a5300912222aaf9230eb453e42dcacf33cabc928a3ba965dd8bdb6bbf478e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 590.0 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
08ecb154c8475a7acca63983a724feb295a48150095d3386f0d9bba1635f0b44
|
|
BLAKE2b-256 checksum How to use checksums |
0ae4cdb3ba7e77a6e4d47fd591c964d190ab313362304698d1407402381a24f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 609.8 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
777ade5e69ae3659f8673f91e3c991042c614bac600b29ee339a0238e15238af
|
|
BLAKE2b-256 checksum How to use checksums |
b54debc6ff3975c4066bd89276ff9461be35549268c35859af68005c80910cf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 609.8 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
21a4799609b79f7f399bbd7949e0186e418bcd67ebe768e66567117e948eadaa
|
|
BLAKE2b-256 checksum How to use checksums |
5a6aae7c87a88eb4b45249ac3bc88bbb7c2f7a7a773774b3aeddc0b5dd4a8aa2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315t-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315t-macosx_11_0_arm64.whl |
|---|---|
| Size | 112.2 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d77ec4c9b7e97747995c4b08febdad98fb909569296f57d3e65bcf32aa43e322
|
|
BLAKE2b-256 checksum How to use checksums |
c0e409b124e0cb901ec29c28c2b838b3bac5155dab7e0affa3b55644b0c5a7ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 97.0 kB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
47d72fc800a4c6ad98e150cee8c3b6d46df24c22a08dacb0864e3b120c3acdfc
|
|
BLAKE2b-256 checksum How to use checksums |
370f59561f6b772b6354442025df47e0fa819e3e9459e346427738c194e76218
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 608.6 kB |
| Tags | CPython 3.15 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f39d9eba55715a14e74510932fd3855b946b909f8f5f266e1f4a881dc25e48e2
|
|
BLAKE2b-256 checksum How to use checksums |
ee175241a341a391ab5e92494ecb9327b6362f5b844cc9ddc67d33e708b1472b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 590.8 kB |
| Tags | CPython 3.15 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
180500902a2f773e035b8a19c96a5fbe52af9d98b1e55b429ee549735dee2871
|
|
BLAKE2b-256 checksum How to use checksums |
66cd2992887f9fa5cc562c6cbe5b9cad71cbefb9f24b566440e4e54da3aeead5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 611.9 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0cc89355f79c43c4045b3022747b73117f1d7ce7e4a51c54a007db9128848ffd
|
|
BLAKE2b-256 checksum How to use checksums |
058d46a51c0f06ddbe0da2fddd49ae2dfd07c6c18440e41aa5e63f266eb0fe78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 603.7 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
91947811475a9cec8c52d65345523c981677d6c90ed12460f97bd9cab9de3b8c
|
|
BLAKE2b-256 checksum How to use checksums |
3cd83dee28d4fe6d3841779fe579fef0f17d4b1562e85796c487c40f3bc0134b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 106.6 kB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
02768289e090bcb8780ce7147bb71cb17a098c6f2a11a3c717f2a207c623c41f
|
|
BLAKE2b-256 checksum How to use checksums |
e10f9de8f639c36db9bac2c867a7473487bf7f28358a5abcff3badcc1181bef2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 111.5 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9808b3b7d6045c32eab7477e1c2d333d68eaeebde8369102d823d06cf9065b1e
|
|
BLAKE2b-256 checksum How to use checksums |
21e5d79c345a5d1d53487c7499b093c70724de16ab9a743a7a8863db75d0d09c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 599.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f72f6ce3de4882df31643130c7a0739edf180e2fe78704f452f073d4710927f6
|
|
BLAKE2b-256 checksum How to use checksums |
e8835941da642217606fc273ea1ff1c477f678a6dff3179000d87ad8c9a51c65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 594.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
c3e45d8dea4669198bf8b4425fe873e7c7c7be76d867fe533c64496278d68aee
|
|
BLAKE2b-256 checksum How to use checksums |
567b9afd9ca16960f1d2b94f730dccdbbdea50c136a57a0d5be138a942b1eeca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
af39346d34321651b20f2418e2190873b51941440d22e369308b4e09a758e1fa
|
|
BLAKE2b-256 checksum How to use checksums |
5aacaabfa303f190cb27fc6f5ea0b8ea556bd05e09fbca8ab284fee333e9a689
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 614.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4453c2eeb1badc9a00d7d44f133364fd915a7fb60ed36462402918a0a597c1f1
|
|
BLAKE2b-256 checksum How to use checksums |
9550e30d192e2eaee1553be8242a1118e4ffd677e2e2532ecbe268e2faf38ca5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 112.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
82513eccc63f46b1e5a9612a58cbac5f2ebe18ade82d2b3630f77192a8c73482
|
|
BLAKE2b-256 checksum How to use checksums |
e07f12dc84974bbaa7eaa7cfb79efe718c9f7adef62b6999f17cf3408492f871
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 96.9 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
219fd4ed01175c27f1f4c91095b8a08d6e0395807c89378d73bed189f9de6718
|
|
BLAKE2b-256 checksum How to use checksums |
6a0373c2d8d88422f274b37160542244b1c0d55bf8fbbd50224815406ed17fc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 601.0 kB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f8d0aba468802ec0dd61eedff4c3421e0bcffab795c309d3e31707a66c575177
|
|
BLAKE2b-256 checksum How to use checksums |
4ea08f208238572112023147445c0dcd2248fb44b49d3cc28c7dd147cb9fd9ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 588.4 kB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
58436acd6e4bf4600adb8d9beaaf6582693b50545b848dec0e5bc25575f7795d
|
|
BLAKE2b-256 checksum How to use checksums |
724efec29ec9e66e7d244d08521ccb1984ab9a160d3222832866783545e3c031
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 606.4 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
26dc22d4ad7c202ac3fe29458c0462fa8e681ccc8a8840c861a6c8b259ae0dca
|
|
BLAKE2b-256 checksum How to use checksums |
156fbd5c8bc6f4eb7c7ba61495e56d8f66aa89cfbba880fa16d6117ca4f7af93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 600.8 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8219a4d4ddfc679a1fe65c7aeddc18ddc93fe04b7a78bff454ad0d90ed62cb82
|
|
BLAKE2b-256 checksum How to use checksums |
9c302536821fd218d20625b4e4b841b04406a73aa0e6fbbbc1945fdecb32600b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 106.5 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d33cdb9384c7166c3a8116846fdc5e3a041ba3046cca221a64c8c4e30380fbaa
|
|
BLAKE2b-256 checksum How to use checksums |
208b4a1baf669eb47f681f1b0f227a926f31694a3ae7ba061d082610e5f5d2d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 94.1 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
cc331fea0c2a9ef9eb029509314d52a49c660eb52555a831ee29b1318be34a78
|
|
BLAKE2b-256 checksum How to use checksums |
879b9fe9b6fcc625271f28e696ef3d59696ba3c961e316f401af904549d4a620
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 606.8 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
addab8c803ace93ba7240e3821ff7f83d4e56e715d37faaeea49bb6287fdfcd0
|
|
BLAKE2b-256 checksum How to use checksums |
fd0e69b72177aa76224b749da9e914eca913a580026a55fd6431ec8bdce98bb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 588.0 kB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
cd9652e49fccc2610da0189db5a76cf064853294b0b97e09ba1a1e01daa57c6e
|
|
BLAKE2b-256 checksum How to use checksums |
130e378e154bfee7caadff8913cfee01ca1f3d7936717804419af9d79e063110
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 611.2 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2ee90277ad351c910c50d3892cf1357c2072ca2ea64604794972542c08008a47
|
|
BLAKE2b-256 checksum How to use checksums |
486decb5b209dfd24707f22f9d838eb1018db8d04d516b4fac53f9b1d45a430c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 602.5 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
99c1ca706d08370cf082057e9989cb0de5b217ac2b76edc9aa58249f7db09d2a
|
|
BLAKE2b-256 checksum How to use checksums |
3befd9010570b8dd729d5f00415b51eaf1cd3605f4c09362ee6f50842da4aba1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 105.7 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ecb9635c4a37c2b3b075fb971fd9f61c15331cc1741705e1e13d4fba4efa38a
|
|
BLAKE2b-256 checksum How to use checksums |
f12b55176b5cd28db88e800d47f7c303519e7e795e9921309c4f5b27ceaff46b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 94.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
28e4c7136d4929f915167aa43b8df7e02492e371f1b1c8d02c167edc499592aa
|
|
BLAKE2b-256 checksum How to use checksums |
b4fa8c8d21448a60e012853577cd2672a79577b77720d4a57b3c4f958da36594
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 612.6 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
4d084a9a5613d4405b463d9169be94363c7a4842649a34e2c6160ad20c40256a
|
|
BLAKE2b-256 checksum How to use checksums |
36d2ec6a542842e668555545900341f61dd557995136a26f328d3f4e74a50c3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 594.4 kB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
37a466fb4ca9bde6aa290236d1fdf041efa16ec2816d354c98445b56263e7f0e
|
|
BLAKE2b-256 checksum How to use checksums |
e2020ab99fa6d2f57330d0d9966e423e8a6fa2274d9538e46b2ac7f70e437119
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 616.8 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1578310dc05a7a3d78edc91310ba8857933c49e281ca4068798edeac2b0d6119
|
|
BLAKE2b-256 checksum How to use checksums |
b0b3e659b5fef3369e56754f77118a370a6e159a1d3b40981d61c8ed7467dc45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 608.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
09398b1297160fb4c5a5a9431ba963f7eac3a7d5eaaac6666f0e2c4b5d72bf63
|
|
BLAKE2b-256 checksum How to use checksums |
2a2c9a2cc802f6ad22f2bcd9d56e964a66a16789dd581204238aba667d9befde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 106.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e466a01c467dd84a60e0d0c8c6f3c58f30e5d7f06604b6561795f14aa289f977
|
|
BLAKE2b-256 checksum How to use checksums |
dc25cc5e7d723555bbbfcfb1c4f538cd67d625712de5d2606d3811562f866d4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 94.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8f03abf64c3b84e201a219cf44a67398b591870c63811faa828b28c5bf748d6c
|
|
BLAKE2b-256 checksum How to use checksums |
25d13547691757dfacc4f70461fd9d777602b5cc1894cc4a2ce3ec4eaa1b716e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 626.4 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
dd4f9c3acfe1123f208ae24ed757d3b168b5dbad7c47755ac9b1f2867276dcdb
|
|
BLAKE2b-256 checksum How to use checksums |
e217e7e03be932cb93447bca510b4357d82acd1acd1c568a9c5075551aa04f46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 613.6 kB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
72d6f60b18f579eb37faedca4acb59145c0606302b092daee4c8be7663640ebe
|
|
BLAKE2b-256 checksum How to use checksums |
8e64b6baf70f677547ad63e5f5c91dabd9d01350aeb171c27f45a9d5db4bdcc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 625.7 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
32f1dea709f3390ba63a6d980da85b7a3a7ec3d7317a26a939515cf827aab108
|
|
BLAKE2b-256 checksum How to use checksums |
23c3c3a4812bbf0a3528a9b095742c99339b3514c55e6a0a6c4849e0aaa19f3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 621.1 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2580a7255155ba191e39d290d763ba6483eeb9ea7ed3e223dde66ae41c592a2b
|
|
BLAKE2b-256 checksum How to use checksums |
81b2bc86978dbb8f6a4d51eef9146153f2ce447085a7574b4ff3589f965e6b99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 105.1 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fe123f471269c743a76541db639a3ff556aab219b26b9f1dc9edfc003c3f9189
|
|
BLAKE2b-256 checksum How to use checksums |
701394d10dbc0c581c0476664faaed9b477d41cfdab93b9e74cdd4f840a6aa54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-win_amd64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 94.6 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
155762686f79e640892d0478979f8e6b43c99db02c17c67a615a6b9dc11fabc0
|
|
BLAKE2b-256 checksum How to use checksums |
f90b282e759f7716f9975f5d3420ca04e36f1c522d593c9660083157983e90a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 595.9 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
a5bb5afaba4c4f2b243ae675652567b88345c6de51e14d0fd3c6cc8183fd4387
|
|
BLAKE2b-256 checksum How to use checksums |
5f3db0f069d9a469629eb1181e64cbe6b4ee387b41d9b0a1bb095049ab6840fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 584.9 kB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
825a57c49d6c75f6f3f341abbbf5965982b9e4a0a6e99ca0375e81272ef68c04
|
|
BLAKE2b-256 checksum How to use checksums |
4299c1ef3000c41c76fe4e87d6013a4ad3b39430455b61349a1344899bff0c0d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 594.9 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
975b120736ac7e3eeb575b72276443c6bc4c9051bf89ed961a983ede842c94eb
|
|
BLAKE2b-256 checksum How to use checksums |
cfff761c41cc9fa67321dcd2f21432a2fba0b8b3e3c4c53f5a6f44e434f24af8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 592.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8f92472656ba02c60348ee972ce332c92a9cb2f29ecef17beab78aabdcaa4595
|
|
BLAKE2b-256 checksum How to use checksums |
f9d00273aaeeca016649eae438dad7c8ba55965198cb6f349d8aa20d8273b88a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fast_unionfind-1.0.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | fast_unionfind-1.0.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 105.6 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a45b81469649744becd40e00d08cd83a8242f990b790b9b5fa5c494a39ff65cd
|
|
BLAKE2b-256 checksum How to use checksums |
161d776fb579e22862083498bd9daa8182f3da1babf8425849b2dc26c714c8c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|