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

Uploaded Source

Built Distributions

pydivsufsort-0.0.13-cp312-cp312-win_amd64.whl (260.4 kB view details)

Uploaded CPython 3.12 Windows x86-64

pydivsufsort-0.0.13-cp312-cp312-win32.whl (220.6 kB view details)

Uploaded CPython 3.12 Windows x86

pydivsufsort-0.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pydivsufsort-0.0.13-cp312-cp312-macosx_11_0_arm64.whl (285.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pydivsufsort-0.0.13-cp312-cp312-macosx_10_9_x86_64.whl (307.1 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp311-cp311-win_amd64.whl (267.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

pydivsufsort-0.0.13-cp311-cp311-win32.whl (223.7 kB view details)

Uploaded CPython 3.11 Windows x86

pydivsufsort-0.0.13-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.13-cp311-cp311-macosx_11_0_arm64.whl (283.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pydivsufsort-0.0.13-cp311-cp311-macosx_10_9_x86_64.whl (315.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp310-cp310-win_amd64.whl (266.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

pydivsufsort-0.0.13-cp310-cp310-win32.whl (223.5 kB view details)

Uploaded CPython 3.10 Windows x86

pydivsufsort-0.0.13-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.13-cp310-cp310-macosx_11_0_arm64.whl (284.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pydivsufsort-0.0.13-cp310-cp310-macosx_10_9_x86_64.whl (316.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp39-cp39-win_amd64.whl (266.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

pydivsufsort-0.0.13-cp39-cp39-win32.whl (223.9 kB view details)

Uploaded CPython 3.9 Windows x86

pydivsufsort-0.0.13-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.13-cp39-cp39-macosx_11_0_arm64.whl (284.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pydivsufsort-0.0.13-cp39-cp39-macosx_10_9_x86_64.whl (316.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp38-cp38-win_amd64.whl (268.6 kB view details)

Uploaded CPython 3.8 Windows x86-64

pydivsufsort-0.0.13-cp38-cp38-win32.whl (225.6 kB view details)

Uploaded CPython 3.8 Windows x86

pydivsufsort-0.0.13-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.13-cp38-cp38-macosx_11_0_arm64.whl (282.4 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pydivsufsort-0.0.13-cp38-cp38-macosx_10_9_x86_64.whl (313.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp37-cp37m-win_amd64.whl (259.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

pydivsufsort-0.0.13-cp37-cp37m-win32.whl (220.5 kB view details)

Uploaded CPython 3.7m Windows x86

pydivsufsort-0.0.13-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.13-cp37-cp37m-macosx_10_9_x86_64.whl (308.9 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pydivsufsort-0.0.13-cp36-cp36m-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

pydivsufsort-0.0.13-cp36-cp36m-win32.whl (230.2 kB view details)

Uploaded CPython 3.6m Windows x86

pydivsufsort-0.0.13-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.13-cp36-cp36m-macosx_10_9_x86_64.whl (305.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.13.tar.gz
Algorithm Hash digest
SHA256 919dd8df6dfbdc106434307af89f0f77fd6217fdb864745472569477264edb5f
MD5 5bd2f9706ea03ed69a558004f7509596
BLAKE2b-256 5a2c7b99bcd518da6fd2b5e744acacf3a2d10ad80f2ff0cf71f97bb6bb07389f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d39f3c3d09035fd9950b1f62480d019bcb0ecb172d9d0f7361b7e7bbb075419e
MD5 6ce9b5c5159f3b0fc07fbb869f6cf32b
BLAKE2b-256 9afd094a8b91eb5e4681498b7ec8201fc4fdf92e642107a732f3137b722a2326

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 4cdcc8acf69d85af09b3db618a86e1fecc89a6bae65e2977e45652efea6480c7
MD5 082dcbcafd660870aa7253cd630a86bc
BLAKE2b-256 a9b752831f8e29008fc5a8e182d3c33547e83dd38a34c0b665d9fe3e9196910f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9464c18dcc3b1616c7314078b74e5284ebe01a18f502ad9881c9751217d52433
MD5 203285a585756ff7bbee9edf2f07dd8a
BLAKE2b-256 a465475fe332bdf482ad96b668cb6c2630ff5f465b33301ba330ea6e67eba00b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdac1efeded8167c9bc3bd8cd156b5d84e461c663ad7bda538ec225f8806d0e8
MD5 6c8668b793063c5c8eddbe8ee41ecea2
BLAKE2b-256 27631691a31ec6d8ba9e233f23b96167d749103819ee8dc5cd3efa1902bb74b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79bdd379a783131f88dad6862cd31cdf91d173d39d29a71bf6665a4b30ba9059
MD5 b0c44aac76b24b0055b978a581688503
BLAKE2b-256 b4939a612bc011355f71bd16ec0b0c9aae3fa74bbcffa561b7f82326645b3b7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a4e3fe1e83faa9494ff8cfa5740221bb38ed2f31b0070a0d3b5c4d905bc1bc00
MD5 f7e961d4caacfdefee8d409c50413b8f
BLAKE2b-256 0d41d3fcee0997f7df1f041184a0e1e8aef98df92d0e9fb4db1c7bc5a74891e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 1582cf94160cb33d14ec6ab0d4a7a0a5bc2dae22d95659cd66d9513a758f9921
MD5 1e4826aa874d24652614560eee02cfa1
BLAKE2b-256 be2a1e9b20cc8f6d9b5cc01af3558f7092248e0c477d537b60f3f6b766db056c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 478cd5f305efff0708fdaaefa3152cdc80a311e78fef95ac3c3996b6e1eedc0f
MD5 d3fac5dd6b17ab34f89e9cdaafaaf2ea
BLAKE2b-256 5b9b834ffdad4ffe786f025e2f8bedf71ad3a640a3f85490c92437c123680a9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 deb28de7b47b8899b86b523d96874470f738d501d7b8a91bfcfd56b18124c557
MD5 b04ea2fc332d42d5ebd815e88f2441e6
BLAKE2b-256 3bae15743f568dce97a4ca88e22d8ede526b7fc8134993be21bb851eb2aaf517

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9168322d532948999a2db6504e1439020454c19af789a06907e7a0e7129e2ba4
MD5 08fedc7a4da81233f2caeef67c6ef475
BLAKE2b-256 87311929ab94aa0e28589aa05ab77bbdd0b35d7f8d28feed2a9ce463c244e51f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3229cb9e2a741b42a2c7193dcd7785a7f53e822fd39a0a4a41c38ff29913403
MD5 aa0f0490b47b50d51a416e02c3060450
BLAKE2b-256 4dd9374b5fc1e7232e82f5525e045e5b791bed489f3ad1fb86ceb1da614206f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6a45b6b69b31b20f81e76590ac67ad51f730d086fdc51ebd80efc185252ef30b
MD5 437bb6f7d2461a0852b7844634fbebce
BLAKE2b-256 77ea03b809bd83a0cea48cc80283a1efa707e1bed78c341327fc3bc9bbf4c494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5f2d6e487068d85f73476750bc5fc16a67c973ece65ee7b5bf0929890b8ee45
MD5 2fad4e4fba7ad2135fdfe2c54690cf6b
BLAKE2b-256 bfc80c50219f75e37fe20ddcfa809f8b9a95447c9eec5e5579c9078401dbdb3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bd0834ea5a2e4166904e9576ac1ebd8d047ae431f8c8e1929550817ac6806c0
MD5 79be8ae05b6f59e5047211166df0072d
BLAKE2b-256 453dc559b5d2a9d9505c7c97d4fa6ce6c2e61b8b2525fc0448c03883831168aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 da80abf1fd6d04e40f56bc109d116d76e62871c0622c1de592b2d76d11ea5be8
MD5 d3bb2c8d744b1b3027edc1f387b67858
BLAKE2b-256 19aa19eac108a5b7d8c3323362bf48e3b51cbe5cd040706a4ec2b83b4e39dd57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 175b77fd0b0238291b8eb791cfaa1e7917570dd10feabd51a48187bff3179b7d
MD5 ab6a37aab74280106b3aa185c005da8c
BLAKE2b-256 63a85d1d5d6ab0cd465f3979a0dfed225fce64ed678dbe26d594343e9a9fe0a8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.13-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 f1612cba7bc9996b0b214c4d5c1309a8a4300234ff0ece67d803af5a353d2867
MD5 696f0c141b933945e3e8158ff3a6202c
BLAKE2b-256 3d8d0662255589dfe16af6d4d70d81b2f59b58fff33121268bff221ceb663fca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25ce3b324b36849899edb4568b2bf7f919b5db2a374b8f236f23bf68d2e34fc5
MD5 4b64be0010db149cfe8e91b8d85139ba
BLAKE2b-256 35fcd2c7ada8f5ea480c399d8c5efc77997b8d91e4ce4113bcca1efae3f32267

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c316d6f95150f613a984382b6774d943597804bd777003298e5feae1a7c042c
MD5 29c0ac9468a16522f629a7bd6dfc5bce
BLAKE2b-256 a24a8579c0d57d9f0ddd2de37ddaccc1a48151d72687854c71033df731699854

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e933501d0c3ea1470ed30ca370caf52c7e624079bdd5f648bedd4780df11481
MD5 be15c131ab3f0cf88d6ee0229e006d52
BLAKE2b-256 8c0aef9d9c5a37b45022f103d9226fad3aba95a31d368dd504d27936672c209e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 07eb6ddb8b308fd52225d72bed3094140cfb4b1e1a14abb89162e663d35d3711
MD5 2904a9aa1d4fd0f307642c6acfe1de56
BLAKE2b-256 1f18f503a5fbfe9fa283f117de4afae1317003d3a13399275fab5987451f43f6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pydivsufsort-0.0.13-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 f27d94588b2ecbe2e9b27fbc591d6e2a445b0fe6a67a774530afde135e5991e5
MD5 3c3cf822b2afcca50817a348274c8e86
BLAKE2b-256 922f61c877479073abff89bf5978cd206bde12030785fec58c46227ea58fb798

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d89f2ec57961c6d4fba8eb1e2b0bbbe3e71ff1fc474dda3ca21d65d721ef83b
MD5 7a353321e555d64fb056943c1213a716
BLAKE2b-256 e43cbbe9f79c80c8750c20c19ddfe3f8bd6bc1ae34912eaaf44d2fd73a0bc4af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed9e49d02ee7159a9b37c4f0729260bc7c78914180786265e7fbd7261394a8ba
MD5 e584afeca59eca10cbf5f5ff4413aa28
BLAKE2b-256 22d5559142ed162d21e61b3a78f8872fddfabc69925fabd673bf20795fb9a510

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a0964c8b76de58046a24c6ffdb6a019db186b1f73b3928230194d6633a756c81
MD5 65bc458836d01c26cc3dbf0db7c88065
BLAKE2b-256 80835d5a15f7b4e3958f8f56dd2b11b92d404fda4cb07270ebf2b7546fbd3fd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3f177cde972b22d1fb749f2d9a738a0fd9f09f10a8eadf41fa8490c097422dfd
MD5 157d258facbf2cd43ebf510270452f5e
BLAKE2b-256 199e18d0b4e6e2bd808444a26e7f0f7e13ec52843326a25f7c70da142628f18b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 50fb3a1cd33e7903ea8afd7142412460c95473715a97e676b12ea678fe77c20f
MD5 dc86bcae8b6985da2f1d4afc90b77d2b
BLAKE2b-256 6ad207fea7891237038737c8236584012eeac538eba4ac723e95f542886394ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9a5f26f5249e28f33aab297e3c3ebd67b3e7b1f8fec3251c3e45c3bfbeb63f2
MD5 751f88207393def63b6bfa4c7d68263a
BLAKE2b-256 d5949262cf901108ad2ea1156a33efba849b2c6a8d759d0f6cf956033ab832e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9e8977a7170ffcda5ab4aa2179945ce71b9ea9fb0770b5d4bb41cdd856cc68e3
MD5 905400174d4ddb3b5f2cbe4009ca8e17
BLAKE2b-256 88cd4d72357780f7974b5c4260cb347d05ae264541f036e14bae17a5daf702e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 929baff38288012d1570853a9d38f9a737da07c5fbd73211ac3325370c6c0e30
MD5 da0cba8fb2e2c35d822b4346c3d575a2
BLAKE2b-256 095e928349985f310cfd47907807df81fd4b6d6370c176da7ea608db48202b71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 ade972cf6501c0d861aafa67740033ca3c33f0104e808fbdda921acdb6498551
MD5 2719768bac97cdda9caf7046279a53b4
BLAKE2b-256 c3bb902f9e120893026e91647fca94047befeffe87e095ae8c3e681465f83a6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27221f2804bde9bfdc1133c67cee94daddc645c503389a9cc1977113561fc9f1
MD5 d2622d6f287f50f56d2bebd6f7bb62b7
BLAKE2b-256 41540cb0200a16289a65dce2110dcf696d611f32bf9651340256e510542d9d65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydivsufsort-0.0.13-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 74773fae6ddaca6aa97aa5b3d49c0ff3aaa8c6634a2be82d06524a56e14033e9
MD5 f693048dfd1453a7ce9985e5d74e0dbc
BLAKE2b-256 0e95e6b218fac2562070923990af9d768d5b3fdf1297ebc4177a872dafb3686b

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