{ "info": { "author": "orsinium", "author_email": "master_fess@mail.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Plugins", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Human Machine Interfaces" ], "description": "TextDistance\n============\n\n.. figure:: logo.png\n :alt: TextDistance logo\n\n TextDistance logo\n\n|Build Status| |PyPI version| |Status| |Code size| |License|\n\n**TextDistance** -- python library for comparing distance between two or\nmore sequences by many algorithms.\n\nFeatures:\n\n- 30+ algorithms\n- Pure python implementation\n- Simple usage\n- More than two sequences comparing\n- Some algorithms have more than one implementation in one class.\n- Optional numpy usage for maximum speed.\n\nAlgorithms\n----------\n\nEdit based\n~~~~~~~~~~\n\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| Algorithm | Class | Functions |\n+================================================================================================+==========================+==============================+\n| `Hamming `__ | ``Hamming`` | ``hamming`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `MLIPNS `__ | ``Mlipns`` | ``mlipns`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Levenshtein `__ | ``Levenshtein`` | ``levenshtein`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Damerau-Levenshtein `__ | ``DamerauLevenshtein`` | ``damerau_levenshtein`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Jaro-Winkler `__ | ``JaroWinkler`` | ``jaro_winkler``, ``jaro`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Strcmp95 `__ | ``StrCmp95`` | ``strcmp95`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Needleman-Wunsch `__ | ``NeedlemanWunsch`` | ``needleman_wunsch`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Gotoh `__ | ``Gotoh`` | ``gotoh`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n| `Smith-Waterman `__ | ``SmithWaterman`` | ``smith_waterman`` |\n+------------------------------------------------------------------------------------------------+--------------------------+------------------------------+\n\nToken based\n~~~~~~~~~~~\n\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| Algorithm | Class | Functions |\n+===========================================================================================================================+==================+=============================================+\n| `Jaccard index `__ | ``Jaccard`` | ``jaccard`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `S\u00f8rensen\u2013Dice coefficient `__ | ``Sorensen`` | ``sorensen``, ``sorensen_dice``, ``dice`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Tversky index `__ | ``Tversky`` | ``tversky`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Overlap coefficient `__ | ``Overlap`` | ``overlap`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Tanimoto distance `__ | ``Tanimoto`` | ``tanimoto`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Cosine similarity `__ | ``Cosine`` | ``cosine`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Monge-Elkan `__ | ``MongeElkan`` | ``monge_elkan`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n| `Bag distance `__ | ``Bag`` | ``bag`` |\n+---------------------------------------------------------------------------------------------------------------------------+------------------+---------------------------------------------+\n\nSequence based\n~~~~~~~~~~~~~~\n\n+-----------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------+\n| Algorithm | Class | Functions |\n+===============================================================================================================================================+=========================+==========================+\n| `longest common subsequence similarity `__ | ``LCSSeq`` | ``lcsseq`` |\n+-----------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------+\n| `longest common substring similarity `__ | ``LCSStr`` | ``lcsstr`` |\n+-----------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------+\n| `Ratcliff-Obershelp similarity `__ | ``RatcliffObershelp`` | ``ratcliff_obershelp`` |\n+-----------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------+\n\nCompression based\n~~~~~~~~~~~~~~~~~\n\n`Normalized compression\ndistance `__\nwith different compression algorithms.\n\nClassic compression algorithms:\n\n+---------------------------------------------------------------------------------+-----------------+------------------+\n| Algorithm | Class | Function |\n+=================================================================================+=================+==================+\n| `Arithmetic coding `__ | ``ArithNCD`` | ``arith_ncd`` |\n+---------------------------------------------------------------------------------+-----------------+------------------+\n| `RLE `__ | ``RLENCD`` | ``rle_ncd`` |\n+---------------------------------------------------------------------------------+-----------------+------------------+\n| `BWT RLE `__ | ``BWTRLENCD`` | ``bwtrle_ncd`` |\n+---------------------------------------------------------------------------------+-----------------+------------------+\n\nNormal compression algorithms:\n\n+----------------------------------------------------------------------------+------------------+-------------------+\n| Algorithm | Class | Function |\n+============================================================================+==================+===================+\n| Square Root | ``SqrtNCD`` | ``sqrt_ncd`` |\n+----------------------------------------------------------------------------+------------------+-------------------+\n| `Entropy `__ | ``EntropyNCD`` | ``entropy_ncd`` |\n+----------------------------------------------------------------------------+------------------+-------------------+\n\nWork in progress algorithms that compare two strings as array of bits:\n\n+-------------------------------------------------+---------------+----------------+\n| Algorithm | Class | Function |\n+=================================================+===============+================+\n| `BZ2 `__ | ``BZ2NCD`` | ``bz2_ncd`` |\n+-------------------------------------------------+---------------+----------------+\n| `LZMA `__ | ``LZMANCD`` | ``lzma_ncd`` |\n+-------------------------------------------------+---------------+----------------+\n| `ZLib `__ | ``ZLIBNCD`` | ``zlib_ncd`` |\n+-------------------------------------------------+---------------+----------------+\n\nSee `blog post `__ for more\ndetails about NCD.\n\nPhonetic\n~~~~~~~~\n\n+-----------------------------------------------------------------------------------+--------------+--------------+\n| Algorithm | Class | Functions |\n+===================================================================================+==============+==============+\n| `MRA `__ | ``MRA`` | ``mra`` |\n+-----------------------------------------------------------------------------------+--------------+--------------+\n| `Editex `__ | ``Editex`` | ``editex`` |\n+-----------------------------------------------------------------------------------+--------------+--------------+\n\nSimple\n~~~~~~\n\n+-----------------------+----------------+----------------+\n| Algorithm | Class | Functions |\n+=======================+================+================+\n| Prefix similarity | ``Prefix`` | ``prefix`` |\n+-----------------------+----------------+----------------+\n| Postfix similarity | ``Postfix`` | ``postfix`` |\n+-----------------------+----------------+----------------+\n| Length distance | ``Length`` | ``length`` |\n+-----------------------+----------------+----------------+\n| Identity similarity | ``Identity`` | ``identity`` |\n+-----------------------+----------------+----------------+\n| Matrix similarity | ``Matrix`` | ``matrix`` |\n+-----------------------+----------------+----------------+\n\nInstallation\n------------\n\nStable\n~~~~~~\n\nOnly pure python implementation:\n\n.. code:: bash\n\n pip install textdistance\n\nWith extra libraries for maximum speed:\n\n.. code:: bash\n\n pip install \"textdistance[extras]\"\n\nWith all libraries (required for `benchmarking <#benchmarks>`__ and\n`testing <#test>`__):\n\n.. code:: bash\n\n pip install \"textdistance[benchmark]\"\n\nWith algorithm specific extras:\n\n.. code:: bash\n\n pip install \"textdistance[Hamming]\"\n\nAlgorithms with available extras: ``DamerauLevenshtein``, ``Hamming``,\n``Jaro``, ``JaroWinkler``, ``Levenshtein``.\n\nDev\n~~~\n\nVia pip:\n\n.. code:: bash\n\n pip install -e git+https://github.com/orsinium/textdistance.git#egg=textdistance\n\nOr clone repo and install with some extras:\n\n.. code:: bash\n\n git clone https://github.com/orsinium/textdistance.git\n pip install -e \".[benchmark]\"\n\nUsage\n-----\n\nAll algorithms have 2 interfaces:\n\n1. Class with algorithm-specific params for customizing.\n2. Class instance with default params for quick and simple usage.\n\nAll algorithms have some common methods:\n\n1. ``.distance(*sequences)`` -- calculate distance between sequences.\n2. ``.similarity(*sequences)`` -- calculate similarity for sequences.\n3. ``.maximum(*sequences)`` -- maximum possible value for distance and\n similarity. For any sequence: ``distance + similarity == maximum``.\n4. ``.normalized_distance(*sequences)`` -- normalized distance between\n sequences. The return value is a float between 0 and 1, where 0 means\n equal, and 1 totally different.\n5. ``.normalized_similarity(*sequences)`` -- normalized similarity for\n sequences. The return value is a float between 0 and 1, where 0 means\n totally different, and 1 equal.\n\nMost common init arguments:\n\n1. ``qval`` -- q-value for split sequences into q-grams. Possible\n values:\n\n - 1 (default) -- compare sequences by chars.\n - 2 or more -- transform sequences to q-grams.\n - None -- split sequences by words.\n\n2. ``as_set`` -- for token-based algorithms:\n\n - True -- ``t`` and ``ttt`` is equal.\n - False (default) -- ``t`` and ``ttt`` is different.\n\nExample\n-------\n\nFor example, `Hamming\ndistance `__:\n\n.. code:: python\n\n import textdistance\n\n textdistance.hamming('test', 'text')\n # 1\n\n textdistance.hamming.distance('test', 'text')\n # 1\n\n textdistance.hamming.similarity('test', 'text')\n # 3\n\n textdistance.hamming.normalized_distance('test', 'text')\n # 0.25\n\n textdistance.hamming.normalized_similarity('test', 'text')\n # 0.75\n\n textdistance.Hamming(qval=2).distance('test', 'text')\n # 2\n\nAny other algorithms have same interface.\n\nExtra libraries\n---------------\n\nFor main algorithms textdistance try to call known external libraries\n(fastest first) if available (installed in your system) and possible\n(this implementation can compare this type of sequences).\n`Install <#installation>`__ textdistance with extras for this feature.\n\nYou can disable this by passing ``external=False`` argument on init:\n\n.. code:: python3\n\n import textdistance\n hamming = textdistance.Hamming(external=False)\n hamming('text', 'testit')\n # 3\n\nSupported libraries:\n\n1. `abydos `__\n2. `Distance `__\n3. `jellyfish `__\n4. `py\\_stringmatching `__\n5. `pylev `__\n6. `python-Levenshtein `__\n7. `pyxDamerauLevenshtein `__\n\nAlgorithms:\n\n1. DamerauLevenshtein\n2. Hamming\n3. Jaro\n4. JaroWinkler\n5. Levenshtein\n\nBenchmarks\n----------\n\nWithout extras installation:\n\n+--------------+------------+-------------+---------+\n| algorithm | library | function | time |\n+==============+============+=============+=========+\n| DamerauLeven | jellyfish | damerau\\_le | 0.00965 |\n| shtein | | venshtein\\_ | 294 |\n| | | distance | |\n+--------------+------------+-------------+---------+\n| DamerauLeven | pyxdamerau | damerau\\_le | 0.15137 |\n| shtein | levenshtei | venshtein\\_ | 8 |\n| | n | distance | |\n+--------------+------------+-------------+---------+\n| DamerauLeven | pylev | damerau\\_le | 0.76646 |\n| shtein | | venshtein | 1 |\n+--------------+------------+-------------+---------+\n| DamerauLeven | **textdist | DamerauLeve | 4.13463 |\n| shtein | ance** | nshtein | |\n+--------------+------------+-------------+---------+\n| DamerauLeven | abydos | damerau\\_le | 4.3831 |\n| shtein | | venshtein | |\n+--------------+------------+-------------+---------+\n| Hamming | Levenshtei | hamming | 0.00144 |\n| | n | | 28 |\n+--------------+------------+-------------+---------+\n| Hamming | jellyfish | hamming\\_di | 0.00240 |\n| | | stance | 262 |\n+--------------+------------+-------------+---------+\n| Hamming | distance | hamming | 0.03625 |\n| | | | 3 |\n+--------------+------------+-------------+---------+\n| Hamming | abydos | hamming | 0.03839 |\n| | | | 33 |\n+--------------+------------+-------------+---------+\n| Hamming | **textdist | Hamming | 0.17678 |\n| | ance** | | 1 |\n+--------------+------------+-------------+---------+\n| Jaro | Levenshtei | jaro | 0.00313 |\n| | n | | 561 |\n+--------------+------------+-------------+---------+\n| Jaro | jellyfish | jaro\\_dista | 0.00518 |\n| | | nce | 85 |\n+--------------+------------+-------------+---------+\n| Jaro | py\\_string | jaro | 0.18062 |\n| | matching | | 8 |\n+--------------+------------+-------------+---------+\n| Jaro | **textdist | Jaro | 0.27891 |\n| | ance** | | 7 |\n+--------------+------------+-------------+---------+\n| JaroWinkler | Levenshtei | jaro\\_winkl | 0.00319 |\n| | n | er | 735 |\n+--------------+------------+-------------+---------+\n| JaroWinkler | jellyfish | jaro\\_winkl | 0.00540 |\n| | | er | 443 |\n+--------------+------------+-------------+---------+\n| JaroWinkler | **textdist | JaroWinkler | 0.28962 |\n| | ance** | | 6 |\n+--------------+------------+-------------+---------+\n| Levenshtein | Levenshtei | distance | 0.00414 |\n| | n | | 404 |\n+--------------+------------+-------------+---------+\n| Levenshtein | jellyfish | levenshtein | 0.00601 |\n| | | \\_distance | 647 |\n+--------------+------------+-------------+---------+\n| Levenshtein | py\\_string | levenshtein | 0.25290 |\n| | matching | | 1 |\n+--------------+------------+-------------+---------+\n| Levenshtein | pylev | levenshtein | 0.56918 |\n| | | | 2 |\n+--------------+------------+-------------+---------+\n| Levenshtein | distance | levenshtein | 1.15726 |\n+--------------+------------+-------------+---------+\n| Levenshtein | abydos | levenshtein | 3.68451 |\n+--------------+------------+-------------+---------+\n| Levenshtein | **textdist | Levenshtein | 8.63674 |\n| | ance** | | |\n+--------------+------------+-------------+---------+\n\nTotal: 24 libs.\n\nYeah, so slow. Use TextDistance on production only with extras.\n\nTextdistance use benchmark's results for algorithm's optimization and\ntry to call fastest external lib first (if possible).\n\nYou can run benchmark manually on your system:\n\n.. code:: bash\n\n pip install textdistance[benchmark]\n python3 -m textdistance.benchmark\n\nTextDistance show benchmarks results table for your system and save\nlibraries priorities into ``libraries.json`` file in TextDistance's\nfolder. This file will be used by textdistance for calling fastest\nalgorithm implementation. Default\n`libraries.json `__ already included in\npackage.\n\nTest\n----\n\nYou can run tests via `tox `__:\n\n.. code:: bash\n\n sudo pip3 install tox\n tox\n\n.. |Build Status| image:: https://travis-ci.org/orsinium/textdistance.svg?branch=master\n :target: https://travis-ci.org/orsinium/textdistance\n.. |PyPI version| image:: https://img.shields.io/pypi/v/textdistance.svg\n :target: https://pypi.python.org/pypi/textdistance\n.. |Status| image:: https://img.shields.io/pypi/status/textdistance.svg\n :target: https://pypi.python.org/pypi/textdistance\n.. |Code size| image:: https://img.shields.io/github/languages/code-size/orsinium/textdistance.svg\n :target: https://github.com/orsinium/textdistance\n.. |License| image:: https://img.shields.io/pypi/l/textdistance.svg\n :target: LICENSE\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/orsinium/textdistance/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/orsinium/textdistance", "keywords": "distance between text strings sequences iterators", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "textdistance", "package_url": "https://pypi.org/project/textdistance/", "platform": "", "project_url": "https://pypi.org/project/textdistance/", "project_urls": { "Download": "https://github.com/orsinium/textdistance/tarball/master", "Homepage": "https://github.com/orsinium/textdistance" }, "release_url": "https://pypi.org/project/textdistance/4.1.5/", "requires_dist": [ "jellyfish ; extra == 'dameraulevenshtein'", "pyxDamerauLevenshtein ; extra == 'dameraulevenshtein'", "python-Levenshtein ; extra == 'hamming'", "jellyfish ; extra == 'hamming'", "distance ; extra == 'hamming'", "abydos ; extra == 'hamming'", "python-Levenshtein ; extra == 'jaro'", "jellyfish ; extra == 'jarowinkler'", "python-Levenshtein ; extra == 'levenshtein'", "abydos ; extra == 'all'", "jellyfish ; extra == 'all'", "numpy ; extra == 'all'", "py-stringmatching ; extra == 'all'", "python-Levenshtein ; extra == 'all'", "pyxDamerauLevenshtein ; extra == 'all'", "tabulate ; extra == 'all'", "abydos ; extra == 'benchmark'", "jellyfish ; extra == 'benchmark'", "numpy ; extra == 'benchmark'", "py-stringmatching ; extra == 'benchmark'", "python-Levenshtein ; extra == 'benchmark'", "pyxDamerauLevenshtein ; extra == 'benchmark'", "tabulate ; extra == 'benchmark'", "abydos ; extra == 'benchmarks'", "jellyfish ; extra == 'benchmarks'", "numpy ; extra == 'benchmarks'", "py-stringmatching ; extra == 'benchmarks'", "python-Levenshtein ; extra == 'benchmarks'", "pyxDamerauLevenshtein ; extra == 'benchmarks'", "tabulate ; extra == 'benchmarks'", "abydos ; extra == 'common'", "jellyfish ; extra == 'common'", "numpy ; extra == 'common'", "python-Levenshtein ; extra == 'common'", "pyxDamerauLevenshtein ; extra == 'common'", "abydos ; extra == 'extra'", "jellyfish ; extra == 'extra'", "numpy ; extra == 'extra'", "python-Levenshtein ; extra == 'extra'", "pyxDamerauLevenshtein ; extra == 'extra'", "abydos ; extra == 'extras'", "jellyfish ; extra == 'extras'", "numpy ; extra == 'extras'", "python-Levenshtein ; extra == 'extras'", "pyxDamerauLevenshtein ; extra == 'extras'" ], "requires_python": ">=2.7", "summary": "Compute distance between the two texts.", "version": "4.1.5" }, "last_serial": 5922987, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0ea04583fd99afb346378c60144fd089", "sha256": "09723fbaf99fc51f6096663dbdd5bf1e3922b9b5c964755647cc5b8f90feb793" }, "downloads": -1, "filename": "textdistance-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0ea04583fd99afb346378c60144fd089", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6355, "upload_time": "2017-05-05T08:59:35", "url": "https://files.pythonhosted.org/packages/0c/75/2a49803f09a770317ab111ab87b6df12604244019ccac0e2d5b3335596b2/textdistance-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "1eaacf69f60f8ff6c11dd5f19d455435", "sha256": "26ea623082a1b88ce8ec433e1a4260d9bd3471023faf08015fdb284437e3249f" }, "downloads": -1, "filename": "textdistance-2.0.0.tar.gz", "has_sig": false, "md5_digest": "1eaacf69f60f8ff6c11dd5f19d455435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9712, "upload_time": "2018-02-10T10:28:12", "url": "https://files.pythonhosted.org/packages/6c/da/b3ea5ebe0a7fe75ec132686945792ce0efb35a4c76eff75eaac34eee59ec/textdistance-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "f66a5c62c501f556e3b1e2fa8e259d5d", "sha256": "392df2e3a29c3f43981e13337cb2c8543e23a2ec5669e4eb70dc7bcaba260230" }, "downloads": -1, "filename": "textdistance-2.0.1.tar.gz", "has_sig": false, "md5_digest": "f66a5c62c501f556e3b1e2fa8e259d5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21898, "upload_time": "2018-02-10T10:51:39", "url": "https://files.pythonhosted.org/packages/d9/6c/9d40768fc3fed79e663a0b2ba43a2c5a111c607b509949209fba893de81c/textdistance-2.0.1.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "33303480a34af9fbe32a25640ca0f495", "sha256": "9e754ea4e53bdad5ca2a96ed7617bfe3720d62927433afa7737c732a0d0162d0" }, "downloads": -1, "filename": "textdistance-2.0.3.tar.gz", "has_sig": false, "md5_digest": "33303480a34af9fbe32a25640ca0f495", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20854, "upload_time": "2018-03-28T11:14:37", "url": "https://files.pythonhosted.org/packages/3e/88/e1413e702416d6b09e0bf6f5d20d941065e2ce9ee9de678cd2ae66a8da2f/textdistance-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "ffef7e603e693e71decd0abb9dfcdea1", "sha256": "2d11d63e99180404df3e43c1d75b071632b3f9a2445c5c97437c80bf91e9190c" }, "downloads": -1, "filename": "textdistance-2.0.4.tar.gz", "has_sig": false, "md5_digest": "ffef7e603e693e71decd0abb9dfcdea1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24078, "upload_time": "2018-04-03T09:18:39", "url": "https://files.pythonhosted.org/packages/dd/25/9b7abf923aa63a38ed96c57e69cbd6720912b559e7cfa1e26cc7189778eb/textdistance-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "fd8d7818c2fe9e3b8d50ba566c86a1b2", "sha256": "3f5b2c1340984e465e15fed65ff8740e67842c7f008b42a1a4c038abc7145eb4" }, "downloads": -1, "filename": "textdistance-2.0.5.tar.gz", "has_sig": false, "md5_digest": "fd8d7818c2fe9e3b8d50ba566c86a1b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28804, "upload_time": "2018-04-03T09:20:35", "url": "https://files.pythonhosted.org/packages/f1/96/e15464127fea387067eae73af9b0dd9c759336621339e47039d7080037ad/textdistance-2.0.5.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "aeadd7e7a1256042d680e07b35b293a4", "sha256": "df602b7bf59f1f2b4d508fa4e283eb4617af785bd68face56991ef05657923bc" }, "downloads": -1, "filename": "textdistance-3.0.0.tar.gz", "has_sig": false, "md5_digest": "aeadd7e7a1256042d680e07b35b293a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30039, "upload_time": "2018-03-31T08:19:52", "url": "https://files.pythonhosted.org/packages/96/61/b765d8f2b3eb2c6ea1b73a740046b9a6372dd488c9e8de978d7fb54af989/textdistance-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "3b6882d695fe1435a11eebe61977a76d", "sha256": "3d76a0b4c647aa5490b7d311b39db4e7f0fd8446982e59a7dbbd0826f2eb2a1d" }, "downloads": -1, "filename": "textdistance-3.0.1.tar.gz", "has_sig": false, "md5_digest": "3b6882d695fe1435a11eebe61977a76d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30271, "upload_time": "2018-03-31T13:16:53", "url": "https://files.pythonhosted.org/packages/0c/0a/95459aecdcf25e30bd8bdda0e7b51cbd82d991a45369fa8444e5122dd27b/textdistance-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "73a330dd958df84bf593cca740d4cd00", "sha256": "47bdc8e11dc0edf3fe4e9dafde9ae675ca7649aebb9d6a23492038f7dd427ce8" }, "downloads": -1, "filename": "textdistance-3.0.2.tar.gz", "has_sig": false, "md5_digest": "73a330dd958df84bf593cca740d4cd00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30458, "upload_time": "2018-03-31T14:47:08", "url": "https://files.pythonhosted.org/packages/40/01/b7ee97a92f12f08d87ea1dba7872b5e7c38e6f26ec82ae63d0d0944b5a7b/textdistance-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "1bcb4bffac97b78664a047f66ef22de7", "sha256": "a938a9b6216076f2b5bed50c56dbeada7db0b0561682466cab72b3a9a1ffa226" }, "downloads": -1, "filename": "textdistance-3.0.3.tar.gz", "has_sig": false, "md5_digest": "1bcb4bffac97b78664a047f66ef22de7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29155, "upload_time": "2018-04-03T09:31:11", "url": "https://files.pythonhosted.org/packages/e9/70/c7ce0b30bb25f16e1d884cd6da2b40eb444a4d0d4c1d94740a70f1cb2108/textdistance-3.0.3.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "af75f48acad0dd615439842d57295266", "sha256": "415eebe1a41fb1048d9978c9abe964fa839ca9b97007f0a8931cdf360c686ed7" }, "downloads": -1, "filename": "textdistance-3.1.0.tar.gz", "has_sig": false, "md5_digest": "af75f48acad0dd615439842d57295266", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32343, "upload_time": "2019-01-22T13:59:46", "url": "https://files.pythonhosted.org/packages/82/ed/c12b8dc5fd080e0b5c348993b192868931b1a6da785b61a65a798f3cd14f/textdistance-3.1.0.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "7ea81b7d9ec9762b273e5f50c26ad728", "sha256": "9db4bd71ebab032c88d5ed1f5b653600d6d898113cb24f87e289bf5d68dcfaca" }, "downloads": -1, "filename": "textdistance-4.0.0.tar.gz", "has_sig": false, "md5_digest": "7ea81b7d9ec9762b273e5f50c26ad728", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31934, "upload_time": "2019-03-03T12:42:15", "url": "https://files.pythonhosted.org/packages/7c/ac/da07718f606c085d68ea817e338aea2811d74b74a3c83df3d36521764b11/textdistance-4.0.0.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "4341cfa83169e32b7a68ef7a0cbcf7c2", "sha256": "929b527a67900d808918cedfbd554765d287bc17912872d70135714f3e534f0a" }, "downloads": -1, "filename": "textdistance-4.1.0.tar.gz", "has_sig": false, "md5_digest": "4341cfa83169e32b7a68ef7a0cbcf7c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30775, "upload_time": "2019-03-09T18:02:53", "url": "https://files.pythonhosted.org/packages/35/b3/1d66eacf01da7407add228ea0c46edf585f451eb8843b8253bdac7a8cc87/textdistance-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "ed56f42d64900255bf1bf52a06b6ce5c", "sha256": "a786b44c4e456ca0a1b3f961e60f1adf75593e9ef8210be1f62d94cd8068915c" }, "downloads": -1, "filename": "textdistance-4.1.1.tar.gz", "has_sig": false, "md5_digest": "ed56f42d64900255bf1bf52a06b6ce5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30725, "upload_time": "2019-03-15T12:35:10", "url": "https://files.pythonhosted.org/packages/8c/2b/ed70ebd2fb2a5684a1e282fecc85a9d6781169bc38a4a1c0d0790313f0cd/textdistance-4.1.1.tar.gz" } ], "4.1.2": [ { "comment_text": "", "digests": { "md5": "38529f9d2d8ff04e75035cb4ac8df4d4", "sha256": "739b53164438a838f6588c89c2d564a47e6e592993c4d6b75f275f43dc01ad4b" }, "downloads": -1, "filename": "textdistance-4.1.2.tar.gz", "has_sig": false, "md5_digest": "38529f9d2d8ff04e75035cb4ac8df4d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30964, "upload_time": "2019-03-18T08:54:43", "url": "https://files.pythonhosted.org/packages/00/a0/7c4b87e706c6449d178d526b87534e23a3f572f5b2c9dca13b2ea103797d/textdistance-4.1.2.tar.gz" } ], "4.1.3": [ { "comment_text": "", "digests": { "md5": "62e0326ae256042c3ac521b99d1aa4f6", "sha256": "982f7f24696b9f668001b2c0d109c32d545585e7d641bdc9be6ecca0a69cc1dc" }, "downloads": -1, "filename": "textdistance-4.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "62e0326ae256042c3ac521b99d1aa4f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 28484, "upload_time": "2019-04-18T06:47:37", "url": "https://files.pythonhosted.org/packages/90/19/0ec54a05e269537341b489da4e8a7b86e34b94e0096f67ecfcbab98cd3aa/textdistance-4.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6d1e8f7f06107182611a3f029e5ec8b", "sha256": "b9e06028210557c2d89234230da208ea868d6a2b2f82358204f4a7131713e71b" }, "downloads": -1, "filename": "textdistance-4.1.3.tar.gz", "has_sig": false, "md5_digest": "c6d1e8f7f06107182611a3f029e5ec8b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 32182, "upload_time": "2019-04-18T06:47:39", "url": "https://files.pythonhosted.org/packages/cb/c9/a77c5bc57fdb72a95288f4ea8f0d676a7fd1197878ee1a35b3958007fead/textdistance-4.1.3.tar.gz" } ], "4.1.4": [ { "comment_text": "", "digests": { "md5": "478cfbe95e3c70a732d25ceec4666fa6", "sha256": "fcee8eac9259355721cbc8fa438afa16cd725cd72cc3a2f9f3463a8334c14b7f" }, "downloads": -1, "filename": "textdistance-4.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "478cfbe95e3c70a732d25ceec4666fa6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 28776, "upload_time": "2019-08-06T14:47:56", "url": "https://files.pythonhosted.org/packages/6a/6e/92cf40b4304d4878f547b595eca310d0ca5028004c33c16315233831ae83/textdistance-4.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c354b7c374a3b92c7913c2d98020e29", "sha256": "d2d5c2fbdbcce6cbab8aec8d92e4750e83a53d84e5a8a16cd3e46f53c235a719" }, "downloads": -1, "filename": "textdistance-4.1.4.tar.gz", "has_sig": false, "md5_digest": "6c354b7c374a3b92c7913c2d98020e29", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 29968, "upload_time": "2019-08-06T14:47:59", "url": "https://files.pythonhosted.org/packages/b7/55/27da14207fdf6efd77a8a4281b8dc487c8782fa6ac047feb6fd60e9dd748/textdistance-4.1.4.tar.gz" } ], "4.1.5": [ { "comment_text": "", "digests": { "md5": "ed5b51212e0da89a8e8035dedf850935", "sha256": "20155e191e58c653459faa4242adfad4960688e30fc83b576e924f1211e8729f" }, "downloads": -1, "filename": "textdistance-4.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ed5b51212e0da89a8e8035dedf850935", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 28813, "upload_time": "2019-10-03T11:37:04", "url": "https://files.pythonhosted.org/packages/3f/18/31397b687f50ffae65469175f07faa68f288e27fcd8716276004c42e5637/textdistance-4.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b0f9032833f0f78860d78301b15b687", "sha256": "0dd4ad6e9a37261f489a190b27fa82f631d4b8e37e4aa766fe2ac3fd613c1e34" }, "downloads": -1, "filename": "textdistance-4.1.5.tar.gz", "has_sig": false, "md5_digest": "6b0f9032833f0f78860d78301b15b687", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 30027, "upload_time": "2019-10-03T11:37:07", "url": "https://files.pythonhosted.org/packages/7d/2b/084cf2187a058180d063d2906f86370419fc93a372bd91bb27adcc26dc0d/textdistance-4.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed5b51212e0da89a8e8035dedf850935", "sha256": "20155e191e58c653459faa4242adfad4960688e30fc83b576e924f1211e8729f" }, "downloads": -1, "filename": "textdistance-4.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ed5b51212e0da89a8e8035dedf850935", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 28813, "upload_time": "2019-10-03T11:37:04", "url": "https://files.pythonhosted.org/packages/3f/18/31397b687f50ffae65469175f07faa68f288e27fcd8716276004c42e5637/textdistance-4.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b0f9032833f0f78860d78301b15b687", "sha256": "0dd4ad6e9a37261f489a190b27fa82f631d4b8e37e4aa766fe2ac3fd613c1e34" }, "downloads": -1, "filename": "textdistance-4.1.5.tar.gz", "has_sig": false, "md5_digest": "6b0f9032833f0f78860d78301b15b687", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 30027, "upload_time": "2019-10-03T11:37:07", "url": "https://files.pythonhosted.org/packages/7d/2b/084cf2187a058180d063d2906f86370419fc93a372bd91bb27adcc26dc0d/textdistance-4.1.5.tar.gz" } ] }