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

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.10.tar.gz (248.5 kB view details)

Uploaded Source

Built Distributions

pydivsufsort-0.0.10-cp311-cp311-win_amd64.whl (241.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

pydivsufsort-0.0.10-cp311-cp311-win32.whl (197.8 kB view details)

Uploaded CPython 3.11 Windows x86

pydivsufsort-0.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp311-cp311-macosx_10_9_x86_64.whl (295.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pydivsufsort-0.0.10-cp310-cp310-win_amd64.whl (239.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

pydivsufsort-0.0.10-cp310-cp310-win32.whl (198.4 kB view details)

Uploaded CPython 3.10 Windows x86

pydivsufsort-0.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp310-cp310-macosx_10_9_x86_64.whl (297.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pydivsufsort-0.0.10-cp39-cp39-win_amd64.whl (240.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

pydivsufsort-0.0.10-cp39-cp39-win32.whl (199.7 kB view details)

Uploaded CPython 3.9 Windows x86

pydivsufsort-0.0.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp39-cp39-macosx_10_9_x86_64.whl (299.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pydivsufsort-0.0.10-cp38-cp38-win_amd64.whl (242.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

pydivsufsort-0.0.10-cp38-cp38-win32.whl (200.0 kB view details)

Uploaded CPython 3.8 Windows x86

pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp38-cp38-macosx_10_9_x86_64.whl (296.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pydivsufsort-0.0.10-cp37-cp37m-win_amd64.whl (235.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

pydivsufsort-0.0.10-cp37-cp37m-win32.whl (196.9 kB view details)

Uploaded CPython 3.7m Windows x86

pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp37-cp37m-macosx_10_9_x86_64.whl (288.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pydivsufsort-0.0.10-cp36-cp36m-win_amd64.whl (244.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

pydivsufsort-0.0.10-cp36-cp36m-win32.whl (205.9 kB view details)

Uploaded CPython 3.6m Windows x86

pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

pydivsufsort-0.0.10-cp36-cp36m-macosx_10_9_x86_64.whl (288.2 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: pydivsufsort-0.0.10.tar.gz
  • Upload date:
  • Size: 248.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pydivsufsort-0.0.10.tar.gz
Algorithm Hash digest
SHA256 6c4d98e4ae06e0d20c667279f1eaffd0b6bc1ca718167fb5b801afee153fed00
MD5 a715391a13523024c5124d52c0f5b469
BLAKE2b-256 f170f4b798cf29aede15dcf1cb381a6d6e6eafe55e093ccd29cde80cd8f498be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ff155b259d73e1b24da70402e949a537e4bec9ae7a06031deca4b6b520d04865
MD5 7183c429ee616e2cdc9e65481322d363
BLAKE2b-256 efc36e18359d7c9bd677a94f78259b21b6cc7ef14248d2ce497bac3940cb0c7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d4b19fc29f88f575aff1284ad980b474fc69c45e5d77ff062e0adfd2806d3062
MD5 44382c69a59041c3a0d0d2cf5a4a0635
BLAKE2b-256 5ed4fecab02e1ca8408c6b4dcad30a08ff2fb717c80ea7623bd807b14dea9a8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa141750dc1d1c595e9639dcdd0e10d5400329cfba1866d3baf3f9750724f595
MD5 b60b26f26b99179d058e4092ebca366e
BLAKE2b-256 51ee7398d57614a50f782316d2ecc6d9e6a1f80a4e91e17e686c618989468263

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 03994c33aaf4db40dd2ce53c83c365cfb7be1f1aa82a6dabe328cd9392183737
MD5 1b002fa99a07487c9cfdd21035f21056
BLAKE2b-256 e839b0e874c1db8db9334d017b1f8c7737fbe808cd239060637087131e9a6e36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3ca1adbfe471f595b3e4412ec9c0216efc8081d0cbb16f0daf13516189b9bf1a
MD5 965c8c60528480cdbb0c39b9338d57aa
BLAKE2b-256 99fa9fa468df3df1121b2019335ee51118b721b70db6b3af081f45d6c3fa9ec2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bedc374f5765df9426689d8e85a581c64f1e65eea3e8d03dd9eec0d361011a57
MD5 aa3946eb6faf53a8601a384d810b3115
BLAKE2b-256 e0cc80171415025f813beb84948e8df987b8b0283678c670847d0fca360656ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f8b811133cade49ca3c345bb11edd03878b121576d68464e8c804b1df812ae69
MD5 94425e0e4d22f3f4235b67d9b19875ae
BLAKE2b-256 09a590e2a1ceea0a4736995e88e0698c7692430f17a51997935947989b0590ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac79de0e181edca9d7f096334d3385113396c696ab84f647a4a911fe3ba4191d
MD5 4a6ff1e18403fc9cf922e5d970e1fc98
BLAKE2b-256 a2bc68085879cc60e2b284d1f8953e55ff0eca655d4a9c40cc9487024cfdf8e8

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c7dc921650b06195789c2d68772255675d398397077566f6bc72b97db030cd61
MD5 87639289d3b6fccccce21079907ff2b3
BLAKE2b-256 e78b4fed4190dad02059ce77a6586dc9b678d91b4ebdd3d9b98a230db97bb84e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 848345894f84902bf3b18e602d36f6a1e0190eae79c400a9ed296cc832b2c246
MD5 1b63e57682f36a5dcf2e7a66ee1bf527
BLAKE2b-256 062307b6f100438d455847416f6e47708a132a63a72f1a62fe32f54b79a6e1e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a8f1252b6f0a5a5858362259215504b03ce286ef04dcb2bcebd44af866d36a31
MD5 f67ee45fd9e16b4aec528799463a4fd7
BLAKE2b-256 d6184a0fad6cffb4acb4b69c490846d4c2464074e2c211b6f655312bca16698c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydivsufsort-0.0.10-cp39-cp39-win32.whl
  • Upload date:
  • Size: 199.7 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pydivsufsort-0.0.10-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 d9bb91d35bfebf910633d76ccf78173af66c856918b23277aa6801c62cd3d327
MD5 fa6647231c13f71b30a0c341e7c9adb8
BLAKE2b-256 343afaae8f1c95984b1a414e4dc12f9d2baf70eefe047881d56f38a45b3be052

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9a121a2c68e4c954703ee6cdd506af773012e632a3774bcdf241376db1ad92b
MD5 5a978fdd29646160ffea5f45d319282f
BLAKE2b-256 482aeb14a3e99185074c371ff54a3fc96c310fbf89eef455fd52774940275f40

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3093e165ede5a252a8ffd065385cf87935d809b6f621c0095dbb19c372dbc943
MD5 94dc8e1f57d5004434e8246640bad589
BLAKE2b-256 44b5af81b2365e1f8113d49ef00639d9a26d55d33b872e4a25f983b4d3dbeddf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 87f09179fe35665037a14765172d96ea59e0abf71ba93b632150b018e11ba91a
MD5 d94021a2a652c331b8970e64f8aa2943
BLAKE2b-256 92f3ede70b8e7c172fde458cdb2fd4c96ac585cbf1eb26e52e34f4447a384ca8

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 66ed4558c8be78dc32a1121f3265337d9c7f92b2dabd7eaa91b7e5a817f99c17
MD5 93ce2011f69b73721d8bab233c47178e
BLAKE2b-256 b733e0a336e28bc00ca3dd671dee42fec621cb3addc0d64cb89fc850a5eae154

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp38-cp38-win32.whl.

File metadata

  • Download URL: pydivsufsort-0.0.10-cp38-cp38-win32.whl
  • Upload date:
  • Size: 200.0 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pydivsufsort-0.0.10-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 0b341c5b259ca09a28046b23eac372235178ad47d6b286898aa6b929e54f49da
MD5 c1ded20bf09884af4d7a625dc713fc0e
BLAKE2b-256 786abda4e328d3124781c4d3a1e6518036d1166993d341363920df2857edecf7

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ccf25d48566265bc5ef902e4fc04d6ba0b9ac11a68da4f1a84bc8172dfae7149
MD5 383541fced8cfd3da7cd7060c751a322
BLAKE2b-256 0c00584db1b28e1bf7ea0039d15aa818d557927e15946055e347b332259d995d

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab7da6dbeeb17526d62fed609ecb89e02ebfb784fca1e1e84141d8d8aefb66ad
MD5 707a00352f574500fa0ed5673f8ab12d
BLAKE2b-256 b8159088804db0a94fcabc9bf9a71b53b9ac76723aa1dbf2ff94bff703a617bc

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b794150051048dd84d4bd7c017f5baca9fadbc0300b3b60d63dbe6956912eaa4
MD5 8775fb8e39740c0dfc5505ae9ca2b15a
BLAKE2b-256 ecd7934467c6b77dee0d8993ef810372592f40c4a517c90f10809c356dead086

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4a19a5414606f6e1e74de7a5317597a64481daf345cb03798ca3c5f79b770695
MD5 88d76e5155e0892752c018f9a788a75c
BLAKE2b-256 080a4dea158940cf067550ebb5a21910f935f672fd94e300cf66f5d56e6f678a

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp37-cp37m-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 0b3653f58363f78af7d9a677b0ca8a2dfb1bb3c3b278a42259af6e68b2561932
MD5 3f807009f41bfc4dba4050d0419e8808
BLAKE2b-256 4ebefd57c5513016697901b85d9dcb260c5c43ee3c2cf106ea7296a4cfeea45a

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04df0c0dca800a58d22673bb73f719320f2d25ead18fb29f5924e28ef9ea415d
MD5 1db37dda1eed8b87271e0e7cf8fb5bfc
BLAKE2b-256 80de97092ec16f362570d0912550051d7fddff881d10f34c0a4536da6054bf2b

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f0aca2e970897ae64bee4d05d00eb6af2cf8a7e63f674376db8311fb90d2255d
MD5 390215426c0466ebea58a5fe3f306496
BLAKE2b-256 1f73c08aeb6ed13238b1b10ae89fc950a531d9637d9b838db9eb861105c80af5

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d7fca6659ed0048e5fe45f97586e27a2b0f59a879982a2496ec994d9d7107fcb
MD5 b9f5e9210d5e8855e9792ccb55fcc3ff
BLAKE2b-256 0adc428a061426ddf12f9c84be7fdb4c0f56605452eee70fcc09ce617b954b23

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8ed47ad0bcea53009c01b0a92530a3f76709792b1bed0652f341021c54cbf9b4
MD5 13e452574feb6e33e41c832b9261c3fa
BLAKE2b-256 8289e02a0bb856fb1ffbe96d63d75b1acc150b7027665617601ff23667e2c67a

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 c17792cf2b006bb5ad8239e01bafccb9bf572aaf2ff0fd2e88f06a90653f2514
MD5 794e8fa233fbefc8f6db83fa77c218d3
BLAKE2b-256 8e45af87d485f94270f2c99c37f6795393f58763338ab764abcb52c65465e9c6

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6a6d96eb4f67ff39631124335237c9bdc8e98824e88bd180e07388f2f65c755
MD5 573254a45b477c547c4c95866a889a70
BLAKE2b-256 674b4c1f39dad2460cdd7ca4f53cb8bf8529dbe1cbd7e1d9c35afd407184ca56

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 294bee59e5035ed54834a6c225f9a81cb09646c21501531ee93d0f23073cdd5e
MD5 a5d9acb4cc6f89d70e3d7a29b709a24b
BLAKE2b-256 259d4a3c392d995d286852c9b345859c3ddc672d0e77e70c77d4756118da1ebf

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.10-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.10-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d0047e5b35b11af374973379a22e409308f86f8c2e6051a35874b3ac499cc3ec
MD5 cc1ba15a2fca1a8c0745e219838ed9f5
BLAKE2b-256 094b421b6de0e3401d173a8dfc39c8efb95c539e457e1d1d00141b2f23907bc2

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