{ "info": { "author": "Mikhail Korobov", "author_email": "kmike84@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Cython", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Linguistic" ], "description": "DAWG-Python\n===========\n\n.. image:: https://travis-ci.org/kmike/DAWG-Python.png?branch=master\n :target: https://travis-ci.org/kmike/DAWG-Python\n.. image:: https://coveralls.io/repos/kmike/DAWG-Python/badge.png?branch=master\n :target: https://coveralls.io/r/kmike/DAWG-Python\n\n\nThis pure-python package provides read-only access for files\ncreated by `dawgdic`_ C++ library and `DAWG`_ python package.\n\n.. _dawgdic: https://code.google.com/p/dawgdic/\n.. _DAWG: https://github.com/kmike/DAWG\n\nThis package is not capable of creating DAWGs. It works with DAWGs built by\n`dawgdic`_ C++ library or `DAWG`_ Python extension module. The main purpose\nof DAWG-Python is to provide an access to DAWGs without requiring compiled\nextensions. It is also quite fast under PyPy (see benchmarks).\n\nInstallation\n============\n\npip install DAWG-Python\n\nUsage\n=====\n\nThe aim of DAWG-Python is to be API- and binary-compatible\nwith `DAWG`_ when it is possible.\n\nFirst, you have to create a dawg using DAWG_ module::\n\n import dawg\n d = dawg.DAWG(data)\n d.save('words.dawg')\n\nAnd then this dawg can be loaded without requiring C extensions::\n\n import dawg_python\n d = dawg_python.DAWG().load('words.dawg')\n\nPlease consult `DAWG`_ docs for detailed usage. Some features\n(like constructor parameters or ``save`` method) are intentionally\nunsupported.\n\nBenchmarks\n==========\n\nBenchmark results (100k unicode words, integer values (lenghts of the words),\nPyPy 1.9, macbook air i5 1.8 Ghz)::\n\n dict __getitem__ (hits): 11.090M ops/sec\n DAWG __getitem__ (hits): not supported\n BytesDAWG __getitem__ (hits): 0.493M ops/sec\n RecordDAWG __getitem__ (hits): 0.376M ops/sec\n\n dict get() (hits): 10.127M ops/sec\n DAWG get() (hits): not supported\n BytesDAWG get() (hits): 0.481M ops/sec\n RecordDAWG get() (hits): 0.402M ops/sec\n dict get() (misses): 14.885M ops/sec\n DAWG get() (misses): not supported\n BytesDAWG get() (misses): 1.259M ops/sec\n RecordDAWG get() (misses): 1.337M ops/sec\n\n dict __contains__ (hits): 11.100M ops/sec\n DAWG __contains__ (hits): 1.317M ops/sec\n BytesDAWG __contains__ (hits): 1.107M ops/sec\n RecordDAWG __contains__ (hits): 1.095M ops/sec\n\n dict __contains__ (misses): 10.567M ops/sec\n DAWG __contains__ (misses): 1.902M ops/sec\n BytesDAWG __contains__ (misses): 1.873M ops/sec\n RecordDAWG __contains__ (misses): 1.862M ops/sec\n\n dict items(): 44.401 ops/sec\n DAWG items(): not supported\n BytesDAWG items(): 3.226 ops/sec\n RecordDAWG items(): 2.987 ops/sec\n dict keys(): 426.250 ops/sec\n DAWG keys(): not supported\n BytesDAWG keys(): 6.050 ops/sec\n RecordDAWG keys(): 6.363 ops/sec\n\n DAWG.prefixes (hits): 0.756M ops/sec\n DAWG.prefixes (mixed): 1.965M ops/sec\n DAWG.prefixes (misses): 1.773M ops/sec\n\n RecordDAWG.keys(prefix=\"xxx\"), avg_len(res)==415: 1.429K ops/sec\n RecordDAWG.keys(prefix=\"xxxxx\"), avg_len(res)==17: 36.994K ops/sec\n RecordDAWG.keys(prefix=\"xxxxxxxx\"), avg_len(res)==3: 121.897K ops/sec\n RecordDAWG.keys(prefix=\"xxxxx..xx\"), avg_len(res)==1.4: 265.015K ops/sec\n RecordDAWG.keys(prefix=\"xxx\"), NON_EXISTING: 2450.898K ops/sec\n\nUnder CPython expect it to be about 50x slower.\nMemory consumption of DAWG-Python should be the same as of `DAWG`_.\n\n.. _marisa-trie: https://github.com/kmike/marisa-trie\n\nCurrent limitations\n===================\n\n* This package is not capable of creating DAWGs;\n* all the limitations of `DAWG`_ apply.\n\nContributions are welcome!\n\n\nContributing\n============\n\nDevelopment happens at github: https://github.com/kmike/DAWG-Python\nIssue tracker: https://github.com/kmike/DAWG-Python/issues\n\nFeel free to submit ideas, bugs or pull requests.\n\nRunning tests and benchmarks\n----------------------------\n\nMake sure `tox`_ is installed and run\n\n::\n\n $ tox\n\nfrom the source checkout. Tests should pass under python 2.6, 2.7, 3.2, 3.3,\n3.4 and PyPy >= 1.9.\n\nIn order to run benchmarks, type\n\n::\n\n $ tox -c bench.ini -e pypy\n\nThis runs benchmarks under PyPy (they are about 50x slower under CPython).\n\n.. _tox: http://tox.testrun.org\n\nAuthors & Contributors\n----------------------\n\n* Mikhail Korobov \n\nThe algorithms are from `dawgdic`_ C++ library by Susumu Yata & contributors.\n\nLicense\n=======\n\nThis package is licensed under MIT License.\n\n\n\nChanges\n=======\n\n0.7.2 (2015-04-18)\n------------------\n\n- minor speedup;\n- bitbucket mirror is no longer maintained.\n\n0.7.1 (2014-06-05)\n------------------\n\n- Switch to setuptools;\n- upload wheel tp pypi;\n- check Python 3.4 compatibility.\n\n0.7 (2013-10-13)\n----------------\n\nIntDAWG and IntCompletionDAWG are implemented.\n\n0.6 (2013-03-23)\n----------------\n\nUse less shared state internally. This should fix thread-safety bugs and\nmake iterkeys/iteritems reenterant.\n\n0.5.1 (2013-03-01)\n------------------\n\nInternal tweaks: memory usage is reduced; something is a bit faster,\nsomething is a bit slower.\n\n0.5 (2012-10-08)\n----------------\n\nStorage scheme is updated to match DAWG==0.5. This enables\nthe alphabetical ordering of ``BytesDAWG`` and ``RecordDAWG`` items.\n\nIn order to read ``BytesDAWG`` or ``RecordDAWG`` created with\nversions of DAWG < 0.5 use ``payload_separator`` constructor argument::\n\n >>> BytesDAWG(payload_separator=b'\\xff').load('old.dawg')\n\n\n0.3.1 (2012-10-01)\n------------------\n\nBug with empty DAWGs is fixed.\n\n0.3 (2012-09-26)\n----------------\n\n- ``iterkeys`` and ``iteritems`` methods.\n\n0.2 (2012-09-24)\n----------------\n\n``prefixes`` support.\n\n0.1 (2012-09-20)\n----------------\n\nInitial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kmike/DAWG-Python/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "DAWG-Python", "package_url": "https://pypi.org/project/DAWG-Python/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/DAWG-Python/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/kmike/DAWG-Python/" }, "release_url": "https://pypi.org/project/DAWG-Python/0.7.2/", "requires_dist": null, "requires_python": null, "summary": "Pure-python reader for DAWGs (DAFSAs) created by dawgdic C++ library or DAWG Python extension.", "version": "0.7.2" }, "last_serial": 1510812, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7d4b3c70f6c89d5ad979c16263a07ed1", "sha256": "c445b0a439ac3be53e5850d6fdc064f789c2031a76ef5b8983724ae2b743fabf" }, "downloads": -1, "filename": "DAWG-Python-0.1.tar.gz", "has_sig": false, "md5_digest": "7d4b3c70f6c89d5ad979c16263a07ed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7122, "upload_time": "2012-09-22T23:24:37", "url": "https://files.pythonhosted.org/packages/d9/6d/fa1b414ac029b76912cadc796fcc30af450c0932ebd5d0f4f8c95bff1033/DAWG-Python-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "14ace33669e6b84736adf3fffd335497", "sha256": "4c4385b8f1abbe7b487be5edf5e5e586710dd8386afeaa532f1cf2c9e25124a8" }, "downloads": -1, "filename": "DAWG-Python-0.2.tar.gz", "has_sig": false, "md5_digest": "14ace33669e6b84736adf3fffd335497", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7282, "upload_time": "2012-09-23T20:37:06", "url": "https://files.pythonhosted.org/packages/6a/81/f3fcdd1d6494262aced896cd19151045fffedfc1e8b288e0ee770cd96be5/DAWG-Python-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2cc616a57ffb5da8f233d24c81beb775", "sha256": "3c635b0fb3209d4bfe5fd62a2121506923cf6b823f4454832ca754225be934ff" }, "downloads": -1, "filename": "DAWG-Python-0.3.tar.gz", "has_sig": false, "md5_digest": "2cc616a57ffb5da8f233d24c81beb775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7457, "upload_time": "2012-09-25T21:12:09", "url": "https://files.pythonhosted.org/packages/8f/dd/be169b8482cac4b690594c99af41e7ff12782b22ccb6e772464ae757b986/DAWG-Python-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5830615c9d1656e0cd31414364555850", "sha256": "6076f2ba07bf21a0b9400d934b40cc9934363c94487525f852f68ea94669c7ab" }, "downloads": -1, "filename": "DAWG-Python-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5830615c9d1656e0cd31414364555850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7542, "upload_time": "2012-10-01T04:35:46", "url": "https://files.pythonhosted.org/packages/3b/b8/a89d3d5d3421179b2374e704429f1d92bd9ac52198828117d4c08c18806d/DAWG-Python-0.3.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "c2f747d66ce1d906a4483b4c775a4dd8", "sha256": "bff26339a1c49e2c7b84cacef659869a7f8cbead305173153a48ef3f42844832" }, "downloads": -1, "filename": "DAWG-Python-0.5.tar.gz", "has_sig": false, "md5_digest": "c2f747d66ce1d906a4483b4c775a4dd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7730, "upload_time": "2012-10-08T11:17:23", "url": "https://files.pythonhosted.org/packages/b8/11/932936b6253b4330c553833832aa318078b7836e6e9fc386fbb827bb2168/DAWG-Python-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c737f5e2f2b2b56a058fb0e105ec9487", "sha256": "449e684b79500825e60c4651143f17189542ebaba4e16eb35bbf79d2ebac302d" }, "downloads": -1, "filename": "DAWG-Python-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c737f5e2f2b2b56a058fb0e105ec9487", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7899, "upload_time": "2013-03-01T10:41:51", "url": "https://files.pythonhosted.org/packages/0c/c1/2f0a9c2f933c11876ca829bf821351b6c5cbb3b25551479d546a682f350e/DAWG-Python-0.5.1.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "ffc3afaa1c0f7c8436eea7eef5dfcb43", "sha256": "ce29b0b870ea5167f8ddffb09b7ead61490e992fe772bf774a93870e883f6a00" }, "downloads": -1, "filename": "DAWG-Python-0.6.tar.gz", "has_sig": false, "md5_digest": "ffc3afaa1c0f7c8436eea7eef5dfcb43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8128, "upload_time": "2013-03-23T11:48:11", "url": "https://files.pythonhosted.org/packages/03/03/784cacaa92a89b398d4200d4caaea813697a641aa73617723142f5233f57/DAWG-Python-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "4608ae3504f9f03373b4da0276194f0e", "sha256": "d4939fbdf0ba72fb460ec248cb940572ca8ef3d99bf7b0ae7f191ee480b878ca" }, "downloads": -1, "filename": "DAWG-Python-0.7.tar.gz", "has_sig": false, "md5_digest": "4608ae3504f9f03373b4da0276194f0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8359, "upload_time": "2013-10-13T14:25:06", "url": "https://files.pythonhosted.org/packages/98/02/3e56a46da34b978a9eea624afdeab383ad78110d4d5ae0f8002ba7e47179/DAWG-Python-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4f86eb5fa12363c68f2d0ad3a8d22220", "sha256": "a8083dd29fbab3a04164a4b6da6ea735cae935e5ef1782bd0ce1baea2176efad" }, "downloads": -1, "filename": "DAWG_Python-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f86eb5fa12363c68f2d0ad3a8d22220", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11656, "upload_time": "2014-06-05T15:23:11", "url": "https://files.pythonhosted.org/packages/2f/e3/ed8e389696ea736953c0e8790843297e6841514976f8fac1eb77d1c3e96e/DAWG_Python-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6e44ffaa91c47c6046253957c24b8a7", "sha256": "53e07ee1a7dcb6c498c96b4bf77f3a0aefeb261addc6bfbcd7fca4f22acbb247" }, "downloads": -1, "filename": "DAWG-Python-0.7.1.tar.gz", "has_sig": false, "md5_digest": "e6e44ffaa91c47c6046253957c24b8a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8982, "upload_time": "2014-06-05T15:23:03", "url": "https://files.pythonhosted.org/packages/73/f4/759a2fb5c378cbb16d2d90e5043f682977b3804acdfe903b5847b0109648/DAWG-Python-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "2a9b8d02b872ac723588542e3542d1df", "sha256": "4941d5df081b8d6fcb4597e073a9f60d5c1ccc9d17cd733e8744d7ecfec94ef3" }, "downloads": -1, "filename": "DAWG_Python-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a9b8d02b872ac723588542e3542d1df", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11711, "upload_time": "2015-04-18T17:00:08", "url": "https://files.pythonhosted.org/packages/6a/84/ff1ce2071d4c650ec85745766c0047ccc3b5036f1d03559fd46bb38b5eeb/DAWG_Python-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25835be7d559de75dde5e28a254427ad", "sha256": "4a5e3286e6261cca02f205cfd5516a7ab10190fa30c51c28d345808f595e3421" }, "downloads": -1, "filename": "DAWG-Python-0.7.2.tar.gz", "has_sig": false, "md5_digest": "25835be7d559de75dde5e28a254427ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9007, "upload_time": "2015-04-18T16:59:55", "url": "https://files.pythonhosted.org/packages/b8/33/fd52c8ec329641a7730fad662ba3f29f98c45e4bea552cceee569b00c915/DAWG-Python-0.7.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a9b8d02b872ac723588542e3542d1df", "sha256": "4941d5df081b8d6fcb4597e073a9f60d5c1ccc9d17cd733e8744d7ecfec94ef3" }, "downloads": -1, "filename": "DAWG_Python-0.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a9b8d02b872ac723588542e3542d1df", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11711, "upload_time": "2015-04-18T17:00:08", "url": "https://files.pythonhosted.org/packages/6a/84/ff1ce2071d4c650ec85745766c0047ccc3b5036f1d03559fd46bb38b5eeb/DAWG_Python-0.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25835be7d559de75dde5e28a254427ad", "sha256": "4a5e3286e6261cca02f205cfd5516a7ab10190fa30c51c28d345808f595e3421" }, "downloads": -1, "filename": "DAWG-Python-0.7.2.tar.gz", "has_sig": false, "md5_digest": "25835be7d559de75dde5e28a254427ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9007, "upload_time": "2015-04-18T16:59:55", "url": "https://files.pythonhosted.org/packages/b8/33/fd52c8ec329641a7730fad662ba3f29f98c45e4bea552cceee569b00c915/DAWG-Python-0.7.2.tar.gz" } ] }