pyrsdameraulevenshtein


Namepyrsdameraulevenshtein JSON
Version 1.0.4 PyPI version JSON
download
home_pageNone
SummaryDamererau-Levenshtein implementation with Rust for high-performance.
upload_time2023-10-17 13:28:20
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseGPL-3.0-or-later
keywords distance rust distance dameraulevenshtein damerau levenshtein
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Rust implementation of the Damerau-Levenshtein distance

[Damerau-Levenshtein](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance) implementation in Rust as
Python package.
You should use this package if you need to calculate a distance metric for lists of integers or strings, and you need
high-performance.
If you only need to check the distance between two strings
checkout [editdistance](https://github.com/roy-ht/editdistance) or [jellyfish](https://github.com/jamesturk/jellyfish).

## Install

```shell
pip install pyrsdameraulevenshtein
```

## Use

```python
import pyrsdameraulevenshtein as dl

distance = dl.distance_int([1, 2, 3], [1, 3])
# distance = 1
normalized_distance = dl.normalized_distance_int([1, 2, 3], [1, 3])
# normalized_distance = 0.33
similarity = dl.similarity_int([1, 2, 3], [1, 3])
# similarity = 0.66
distance = dl.distance_str(["A", "B", "C"], ["A", "C"])
# distance = 1
normalized_distance = dl.normalized_distance_str(["A", "B", "C"], ["A", "C"])
# normalized_distance = 0.33
similarity = dl.similarity_str(["A", "B", "C"], ["A", "C"])
# similarity = 0.66
distance = dl.distance_unicode("ABC", "AC")
# distance = 1
normalized_distance = dl.normalized_distance_unicode("ABC", "AC")
# normalized_distance = 0.33
similarity = dl.similarity_unicode("ABC", "AC")
# similarity = 0.66
```

## Get started

1. First, create a virtual python environment.
2. Install packages `pip install -r requirements.txt`
3. Create the Rust binary
    1. Full performance: `maturin build --release` and `pip install target/wheels/*.whl`
    2. Develop version:  `maturin develop`
4. Run the tests `python tests/DamerauLevenshteinTest.py`

## Performance

Tests are executed on a Mac Mini with M1 chip with Python 3.10.
Redo these tests in [tests/DamerauLevenshteinTest.py](tests/DamerauLevenshteinTest.py).

#### List comparisons

```python
import random
import time
import pyrsdameraulevenshtein
from fastDamerauLevenshtein import damerauLevenshtein
from pyxdameraulevenshtein import damerau_levenshtein_distance

n = 100000
x = 10

print("Int lists:")
a_lists = [random.sample(list(range(x)), k=x, counts=[x for i in range(x)]) for i in range(n)]
b_lists = [random.sample(list(range(x)), k=x, counts=[x for i in range(x)]) for i in range(n)]
tic = time.perf_counter()
for a, b in zip(a_lists, b_lists):
    result = pyrsdameraulevenshtein.distance_int(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, THIS implementation")
# 0.0847 seconds, THIS implementation <<< BEST PERFORMANCE
tic = time.perf_counter()
for a, b in zip(a_lists, b_lists):
    result = damerau_levenshtein_distance(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, pyxdameraulevenshtein")
# 0.3073 seconds, pyxdameraulevenshtein
tic = time.perf_counter()
for a, b in zip(a_lists, b_lists):
    result = damerauLevenshtein(a, b, similarity=False)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, fastDamerauLevenshtein")
# 0.1257 seconds, fastDamerauLevenshtein
```

#### String comparisons

```python
import random
import time
import jellyfish
import textdistance
import pyrsdameraulevenshtein
from fastDamerauLevenshtein import damerauLevenshtein
from pyxdameraulevenshtein import damerau_levenshtein_distance

n = 100000
x = 10

print("Strings:")
a_strings = [
    "".join(random.sample(list(chr(ord("A") + i) for i in range(x)), k=x, counts=[x for i in range(x)]))
    for y in range(n)]
b_strings = [
    "".join(random.sample(list(chr(ord("A") + i) for i in range(x)), k=x, counts=[x for i in range(x)]))
    for y in range(n)]
tic = time.perf_counter()
for a, b in zip(a_strings, b_strings):
    result = pyrsdameraulevenshtein.distance_unicode(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, THIS implementation")
# 0.0764 seconds, THIS implementation
tic = time.perf_counter()
for a, b in zip(a_strings, b_strings):
    result = damerau_levenshtein_distance(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, pyxdameraulevenshtein")
# 0.3925 seconds, pyxdameraulevenshtein
tic = time.perf_counter()
for a, b in zip(a_strings, b_strings):
    result = damerauLevenshtein(a, b, similarity=False)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, fastDamerauLevenshtein")
# 0.1275 seconds, fastDamerauLevenshtein
tic = time.perf_counter()
for a, b in zip(a_strings, b_strings):
    result = jellyfish.damerau_levenshtein_distance(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, jellyfish.damerau_levenshtein_distance")
# 0.0546 seconds, jellyfish.damerau_levenshtein_distance
tic = time.perf_counter()
for a, b in zip(a_strings, b_strings):
    result = textdistance.DamerauLevenshtein(a, b)
toc = time.perf_counter()
print(f"{toc - tic:0.4f} seconds, textdistance.DamerauLevenshtein")
# 0.0191 seconds, textdistance.DamerauLevenshtein <<< BEST PERFORMANCE
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyrsdameraulevenshtein",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "distance,rust,distance,dameraulevenshtein,damerau,levenshtein",
    "author": null,
    "author_email": "Jonas Blatt <jonblatt1992@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/31/65/0fb74d5eb04e4e6fec04890cbe588dae4ffd5d1f957d6ebde869a109eb21/pyrsdameraulevenshtein-1.0.4.tar.gz",
    "platform": null,
    "description": "# Rust implementation of the Damerau-Levenshtein distance\n\n[Damerau-Levenshtein](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance) implementation in Rust as\nPython package.\nYou should use this package if you need to calculate a distance metric for lists of integers or strings, and you need\nhigh-performance.\nIf you only need to check the distance between two strings\ncheckout [editdistance](https://github.com/roy-ht/editdistance) or [jellyfish](https://github.com/jamesturk/jellyfish).\n\n## Install\n\n```shell\npip install pyrsdameraulevenshtein\n```\n\n## Use\n\n```python\nimport pyrsdameraulevenshtein as dl\n\ndistance = dl.distance_int([1, 2, 3], [1, 3])\n# distance = 1\nnormalized_distance = dl.normalized_distance_int([1, 2, 3], [1, 3])\n# normalized_distance = 0.33\nsimilarity = dl.similarity_int([1, 2, 3], [1, 3])\n# similarity = 0.66\ndistance = dl.distance_str([\"A\", \"B\", \"C\"], [\"A\", \"C\"])\n# distance = 1\nnormalized_distance = dl.normalized_distance_str([\"A\", \"B\", \"C\"], [\"A\", \"C\"])\n# normalized_distance = 0.33\nsimilarity = dl.similarity_str([\"A\", \"B\", \"C\"], [\"A\", \"C\"])\n# similarity = 0.66\ndistance = dl.distance_unicode(\"ABC\", \"AC\")\n# distance = 1\nnormalized_distance = dl.normalized_distance_unicode(\"ABC\", \"AC\")\n# normalized_distance = 0.33\nsimilarity = dl.similarity_unicode(\"ABC\", \"AC\")\n# similarity = 0.66\n```\n\n## Get started\n\n1. First, create a virtual python environment.\n2. Install packages `pip install -r requirements.txt`\n3. Create the Rust binary\n    1. Full performance: `maturin build --release` and `pip install target/wheels/*.whl`\n    2. Develop version:  `maturin develop`\n4. Run the tests `python tests/DamerauLevenshteinTest.py`\n\n## Performance\n\nTests are executed on a Mac Mini with M1 chip with Python 3.10.\nRedo these tests in [tests/DamerauLevenshteinTest.py](tests/DamerauLevenshteinTest.py).\n\n#### List comparisons\n\n```python\nimport random\nimport time\nimport pyrsdameraulevenshtein\nfrom fastDamerauLevenshtein import damerauLevenshtein\nfrom pyxdameraulevenshtein import damerau_levenshtein_distance\n\nn = 100000\nx = 10\n\nprint(\"Int lists:\")\na_lists = [random.sample(list(range(x)), k=x, counts=[x for i in range(x)]) for i in range(n)]\nb_lists = [random.sample(list(range(x)), k=x, counts=[x for i in range(x)]) for i in range(n)]\ntic = time.perf_counter()\nfor a, b in zip(a_lists, b_lists):\n    result = pyrsdameraulevenshtein.distance_int(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, THIS implementation\")\n# 0.0847 seconds, THIS implementation <<< BEST PERFORMANCE\ntic = time.perf_counter()\nfor a, b in zip(a_lists, b_lists):\n    result = damerau_levenshtein_distance(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, pyxdameraulevenshtein\")\n# 0.3073 seconds, pyxdameraulevenshtein\ntic = time.perf_counter()\nfor a, b in zip(a_lists, b_lists):\n    result = damerauLevenshtein(a, b, similarity=False)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, fastDamerauLevenshtein\")\n# 0.1257 seconds, fastDamerauLevenshtein\n```\n\n#### String comparisons\n\n```python\nimport random\nimport time\nimport jellyfish\nimport textdistance\nimport pyrsdameraulevenshtein\nfrom fastDamerauLevenshtein import damerauLevenshtein\nfrom pyxdameraulevenshtein import damerau_levenshtein_distance\n\nn = 100000\nx = 10\n\nprint(\"Strings:\")\na_strings = [\n    \"\".join(random.sample(list(chr(ord(\"A\") + i) for i in range(x)), k=x, counts=[x for i in range(x)]))\n    for y in range(n)]\nb_strings = [\n    \"\".join(random.sample(list(chr(ord(\"A\") + i) for i in range(x)), k=x, counts=[x for i in range(x)]))\n    for y in range(n)]\ntic = time.perf_counter()\nfor a, b in zip(a_strings, b_strings):\n    result = pyrsdameraulevenshtein.distance_unicode(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, THIS implementation\")\n# 0.0764 seconds, THIS implementation\ntic = time.perf_counter()\nfor a, b in zip(a_strings, b_strings):\n    result = damerau_levenshtein_distance(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, pyxdameraulevenshtein\")\n# 0.3925 seconds, pyxdameraulevenshtein\ntic = time.perf_counter()\nfor a, b in zip(a_strings, b_strings):\n    result = damerauLevenshtein(a, b, similarity=False)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, fastDamerauLevenshtein\")\n# 0.1275 seconds, fastDamerauLevenshtein\ntic = time.perf_counter()\nfor a, b in zip(a_strings, b_strings):\n    result = jellyfish.damerau_levenshtein_distance(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, jellyfish.damerau_levenshtein_distance\")\n# 0.0546 seconds, jellyfish.damerau_levenshtein_distance\ntic = time.perf_counter()\nfor a, b in zip(a_strings, b_strings):\n    result = textdistance.DamerauLevenshtein(a, b)\ntoc = time.perf_counter()\nprint(f\"{toc - tic:0.4f} seconds, textdistance.DamerauLevenshtein\")\n# 0.0191 seconds, textdistance.DamerauLevenshtein <<< BEST PERFORMANCE\n```\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "Damererau-Levenshtein implementation with Rust for high-performance.",
    "version": "1.0.4",
    "project_urls": null,
    "split_keywords": [
        "distance",
        "rust",
        "distance",
        "dameraulevenshtein",
        "damerau",
        "levenshtein"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96d125fbb81c66e84037e9ecde63fe6b9f3be20a1b7e9c6b2eb024ca6b9e4261",
                "md5": "a722093020fcda01d3dc02b80496a538",
                "sha256": "be0e5b9c1e347ade6cc6a273c3db673f3195b1e33fcc42f3b590927977a13d17"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-macosx_10_7_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a722093020fcda01d3dc02b80496a538",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 266928,
            "upload_time": "2023-10-17T13:27:53",
            "upload_time_iso_8601": "2023-10-17T13:27:53.052031Z",
            "url": "https://files.pythonhosted.org/packages/96/d1/25fbb81c66e84037e9ecde63fe6b9f3be20a1b7e9c6b2eb024ca6b9e4261/pyrsdameraulevenshtein-1.0.4-cp311-cp311-macosx_10_7_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "87eec1225b170692f7c66cbf319752ca4c928400dc62c9f9d25ac952186e8c48",
                "md5": "de6239a898879f2189bcca28eb5dbfe0",
                "sha256": "c565a059361ff8ccbbb80c1b4968793e702574c1f6b82c0ae74e94dcc59589f3"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "de6239a898879f2189bcca28eb5dbfe0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 262569,
            "upload_time": "2023-10-17T13:27:54",
            "upload_time_iso_8601": "2023-10-17T13:27:54.552691Z",
            "url": "https://files.pythonhosted.org/packages/87/ee/c1225b170692f7c66cbf319752ca4c928400dc62c9f9d25ac952186e8c48/pyrsdameraulevenshtein-1.0.4-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e7b99b882b7bd64233d75a3cca8dcdf95e852f99879bb2ea3449d9769614b60",
                "md5": "df6ebd8fdfa6a5d2f8214dadc2f1305b",
                "sha256": "c960bddc16afb1b805999eb8630c7f57cf7f69934b9b21222f0433d948399089"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "df6ebd8fdfa6a5d2f8214dadc2f1305b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1156926,
            "upload_time": "2023-10-17T13:27:56",
            "upload_time_iso_8601": "2023-10-17T13:27:56.401661Z",
            "url": "https://files.pythonhosted.org/packages/9e/7b/99b882b7bd64233d75a3cca8dcdf95e852f99879bb2ea3449d9769614b60/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "627cc9b6c22bb5229f54e5666942c0ad27012d0b068eb28be9da595793791c7c",
                "md5": "cc11961d055c8501144d303bb9c45a60",
                "sha256": "58696478704bcf9020fc00eb53b06f22090af02ed10a40ba1ad02b892c6abae0"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "cc11961d055c8501144d303bb9c45a60",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1150966,
            "upload_time": "2023-10-17T13:27:57",
            "upload_time_iso_8601": "2023-10-17T13:27:57.899461Z",
            "url": "https://files.pythonhosted.org/packages/62/7c/c9b6c22bb5229f54e5666942c0ad27012d0b068eb28be9da595793791c7c/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3262c1fe96410c9e408c410ff4dc02f5226fe5784f31ca9f6352d2e5613eac9b",
                "md5": "7fd20ff28f40763cc3566d456cd11ce4",
                "sha256": "440fbabe5e6c9a8e5f73b0bad28ffc0052cf2c5be8741bcc0fb0583006356e8d"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "7fd20ff28f40763cc3566d456cd11ce4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1273868,
            "upload_time": "2023-10-17T13:28:00",
            "upload_time_iso_8601": "2023-10-17T13:28:00.010563Z",
            "url": "https://files.pythonhosted.org/packages/32/62/c1fe96410c9e408c410ff4dc02f5226fe5784f31ca9f6352d2e5613eac9b/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c2ec31457b40fc24ecbf9594578c11e330943cd8358ff9fcfa6d490e0cb3024",
                "md5": "0cba9a22982632fcd2383d7252c5ff31",
                "sha256": "530f80c626677b8edd4379e1cf5ac76372525a372ac6821612d825aded26d2be"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "0cba9a22982632fcd2383d7252c5ff31",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1330756,
            "upload_time": "2023-10-17T13:28:02",
            "upload_time_iso_8601": "2023-10-17T13:28:02.976130Z",
            "url": "https://files.pythonhosted.org/packages/9c/2e/c31457b40fc24ecbf9594578c11e330943cd8358ff9fcfa6d490e0cb3024/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "429eb377f60d12b953fe9546a460a2bf311d2f739d778e9867fd281b20184821",
                "md5": "99b0871f4719276ca02f35cf7ba50805",
                "sha256": "5003ccebbb47ca8def8d0b33d9486331ed02454a0b5bb19ccdabb2ef7feae67c"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "99b0871f4719276ca02f35cf7ba50805",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1148127,
            "upload_time": "2023-10-17T13:28:04",
            "upload_time_iso_8601": "2023-10-17T13:28:04.467272Z",
            "url": "https://files.pythonhosted.org/packages/42/9e/b377f60d12b953fe9546a460a2bf311d2f739d778e9867fd281b20184821/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9409713126a51ebf0625d26d99b4c7c6034ea968923af486ead3125f69f191ed",
                "md5": "62217bfa9de974be2a3033ba067ffd77",
                "sha256": "247f2ef33f718391cb8a09566c16cb2bfa49f9fd2608ef8d55e003ef03890ff5"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "62217bfa9de974be2a3033ba067ffd77",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1174875,
            "upload_time": "2023-10-17T13:28:06",
            "upload_time_iso_8601": "2023-10-17T13:28:06.028707Z",
            "url": "https://files.pythonhosted.org/packages/94/09/713126a51ebf0625d26d99b4c7c6034ea968923af486ead3125f69f191ed/pyrsdameraulevenshtein-1.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b444ff73989e3317065f67eaa4fe232db851d1674530382965c5b7d4af2a8653",
                "md5": "fea5c958306d1fd9ac1555362b8d9ffc",
                "sha256": "6a597ee954b32605334923db24e3978fafdb41c23c48ee01a7d8392e60cee776"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-none-win32.whl",
            "has_sig": false,
            "md5_digest": "fea5c958306d1fd9ac1555362b8d9ffc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 129502,
            "upload_time": "2023-10-17T13:28:07",
            "upload_time_iso_8601": "2023-10-17T13:28:07.909347Z",
            "url": "https://files.pythonhosted.org/packages/b4/44/ff73989e3317065f67eaa4fe232db851d1674530382965c5b7d4af2a8653/pyrsdameraulevenshtein-1.0.4-cp311-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bf7b9cad2745f1b07c3a5b19836a71851f0c9765f09c83959f0640ff0607ddb9",
                "md5": "5f5fd62f03e6d54be98f12b721e9c092",
                "sha256": "c23722de1177c63958b67fb41605aabf9c93aaea56bce32a533b655e9b354ae9"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5f5fd62f03e6d54be98f12b721e9c092",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 132100,
            "upload_time": "2023-10-17T13:28:08",
            "upload_time_iso_8601": "2023-10-17T13:28:08.929894Z",
            "url": "https://files.pythonhosted.org/packages/bf/7b/9cad2745f1b07c3a5b19836a71851f0c9765f09c83959f0640ff0607ddb9/pyrsdameraulevenshtein-1.0.4-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b1e22a6c9be5604fe9c5a7dfe1cbd98d13a1df38e5fe0ad6a204fc12841b35bd",
                "md5": "0c5ffa9cf574e63d4de135135a2e8aba",
                "sha256": "b64a7423cca933713e9c2862e938a25a6ca9026cbd20c4f731ba8464854bb928"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0c5ffa9cf574e63d4de135135a2e8aba",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1151566,
            "upload_time": "2023-10-17T13:28:10",
            "upload_time_iso_8601": "2023-10-17T13:28:10.647050Z",
            "url": "https://files.pythonhosted.org/packages/b1/e2/2a6c9be5604fe9c5a7dfe1cbd98d13a1df38e5fe0ad6a204fc12841b35bd/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "06b29cf35f6007c5591dc5dded4c8d0b40e5197098dfe18667f6b830c8743669",
                "md5": "176d1046594bfbfcdbfa80f1e88fd102",
                "sha256": "924f26e82474d819220b0c1ad0a4a8c626706f574a47cb16587162efa51b7d92"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "176d1046594bfbfcdbfa80f1e88fd102",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1149183,
            "upload_time": "2023-10-17T13:28:12",
            "upload_time_iso_8601": "2023-10-17T13:28:12.424333Z",
            "url": "https://files.pythonhosted.org/packages/06/b2/9cf35f6007c5591dc5dded4c8d0b40e5197098dfe18667f6b830c8743669/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "182e7935f7f0193b4db021bc99a720fc761c204df08146eddf1d168e3f8a58f1",
                "md5": "be3c6e71dc7fb5113c7500b8e8254126",
                "sha256": "15025344731b7b4c9a7b481677f88194878ed3d3977b4a3fec987cf4ec448c42"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "be3c6e71dc7fb5113c7500b8e8254126",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1273013,
            "upload_time": "2023-10-17T13:28:13",
            "upload_time_iso_8601": "2023-10-17T13:28:13.970191Z",
            "url": "https://files.pythonhosted.org/packages/18/2e/7935f7f0193b4db021bc99a720fc761c204df08146eddf1d168e3f8a58f1/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c0d7e9433eb724a0f1ebce46b4c329cb1ce3e770a8ff40c3453396595df7c179",
                "md5": "cda65c035fc222df1bba0e82b1052343",
                "sha256": "711f8e43a1bcc3c68bc18fe1b1443bf9356488d10de78dee25d23ebe88962a1f"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "cda65c035fc222df1bba0e82b1052343",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1314505,
            "upload_time": "2023-10-17T13:28:16",
            "upload_time_iso_8601": "2023-10-17T13:28:16.508282Z",
            "url": "https://files.pythonhosted.org/packages/c0/d7/e9433eb724a0f1ebce46b4c329cb1ce3e770a8ff40c3453396595df7c179/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0bae2d0ffb6415f3615c26e655cbceeab502079ead7aba09933c17c47449c462",
                "md5": "28fbef5691aba790114f170c15394227",
                "sha256": "05221efe5de5379f21d15a60f5bb4481429dae6edc6994bc2e0c16de84832628"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "28fbef5691aba790114f170c15394227",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1146954,
            "upload_time": "2023-10-17T13:28:17",
            "upload_time_iso_8601": "2023-10-17T13:28:17.846090Z",
            "url": "https://files.pythonhosted.org/packages/0b/ae/2d0ffb6415f3615c26e655cbceeab502079ead7aba09933c17c47449c462/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3701552d690780d8c56d30707fa2e618c316ae1da12e60ee2c3eb196559465f",
                "md5": "a3bd5498f40e040e3d9430677220cf12",
                "sha256": "8861e434c49743382167f44e33e76877796670c56f5f150a0164a942ba265989"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "a3bd5498f40e040e3d9430677220cf12",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1176676,
            "upload_time": "2023-10-17T13:28:19",
            "upload_time_iso_8601": "2023-10-17T13:28:19.412420Z",
            "url": "https://files.pythonhosted.org/packages/f3/70/1552d690780d8c56d30707fa2e618c316ae1da12e60ee2c3eb196559465f/pyrsdameraulevenshtein-1.0.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "31650fb74d5eb04e4e6fec04890cbe588dae4ffd5d1f957d6ebde869a109eb21",
                "md5": "cccb587b63c2919dbccadf0044d59606",
                "sha256": "5d15d8c0ca4b8254a3b2bec7305b79e879864a30a456ded576474df0d479b55c"
            },
            "downloads": -1,
            "filename": "pyrsdameraulevenshtein-1.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "cccb587b63c2919dbccadf0044d59606",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 21109,
            "upload_time": "2023-10-17T13:28:20",
            "upload_time_iso_8601": "2023-10-17T13:28:20.802175Z",
            "url": "https://files.pythonhosted.org/packages/31/65/0fb74d5eb04e4e6fec04890cbe588dae4ffd5d1f957d6ebde869a109eb21/pyrsdameraulevenshtein-1.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-17 13:28:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyrsdameraulevenshtein"
}
        
Elapsed time: 0.13000s