Skip to main content

String algorithms

Project description

PyPI version Downloads Test Build and upload codecov DOI

pydivsufsort: bindings to libdivsufsort

pydivsufsort prebuilds libdivsufsort as a shared library and includes it in a Python package with bindings. Wheels are built for Linux, macOS and Windows (32 and 64 bits) using cibuildwheel and GitHub Actions. Basically, you should be able to install it with pip install pydivsufsort on any system and it should work out of the box. If it doesn't, please create an issue.

Features:

  • bindings to divsufsort that return numpy arrays
  • handle string, bytes and almost any integer data type (e.g. int64) and not only char
  • algorithms work even for non char inputs
  • additional string algorithms coded in Cython

Installation

On Linux, macOS and Windows:

python -m pip install pydivsufsort

We provide precompiled wheels for common systems using cibuildwheel, and a source distribution for Unix systems. Manual compilation on Windows might require some tweaking, please create an issue.

Features

All methods support string, bytes and numpy array inputs, including datatypes greater than uint8_t (e.g. uint64_t). Below are the signatures of all methods exposed by pydivsufsort. To import a method, just do from pydivsufsort import method_name. All methods are documented in the docstrings. You can display them with help(method_name).

A nicer interface to reuse computations lazily is provided in WonderString but currently undocumented. Please create an issue if you are interested.

Methods exposed from libdivsufsort

  • divsufsort(string): suffix array
  • bw_transform(string): Burrows-Wheeler transform
  • inverse_bw_transform(idx, string): inverse Burrows-Wheeler transform
  • sa_search(string, suffix_array, pattern): search for a pattern in a suffix array

Additional string algorithms

  • kasai(string, suffix_array=None): LCP array computation (lazily computes the suffix array if not provided)
  • lcp_segtree(string, suffix_array=None, lcp=None): build a segment tree for LCP queries (lazily computes the suffix array and LCP array if not provided)
  • lcp_query(segtree, queries): query a segment tree for LCP queries. Queries are pairs of indices.
  • levenshtein(string1, string2): Levenshtein distance
  • most_frequent_substrings(lcp, length, limit=0, minimum_count=1): most frequent substrings. See the docstring for details.
  • common_substrings(string1, string2, limit=25): common substrings between two strings.
  • min_rotation(string): minimum rotation of a string
  • longest_previous_factor(string, suffix_array=None, lcp=None): longest previous factor array (used in the Lempel-Ziv factorization)
  • lempel_ziv_factorization(lpf, complexity: bool = False): Lempel-Ziv factorization
  • lempel_ziv_complexity(string, suffix_array=None, lcp=None): Lempel-Ziv complexity

Example usage

from pydivsufsort import divsufsort, kasai

string_inp = "banana$"
string_suffix_array = divsufsort(string_inp)
string_lcp_array = kasai(string_inp, string_suffix_array)
print(string_suffix_array, string_lcp_array)
# [6 5 3 1 0 4 2] [0 1 3 0 0 2 0]

# You can also convert the string input to integers first

import numpy as np

int_inp = np.unique(np.array(list(string_inp)), return_inverse=True)[1]
int_suffix_array = divsufsort(int_inp)
int_lcp_array = kasai(int_inp, int_suffix_array)
print(int_suffix_array, int_lcp_array)
# [6 5 3 1 0 4 2] [0 1 3 0 0 2 0]

Development

You can install locally with

pip install -e .

A useful command to iterate quickly when changing Cython code is

python setup.py build_ext --inplace && pytest -s

Profiling

Profiling can be activated with the environment variable PROFILE:

PROFILE=1 python setup.py build_ext --inplace && pytest -s

Here is an example with line_profiler (requires pip install "line_profiler<4"):

import line_profiler
from pydivsufsort import common_substrings
from pydivsufsort.stringalg import (
    _common_substrings,
    repeated_substrings,
)

s1 = "banana" * 10000
s2 = "ananas" * 10000

func = common_substrings
profile = line_profiler.LineProfiler(func)
profile.add_function(_common_substrings)
profile.add_function(repeated_substrings)
profile.runcall(func, s1, s2, limit=15)
profile.print_stats()

Testing

pytest

Technical details (for performance tweaks)

libdivsufsort is compiled in both 32 and 64 bits, as the 32 bits version is faster. pydivsufsort automatically chooses to use the 32 bits version when possible (aka when the input size is less than 2**31-1).

