{"database": "demo", "table": "packages", "rows": [["datasette-jellyfish", "{\"info\": {\"author\": \"Simon Willison\", \"author_email\": \"\", \"bugtrack_url\": null, \"classifiers\": [], \"description\": \"# datasette-jellyfish\\n\\n[![PyPI](https://img.shields.io/pypi/v/datasette-jellyfish.svg)](https://pypi.org/project/datasette-jellyfish/)\\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-jellyfish/blob/master/LICENSE)\\n\\nDatasette plugin that adds custom SQL functions for fuzzy string matching, built on top of the [Jellyfish](https://github.com/jamesturk/jellyfish) Python library by James Turk and Michael Stephens.\\n\\nInteractive demos:\\n\\n* [soundex, metaphone, nysiis, match_rating_codex comparison](https://datasette-jellyfish.now.sh/fixtures?sql=SELECT%0D%0A++++soundex%28%3As%29%2C+%0D%0A++++metaphone%28%3As%29%2C+%0D%0A++++nysiis%28%3As%29%2C+%0D%0A++++match_rating_codex%28%3As%29&s=demo).\\n* [distance functions comparison](https://datasette-jellyfish.now.sh/fixtures?sql=SELECT%0D%0A++++levenshtein_distance%28%3As1%2C+%3As2%29%2C%0D%0A++++damerau_levenshtein_distance%28%3As1%2C+%3As2%29%2C%0D%0A++++hamming_distance%28%3As1%2C+%3As2%29%2C%0D%0A++++jaro_distance%28%3As1%2C+%3As2%29%2C%0D%0A++++jaro_winkler%28%3As1%2C+%3As2%29%2C%0D%0A++++match_rating_comparison%28%3As1%2C+%3As2%29%3B&s1=barrack+obama&s2=barrack+h+obama)\\n\\nExamples:\\n\\n    SELECT soundex(\\\"hello\\\");\\n        -- Outputs H400\\n    SELECT metaphone(\\\"hello\\\");\\n        -- Outputs HL\\n    SELECT nysiis(\\\"hello\\\");\\n        -- Outputs HAL\\n    SELECT match_rating_codex(\\\"hello\\\");\\n        -- Outputs HLL\\n    SELECT porter_stem(\\\"running\\\");\\n        -- Outputs run\\n    SELECT levenshtein_distance(\\\"hello\\\", \\\"hello world\\\");\\n        -- Outputs 6\\n    SELECT damerau_levenshtein_distance(\\\"hello\\\", \\\"hello world\\\");\\n        -- Outputs 6\\n    SELECT hamming_distance(\\\"hello\\\", \\\"hello world\\\");\\n        -- Outputs 6\\n    SELECT jaro_distance(\\\"hello\\\", \\\"hello world\\\");\\n        -- Outputs 0.8181818181818182\\n    SELECT jaro_winkler(\\\"hello\\\", \\\"hello world\\\");\\n        -- Outputs 0.890909090909091\\n    SELECT match_rating_comparison(\\\"hello\\\", \\\"helloo\\\");\\n        -- Outputs 1\\n\\nSee [the Jellyfish documentation](https://jellyfish.readthedocs.io/en/latest/) for an explanation of each of these functions.\\n\\n\", \"description_content_type\": \"text/markdown\", \"docs_url\": null, \"download_url\": \"\", \"downloads\": {\"last_day\": -1, \"last_month\": -1, \"last_week\": -1}, \"home_page\": \"https://github.com/simonw/datasette-jellyfish\", \"keywords\": \"\", \"license\": \"Apache License, Version 2.0\", \"maintainer\": \"\", \"maintainer_email\": \"\", \"name\": \"datasette-jellyfish\", \"package_url\": \"https://pypi.org/project/datasette-jellyfish/\", \"platform\": \"\", \"project_url\": \"https://pypi.org/project/datasette-jellyfish/\", \"project_urls\": {\"Homepage\": \"https://github.com/simonw/datasette-jellyfish\"}, \"release_url\": \"https://pypi.org/project/datasette-jellyfish/0.3/\", \"requires_dist\": [\"datasette\", \"jellyfish\"], \"requires_python\": \"\", \"summary\": \"Datasette plugin adding SQL functions for fuzzy text matching powered by Jellyfish\", \"version\": \"0.3\"}, \"last_serial\": 4919322, \"releases\": {\"0.2\": [{\"comment_text\": \"\", \"digests\": {\"md5\": \"211edd73acde93ca42dbc4144424e5f1\", \"sha256\": \"1a01415cadf20f2d7964c7bceec83a7cf11c5c98c6ace90c8e6bb9264b21a0b9\"}, \"downloads\": -1, \"filename\": \"datasette_jellyfish-0.2-py3-none-any.whl\", \"has_sig\": false, \"md5_digest\": \"211edd73acde93ca42dbc4144424e5f1\", \"packagetype\": \"bdist_wheel\", \"python_version\": \"py3\", \"requires_python\": null, \"size\": 6591, \"upload_time\": \"2019-03-09T16:14:54\", \"url\": \"https://files.pythonhosted.org/packages/d7/40/61c6929c4eee2362915df1d58bb5b1393feb29c9e236f97dfc0bc51cbe39/datasette_jellyfish-0.2-py3-none-any.whl\"}], \"0.3\": [{\"comment_text\": \"\", \"digests\": {\"md5\": \"f434e295511aab4c859d5896acd56375\", \"sha256\": \"c9b8a769b71c8dc6505187ff54fe3159ec513553f3b8e40f838032c78540c0a8\"}, \"downloads\": -1, \"filename\": \"datasette_jellyfish-0.3-py3-none-any.whl\", \"has_sig\": false, \"md5_digest\": \"f434e295511aab4c859d5896acd56375\", \"packagetype\": \"bdist_wheel\", \"python_version\": \"py3\", \"requires_python\": null, \"size\": 6773, \"upload_time\": \"2019-03-09T18:25:59\", \"url\": \"https://files.pythonhosted.org/packages/ef/6e/3c63e43ca3352bcc861774e3c8991a5978f4afc4f3a1405de6cde5d2bf50/datasette_jellyfish-0.3-py3-none-any.whl\"}]}, \"urls\": [{\"comment_text\": \"\", \"digests\": {\"md5\": \"f434e295511aab4c859d5896acd56375\", \"sha256\": \"c9b8a769b71c8dc6505187ff54fe3159ec513553f3b8e40f838032c78540c0a8\"}, \"downloads\": -1, \"filename\": \"datasette_jellyfish-0.3-py3-none-any.whl\", \"has_sig\": false, \"md5_digest\": \"f434e295511aab4c859d5896acd56375\", \"packagetype\": \"bdist_wheel\", \"python_version\": \"py3\", \"requires_python\": null, \"size\": 6773, \"upload_time\": \"2019-03-09T18:25:59\", \"url\": \"https://files.pythonhosted.org/packages/ef/6e/3c63e43ca3352bcc861774e3c8991a5978f4afc4f3a1405de6cde5d2bf50/datasette_jellyfish-0.3-py3-none-any.whl\"}]}"]], "columns": ["package", "info"], "primary_keys": ["package"], "primary_key_values": ["datasette-jellyfish"], "units": {}, "query_ms": 1.9240379333496094}