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

Uploaded Source

Built Distributions

pydivsufsort-0.0.12-cp312-cp312-win_amd64.whl (262.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

pydivsufsort-0.0.12-cp312-cp312-win32.whl (221.0 kB view details)

Uploaded CPython 3.12 Windows x86

pydivsufsort-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.12-cp312-cp312-macosx_11_0_arm64.whl (286.3 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pydivsufsort-0.0.12-cp312-cp312-macosx_10_9_x86_64.whl (306.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp311-cp311-win_amd64.whl (268.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

pydivsufsort-0.0.12-cp311-cp311-win32.whl (226.0 kB view details)

Uploaded CPython 3.11 Windows x86

pydivsufsort-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.12-cp311-cp311-macosx_11_0_arm64.whl (284.3 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pydivsufsort-0.0.12-cp311-cp311-macosx_10_9_x86_64.whl (315.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp310-cp310-win_amd64.whl (267.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

pydivsufsort-0.0.12-cp310-cp310-win32.whl (225.6 kB view details)

Uploaded CPython 3.10 Windows x86

pydivsufsort-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.12-cp310-cp310-macosx_11_0_arm64.whl (284.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pydivsufsort-0.0.12-cp310-cp310-macosx_10_9_x86_64.whl (315.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp39-cp39-win_amd64.whl (268.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

pydivsufsort-0.0.12-cp39-cp39-win32.whl (225.9 kB view details)

Uploaded CPython 3.9 Windows x86

pydivsufsort-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.12-cp39-cp39-macosx_11_0_arm64.whl (285.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pydivsufsort-0.0.12-cp39-cp39-macosx_10_9_x86_64.whl (316.4 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp38-cp38-win_amd64.whl (269.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

pydivsufsort-0.0.12-cp38-cp38-win32.whl (227.2 kB view details)

Uploaded CPython 3.8 Windows x86

pydivsufsort-0.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.12-cp38-cp38-macosx_11_0_arm64.whl (283.9 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pydivsufsort-0.0.12-cp38-cp38-macosx_10_9_x86_64.whl (314.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp37-cp37m-win_amd64.whl (262.1 kB view details)

Uploaded CPython 3.7m Windows x86-64

pydivsufsort-0.0.12-cp37-cp37m-win32.whl (222.0 kB view details)

Uploaded CPython 3.7m Windows x86

pydivsufsort-0.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

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

pydivsufsort-0.0.12-cp37-cp37m-macosx_10_9_x86_64.whl (310.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pydivsufsort-0.0.12-cp36-cp36m-win_amd64.whl (271.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

pydivsufsort-0.0.12-cp36-cp36m-win32.whl (230.7 kB view details)

Uploaded CPython 3.6m Windows x86

pydivsufsort-0.0.12-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

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

pydivsufsort-0.0.12-cp36-cp36m-macosx_10_9_x86_64.whl (305.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.12.tar.gz
Algorithm Hash digest
SHA256 22097d5be82e3a0be8c0e7608ee855b16746d7e6c2921d44680728a2c019a7da
MD5 73563f924d6853b75084b7afeff85369
BLAKE2b-256 40c411e97e5e8195a413a8465cc095935368b8b86659c8de987e3e89c17fa9cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8c0eecf744e6f6b5a8f765d4ce042540178bb0607c3ecad84181c2243528be66
MD5 55dca8d8e069b861bcef576283c73d94
BLAKE2b-256 66507ba547324c369c0a647f772952942eb68c4b52c971e88dd4cd74a6f3da2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 16814d28194561baccd606b4ddbe2d3fd79cf880f9bc9203f4a349fd429d4056
MD5 339eb9549febcedfb8419511818af3e6
BLAKE2b-256 be6c495a2b4dbda2312adf9c95a92df3ff4605789e40fed817e2d460efbdf76b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4abbfbec1804ddee902c3e52327e19e4d874f46e12b67d084853765f8b6509b
MD5 e9875cfd1d9941fe371585ca255db84d
BLAKE2b-256 3cbc56a83c295fc3692768590775431cb38a1442198fb45baedab46cef852b2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2c6e622bf41c5d660f8c8e84db2940a85ab10fa3ea4f66a60d39cc2a7a3611f
MD5 9bb68dd707421ab2e0c8078f084bc278
BLAKE2b-256 25ca02d8e8b59d2b48f8de19750d42515ec36e71be17c8b03041fcb1af601851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2190103bdd8e6b0a5c5f757844d25ef4dc61a695d95c484a3d6fdb84501e06ba
MD5 e7cf13b321a8682cf45a5dee9e9dc8d5
BLAKE2b-256 11b48f739c6bb59168dec13e3cdda8dabe464df69d167c3939de0f22253be63d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6be5fadd2c8bdbc44955e55a21304e71a131fcb8182da706b24233c6497b1952
MD5 64ab16c113125c698fa0760503e652f0
BLAKE2b-256 9e67cf0d54b490021e1abdf37469c97c67a59d7f96eedbe2dc289a267405bb66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c239c2decbbfb9215c76a1aee56b591ee7e3f6d04a7a444b38d6428b37e7bb7e
MD5 d86442d256a1a20a0e46499b7b64bd94
BLAKE2b-256 4d836c321a46780ea6f17081cfb8bd1e7a107b98205fb0d80c75451f12d85a45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b370c05c5f764c28eb4ed092a22f6547606ef5b0e5dec599309fcaa5e0b4b9f
MD5 259665609d0505ba774a67175a548523
BLAKE2b-256 bc1983c91f459597ab5e8ecd24ef6b939a72ca9620038797c01d6f3fd800a096

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5fb15b3ad135438c3820dc762310a39ca8ab3754d6f8b6d6e17727918c9fe3a
MD5 86a34490d2165b08b4a7d29e0a111201
BLAKE2b-256 30f19014a39ef42fd962bdc43c611892c394341e5494068392bc277f8ce9de88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2310294f0f5a99b4bcc8a8d0aec488f9f0ae138c2b96bb6f09b4ff26e98dd01c
MD5 9c9a2c6633ca8cb0e5e1d9f0aa5d7d9b
BLAKE2b-256 8dbd8cd8aaf21809cc4a1b6610cb9fda67595e239f400605e37518aed2e9e589

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d95057b4e79e93f5b983d3a1e76a3cf8d1f5a2f9c0ba36bb44beeeecfd7137d9
MD5 706283f2900bbe360ebb26759e052bd7
BLAKE2b-256 7403556087b072969e14c8a4fc6d634bc67f6aee79ca009e1d1b0d2b363c721b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 94a800ba28aaf52c4f703357ef5cd75a509148e7e15c21168252c81508798b4e
MD5 ca7524589b58c0a39582b88009396f5b
BLAKE2b-256 879cf6968799c0844eb4ca4577dc77dd948612e3e1329a9f4631ea21df13f4c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2642089d278018fd5eb9768522dcf951822425dac6accce79df0b6b56c815b82
MD5 5f7d54b44e1542fb5b7d00277f21393f
BLAKE2b-256 8053b2892d1386d2a2c5ec75c1fb5e26d9896b19d8a71cb62dbd939346d37828

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b47004a16581c511ede92e7dc05997f3dc89b6dcf579c24ca67abfa1feac485
MD5 1264a27cc12f6235c034ee23cc9356ab
BLAKE2b-256 ef58e9590dc4b7b73c35de50dfed68df87642fb3906750fc09514a6ec3cf087b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59b5864d5e25943339cf55058459b2b0ba5bcb190ab055601add9dc70c1c7418
MD5 d016f792c8145565dad7e1433b40b982
BLAKE2b-256 aee8d8e1196245df0b2143a8948357ca77bb2ebbfd325f6724e314a2de690250

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d90a0f67c107ab1bf68f024eda4e116680dd27f63a081ec6b1dc8048d6ebb4b4
MD5 831af6aae9a22498915316fcf5a4ae3b
BLAKE2b-256 109ef2e60351c65e81aa6df56fa6795ef14e3e78b4a27d66e5a871dbad2fe7c2

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.12-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a4766cc2312da1a601e5044acabe586171e0b759a5f8ee91f64ee2d2b1f88f08
MD5 ad18b62e0fd63b6df6b3b9e3b863bdcf
BLAKE2b-256 e976fa62c67604d8331135318ef2d45958204268c761017a541127fef03f4f08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b025baeaff8128ea708c3285c83c77b93a0336d375cf29cf4767fb9e12c8f58d
MD5 e2fcfd34a45fdc1d8153f6bdcbaa3634
BLAKE2b-256 ca33e74da51ba2a9f262b37d741ba67186d1abc76459a45539d0cd6e92c8fc1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb4e971c636b8fae63c3d55ebb39f40e4126face9b4351b8b9f1fb477633d735
MD5 bfa3378f9addef4e11220dfda934ce88
BLAKE2b-256 89021c5248760ab64e7e3733246fcdda5fb9e3564473e8e87831d3218036a456

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 233353dca35df0f923a109173fb2506991f08ef026bf5255ca579ebfed3024a7
MD5 87cb5cc0a17670db2c6660097684e06c
BLAKE2b-256 96213eafbfd43bd3196e25bf6d4b52c3f0fc48fe3c6a9e0aa93d277823fe2ed6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d459905e055515071dcffc3d860e3a564c5eb7cb7e2ac2c8efd79ad94a37fa62
MD5 cd01516df19ad3f8e42b498a3730a1ee
BLAKE2b-256 32b8b3b9e9b10c65fdbd3cf0ee0e81d5caf278eb053949a32567805ad513a295

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.12-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 71548f32ed0ad40c49344a0e3b5928265840f76d7e6df788d7c53a6b29c34087
MD5 bb6c14bfd2ced9ef848bf33d0bc30fb6
BLAKE2b-256 5ea3414ebe43012ab0b66c5b390b8a1b2b9daade9d20f83e6e199e905a9b676d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bba6c75f80599225a5e5421770c91ef3f921e078d6fa63b817007af883fa6059
MD5 704aa56917a5c162cded7139b9650589
BLAKE2b-256 e06ea5ab0961a63b911b51dddd690ddaa6a9b2175ed85e568953f1700582bcdd

See more details on using hashes here.

File details

Details for the file pydivsufsort-0.0.12-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2418daab881b5d9d1995976dd395ddb0c6516f35bae48eab8e1a636bc67445cc
MD5 43f14769d52129c2ae7bca8faf340eb0
BLAKE2b-256 7c34f362e035ed42057aefe2d74690bf6d6fbe9d62c07b7df885ef5162a9a86f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 663d871cd881e3b9b24a9bff6d5d4a59cb686b2b2cecbf8d2a3b088c5e6ca0bb
MD5 79335dc19dfdee3ab47bd99a0308037e
BLAKE2b-256 56a7031331f543dd117baa2567bcdfb961f25d4b85221ed156c84246f08f1e51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1291d5c137d8f7506b5c9f602640689c02f9ed8492e83f60cd9d7b335e290790
MD5 42734aa2f48650e0eca3179b6136d0ee
BLAKE2b-256 ac4003abcd04fcf48084a1a21ddf09a8e07370fbbb6b50dfdd525a5aadc33853

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 a021ed3e1ae6edfcafbd1a3e66228e36c12d3347db27da5130c92c5a06475444
MD5 e29759e207b11f978f764658633815b0
BLAKE2b-256 bf1791ca1c0205a1e07015ae9d12913fdf7fa762ad878f261dbab9fcd8e25abb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9c68cf99b15ceb1da2c913dd2b6e05a1f613d0716ff9f9d58a3624408b5d3ff
MD5 d508197e268d5a32967c594ba2dd2829
BLAKE2b-256 2bc9ca780d86e39dc55b79b761a9bd54b830a159fd3b37d12a321b6001e02004

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ed436f9a79f9b1b4809fa1114e9bc8d84a04eb6284b4f71bc2ed58266e94036c
MD5 161ae93ae94dc5964948a2ae33099b57
BLAKE2b-256 948cf5578b55a84acf1dcb8e60412637d1ad79289d3c22779fd48701cc2bffa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 2205ac2749e7463767cfc024c36a69a117bb53f35f5095d64efe15710ead4a40
MD5 40984a118663cff1ec950201b09ecebf
BLAKE2b-256 496d6787c2a6c902f11f1755f30f789bb81d82ac3d35df9a0807b768abd29292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 bdfa237223e066325cd9f243b4232787fa93594a01a62b4b46583110a914bf2d
MD5 6ca23ee8b47e9e038ba2be85b091c3f5
BLAKE2b-256 ef1a41115cc5c646a5e3b981d6219aea243f3c8dee2b1374a377e499a487433d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76fcf4c411ae9de1e93f0dc2881fedf4f3950e8570dd8085bca262d85ab16aa4
MD5 fc0fff55e3a08a15beb5915a5c4d00ef
BLAKE2b-256 88b7c92b22feb4941a8350b437e1ecc6bf915b38e975af4bdba90950d14b2145

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.12-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b587b09394882ce37b78e4056ed757c146d6e2a01856533248e098734bab4e93
MD5 918e5ed5567999abb970e5169ce105a7
BLAKE2b-256 158a16ec8a71b81ae3fa7907d58083450e76e970ba50d9b7966869129beeef3d

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