For best performance, use contiguous arrays. If you have a sliced array, pydivsufsort converts it automatically with numpy.ascontiguousarray.

The precompiled libraries use OpenMP. You can disable it by setting the env variable OMP_NUM_THREADS=1, and it will yield the same performance as the version compiled without OpenMP

The original libdivsufsort only supports char as the base type. pydivsufsort can handle arrays of any integer type (even signed), by encoding each element as multiple chars, which makes the computation slower. If your values use an integer type that is bigger than required, but they span over a small contiguous range, pydivsufsort will automatically change their type (see #6).

Acknowledgements

Citing

If you have used this software in a scientific publication, please cite it using the following BibLaTeX code:

@software{pydivsufsort,
  author       = {Louis Abraham},
  title        = {pydivsufsort},
  year         = 2023,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.7932458},
  url          = {https://github.com/louisabraham/pydivsufsort}
}

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

pydivsufsort-0.0.17.tar.gz (343.4 kB view details)

Uploaded Source

Built Distributions

pydivsufsort-0.0.17-cp313-cp313-win_amd64.whl (333.4 kB view details)

Uploaded CPython 3.13 Windows x86-64

pydivsufsort-0.0.17-cp313-cp313-win32.whl (273.8 kB view details)

Uploaded CPython 3.13 Windows x86

pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

pydivsufsort-0.0.17-cp313-cp313-macosx_11_0_arm64.whl (345.5 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

pydivsufsort-0.0.17-cp313-cp313-macosx_10_13_x86_64.whl (381.5 kB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

pydivsufsort-0.0.17-cp312-cp312-win_amd64.whl (333.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

pydivsufsort-0.0.17-cp312-cp312-win32.whl (276.2 kB view details)

Uploaded CPython 3.12 Windows x86

pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pydivsufsort-0.0.17-cp312-cp312-macosx_11_0_arm64.whl (346.6 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pydivsufsort-0.0.17-cp312-cp312-macosx_10_9_x86_64.whl (384.6 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pydivsufsort-0.0.17-cp311-cp311-win_amd64.whl (347.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

pydivsufsort-0.0.17-cp311-cp311-win32.whl (280.4 kB view details)

Uploaded CPython 3.11 Windows x86

pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pydivsufsort-0.0.17-cp311-cp311-macosx_11_0_arm64.whl (343.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pydivsufsort-0.0.17-cp311-cp311-macosx_10_9_x86_64.whl (383.2 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pydivsufsort-0.0.17-cp310-cp310-win_amd64.whl (345.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

pydivsufsort-0.0.17-cp310-cp310-win32.whl (280.6 kB view details)

Uploaded CPython 3.10 Windows x86

pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pydivsufsort-0.0.17-cp310-cp310-macosx_11_0_arm64.whl (343.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pydivsufsort-0.0.17-cp310-cp310-macosx_10_9_x86_64.whl (382.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pydivsufsort-0.0.17-cp39-cp39-win_amd64.whl (345.6 kB view details)

Uploaded CPython 3.9 Windows x86-64

pydivsufsort-0.0.17-cp39-cp39-win32.whl (281.0 kB view details)

Uploaded CPython 3.9 Windows x86

pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pydivsufsort-0.0.17-cp39-cp39-macosx_11_0_arm64.whl (344.3 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pydivsufsort-0.0.17-cp39-cp39-macosx_10_9_x86_64.whl (382.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file pydivsufsort-0.0.17.tar.gz.

File metadata

  • Download URL: pydivsufsort-0.0.17.tar.gz
  • Upload date:
  • Size: 343.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pydivsufsort-0.0.17.tar.gz
Algorithm Hash digest
SHA256 ac78b55353527985924c9437dcc2d5abf71e797f3c804717a373cc5ca99a819e
MD5 3adef8435ecc1e31a4efaab1435ff8e9
BLAKE2b-256 ec164fef38915c922d0914068169dbc97d041d69b05d56ee5cc6f73564eada93

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 10a6f3693611ca3db7ba71d9c7dfca58fa55b286ca7bf09cc0169a9fedf63a03
MD5 ff740f72febef539ca89298180d2fe80
BLAKE2b-256 659f28cd9a467fecbcfe13330cdedcf8fd68d0b4803ceaee14bb73322427093d

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 c898d17b48ce80bb4863a6a954f0f5e0fbf8686544a19ac7461b62ef017aec58
MD5 6d7748869117f49cccd5de344426f8db
BLAKE2b-256 645d467be1145da2d2ed6cd8d19fde0eb012225824deb97e10430c0dcff71532

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b12312eaf274c7251b9450a59c0738b7ef4ca3ebef3e85bfe5bfe7acecd78e1e
MD5 2498d88101b4b19d9abf35622bed0ac2
BLAKE2b-256 a708e5a075ff6a66dedd79baafd9b1ed2a5d8f6fd54901f777d57fc8d61031e1

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b39b3af244c8eeb3dc2edc6399d7fe672bc09ec93463da7747ceebab85065618
MD5 dbd4fd2154bbb28c555dc3ca13a1062a
BLAKE2b-256 4ec838f01f552c9d70df803475759cd30d6cdd8250d044065cbb146a3de5661c

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22cd8df6fa59086b73a79a1e35df57c2467e5f60d19559602e580a3a73ccf0df
MD5 2c985e0ac0aec493a7b934b9e4187ff7
BLAKE2b-256 2923731e42c23a8f8cbaaed685a393e9c65e0b992496f63f7af5970fbad36f86

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 680fa330571d45861b5b86ab5de628106de870523e02a3e137f25fe97601a3a4
MD5 1572d752fafe55be598a6efbfa93624c
BLAKE2b-256 95fb23317d88792b73a49bfd7aefd730e5da2b7f5da19ea6a96ec1cc32cf98cb

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4c43e33159d53e4a59d5b6482952874591dc2e4964005a4e8f12cf27416475ac
MD5 e5671800e2117c31e4061b806ee3862d
BLAKE2b-256 d68539b8a076b5bf38b6ee017723be63b6d92ce2c3e304d12ef5cdfbe068356d

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 d1c1c735c9cfc15d77c9f4623caff8b9b4d0df0cf73337d94fa3d867fb80816b
MD5 44f72252659ec9d99153e9a6c8062bda
BLAKE2b-256 98ddc400eb2223bc3ec5f5c9a5d1306444d812dbf9e650d7047b03d546904ba6

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0af3f02971dd9567e8e2d373e670c8b0b8e7c6883fdeeb1bc275878d346ab21e
MD5 0d4ec678f877bab55224fa6122be6e74
BLAKE2b-256 9d655f4cdadbe2ad770f79a66445a13a178c8a461ca83ccdecdf551c9d59748d

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 566539d91eb2574bebd12068f6afeae06868f8253cbffbcdb6444ea000af2824
MD5 08706aa782f11b6f85cb9a70eb1a1541
BLAKE2b-256 f5e9ea053582b51bc7bd223492aec8800d07412d7f8a7e584503c3b589080c3d

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3c45676287c50572279684795d39b3ceb8c49b5a3b27637756a040fa437fe1f
MD5 afcfbf591325e5c6003bc6dc034922a4
BLAKE2b-256 934cd8ad3fba4360ee95312cff4840c99aff3007b4f7e5dfa546036909a95258

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d312874d1410e76e2087f0285f07614745d7136c6bef24437e5542fb9531db7e
MD5 7245b38278b67b5a3e698673ec6edfba
BLAKE2b-256 a513ff5e54dd50dd10ecb2bc093e877165380bae7a9afdfbb440fd68adecf0de

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 92907914bbf87402722e66d0a39f9d1b272178c424e03439bb16925087462fa1
MD5 80d6fcadcf0307c8817bebac4024cd73
BLAKE2b-256 50603df425603c67a3c4b7c3f665db1bc64528be1f35d2da0fd0b5c06cb4abdf

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d30ff6d5878677a11aee357aa5c047cc94e26bffd0257842988ec4aa36d34b05
MD5 5f900d69ba60abec630f442b5b442e2f
BLAKE2b-256 9a7c0360fe9fb252d552c3c6dc18765afb226cb7718f700899744b5dca2ac76c

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb0115180b4609e7c9bbc11c2bef4ae747b0a93a9501e899dd267f17aaeda62a
MD5 ca930313d4590806939f5fca2db99c64
BLAKE2b-256 c54759ddaf284273ac802315461ecc9fc4c78647d0fe6b8e3393f4754a000799

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fae46516573776edb7a3502ecf2af1c578acb4a378d079081ed7af42fbcea696
MD5 b04d5309180b78a1658ef5449a3e93ce
BLAKE2b-256 fc50e0f47fff18ec453de5e8c205071fd6af0e07f2933b35c1d5ff60ff943a48

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fe5182640291d4d4a4d4dd3f22c8f41b49f4544f328bc182196f4eefb72c0cc
MD5 d224594114a7e34bb399c72bfab22cdd
BLAKE2b-256 27ab5b931dae497118b09ab526fbe2823e6b18a1e9d9c29e61dd0ff8d1eb7986

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f1e2aed6ee26403b6cd145804d22809e97d60ea2ae86af97442b37463f5212a0
MD5 74e854e23441f9e19f76a71959d721ca
BLAKE2b-256 a057c9da29235ed7544604293595347739cc0afdaace70970ec390b5d6541cac

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5a43104bc803137e65709cc950a1fb24c69b92dc7ee0ba27b87113dff98c231f
MD5 250e0caf84c4252cf67b8f9f6491525b
BLAKE2b-256 bf58f3505be9ba7ea4bc44469bbc2b79e642272e4bfe725d92aeb60b269ff497

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7c20386539c047cb003417b768368a6b02be4f79dc6aed33dd8b73b4dc998847
MD5 39c06fc6a6d63bea4844040878e76b3e
BLAKE2b-256 c0aa59b6b937733ffac3daf3c3a70d300369b80e56bd8dbf7cbe55ef0e4a20eb

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24d8b534f9973f09c72f0a8fefadd1e60cdf57f2d740a9c2332461cf3428c8d3
MD5 2e10ef05c462550a8501c9914c035de8
BLAKE2b-256 a1af1c324f2df9800faf5299772dd35bdb0d11d58ac8a4646445af5cbadfa530

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5e8591a6af584e8cb993e9e0d5e068ce242ced0a2fc2593a8bfb87a896b5e0c5
MD5 e2f34c80438009b978380f06cbc723e4
BLAKE2b-256 bd8646636078212c339cf930a497d32d8dcab85d2af13c60ed76313c22b04761

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9315817321a8245a6a82f31a9d7b7c75c6ea643fdb9422344e82261207fc376f
MD5 2326492ee592f24ab95671a11b064d85
BLAKE2b-256 944103f8914835d13f24451819b0a384d89fe3746d3c028936cb4a52063c26c8

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 125c06f9168ac792689a90d524a5e67dd3556835d79a60bc6e42dac24f49bedf
MD5 579c16d3b063e12c6327024fda7fc46a
BLAKE2b-256 6596ad3f225fb80ff5b9026aadd7428b8ad2e3f6d16b5d0446acded5ab053207

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cf64621890002a31a866c1de3ea234ac48267b1e505850701a42737b3be0612f
MD5 b08736057b7f1a33902e1fe40fe21264
BLAKE2b-256 d5350c46b7377465361a336022599bae31152c227dfdad910af96b21dcfc1846

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-win32.whl.

File metadata

  • Download URL: pydivsufsort-0.0.17-cp39-cp39-win32.whl
  • Upload date:
  • Size: 281.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 365c92c8f754014957f67a1cfd39b4eec13e43d9e1e5df776eabe7d23ac56c46
MD5 a527fa5a78ed5f321238b0341b040a53
BLAKE2b-256 7232bf890f1217cf9ec67c056ae3eeb29f9aad8ea2fafb59923c3c0bd5f79726

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 015fc82067f472df2e7634793bc8b3b019e438a9391d1fa179b2827b2d7d6830
MD5 68632e1f8c594ab9172e13d8a60bbddf
BLAKE2b-256 258bbd9c5a95c05d69b799f2d9251cc93812287da8fe1a4b95797ce4becfef46

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd621ffc45c7ed62a0f97388562213c325152ff549feb58624c08c964445ae6b
MD5 7f6277fba1db6a8c8eb6b6ef2b1d46c9
BLAKE2b-256 08ee477d44f487289e1decae9c8603b1e983d4dbb22c9339dc5ea2fd692225fc

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d44c45ccdd23b29aa6c5fdd1189d7b2ad0a1631ae5ffe9ff54aac051aacda1e
MD5 19b02ffbb5714db061ae89a8bc310362
BLAKE2b-256 b78ce43c121135e42294dca68506a70fb1723010d4802cdb56efb89bcfbf42c5

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.17-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.17-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a732752e66c22319a5b97d9f8e7624bce87080f8b9582dd5437c6a3243919523
MD5 75c5f3873b5a3c4afd99a95dd2e19c29
BLAKE2b-256 417d3d1ed58a9163666138348c875b67339d1364b3c9431df4a6d8280c056880

See more details on using hashes here.

Supported by

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