{ "info": { "author": "Pattarawat Chormai et al.", "author_email": "foomail@foo.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Natural Language :: Thai", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# AttaCut: Fast and Reasonably Accurate Word Tokenizer for Thai\n\n[![Build Status](https://travis-ci.org/PyThaiNLP/attacut.svg?branch=master)](https://travis-ci.org/PyThaiNLP/attacut)\n[![Build status](https://ci.appveyor.com/api/projects/status/ittfnb2pyg95kpxk/branch/master?svg=true)](https://ci.appveyor.com/project/wannaphongcom/attacut/branch/master)\n[![](https://img.shields.io/badge/-presentation-informational)](https://drive.google.com/file/d/16AUNZv1HXVmERgryfBf4JpCo1QrQyHHE/view?usp=sharing)\n![](https://img.shields.io/badge/doi-WIP-informational)\n\n## How does AttaCut look like?\n\n
\n \n
\n TL;DR: \n3-Layer Dilated CNN on syllable and character features. It\u2019s 6x faster than DeepCut (SOTA) while its WL-f1 on BEST is 91%, only 2% lower.\n
\n\n## Installation\n\n```\n$ pip install attacut\n```\n\n**Remarks:** Windows users need to install **PyTorch** before the command above.\nPlease consult [PyTorch.org](https://pytorch.org) for more details.\n\n## Usage\n\n### Command-Line Interface\n```\n$ attacut-cli -h\nAttaCut: Fast and Reasonably Accurate Tokenizer for Thai\n\nUsage:\n attacut-cli [--dest=] [--model=]\n attacut-cli (-h | --help)\n\nOptions:\n -h --help Show this screen.\n --model= Model to be used [default: attacut-sc].\n --dest= If not specified, it'll be -tokenized-by-.txt\n```\n\n### High-Level API \n```\nfrom attacut import tokenize, Tokenizer\n\n# tokenize `txt` using our best model `attacut-sc`\nwords = tokenize(txt)\n\n# alternatively, an AttaCut tokenizer might be instantiated directly, allowing\n# one to specify whether to use `attacut-sc` or `attacut-c`.\natta = Tokenizer(model=\"attacut-sc\")\nwords = atta.tokenize(txt)\n```\n\n## Benchmark Results\n\nBelows are brief summaries. More details can be found on [our benchmarking page](https://pythainlp.github.io/attacut/benchmark.html).\n\n\n### Tokenization Quality\n![](https://pythainlp.github.io/attacut/_images/quality-benchmark-in-of-domain.png)\n\n### Speed\n![](https://pythainlp.github.io/attacut/_images/speed-benchmark-ec2.png)\n\n\n## Retraining on Custom Dataset\nPlease refer to [our retraining page](https://pythainlp.github.io/attacut/)\n\n## Related Resources\n- [Tokenization Visualization][tovis]\n- [Thai Tokenizer Dockers][docker]\n\n## Acknowledgements\nThis repository was initially done by [Pattarawat Chormai][pat], while interning at [Dr. Attapol Thamrongrattanarit's NLP Lab][ate], Chulalongkorn University, Bangkok, Thailand.\nMany people have involed in this project. Complete list of names can be found on [Acknowledgement](https://pythainlp.github.io/attacut/acknowledgement.html).\n\n\n[pat]: http://pat.chormai.org\n[ate]: https://attapol.github.io/lab.html\n[noom]: https://github.com/Ekkalak-T\n[can]: https://github.com/c4n\n[ake]: https://github.com/ekapolc\n[tovis]: https://pythainlp.github.io/tokenization-benchmark-visualization/\n[docker]: https://github.com/PyThaiNLP/docker-thai-tokenizers\n\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/PyThaiNLP/attacut", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "attacut", "package_url": "https://pypi.org/project/attacut/", "platform": "", "project_url": "https://pypi.org/project/attacut/", "project_urls": { "Homepage": "https://github.com/PyThaiNLP/attacut" }, "release_url": "https://pypi.org/project/attacut/1.0.5/", "requires_dist": [ "docopt (>=0.6.2)", "fire (>=0.1.3)", "nptyping (>=0.2.0)", "numpy (>=1.17.0)", "pyyaml (>=5.1.2)", "six (>=1.12.0)", "ssg (>=0.0.4)", "torch (>=1.2.0)" ], "requires_python": "", "summary": "Fast and Reasonably Accurate Word Tokenizer for Thai", "version": "1.0.5" }, "last_serial": 5996873, "releases": { "0.0.2.dev0": [ { "comment_text": "", "digests": { "md5": "0c590fdf84aab11337e385017570b6be", "sha256": "dbe39871e46271077cd358494e4118bffd79d370196b8c657ee032592cae8b4f" }, "downloads": -1, "filename": "attacut-0.0.2.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "0c590fdf84aab11337e385017570b6be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1289318, "upload_time": "2019-08-25T21:37:38", "url": "https://files.pythonhosted.org/packages/8c/bc/32891a5f2dd22962f36f51425a88efeebe09c824672909cdb494cfe82647/attacut-0.0.2.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "696688cdd233373d0e1f20ba1c9cfa56", "sha256": "f3e4237a577da739d63115160d7ad85590f66a1cc0347991fb6f7304dcdf7f80" }, "downloads": -1, "filename": "attacut-0.0.2.dev0.tar.gz", "has_sig": false, "md5_digest": "696688cdd233373d0e1f20ba1c9cfa56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1287757, "upload_time": "2019-08-25T21:37:42", "url": "https://files.pythonhosted.org/packages/2a/d1/94057457c1e6f8eebb777a6a75f0b5f8679c36708b34b92da5801444ddc6/attacut-0.0.2.dev0.tar.gz" } ], "0.0.3.dev0": [ { "comment_text": "", "digests": { "md5": "741f8c0d013a75f7e06a887d6a8cc373", "sha256": "c89583a2fb465115c8f5bbc3e48a6564b7f84366c85d068e5ac6b8385e23bd84" }, "downloads": -1, "filename": "attacut-0.0.3.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "741f8c0d013a75f7e06a887d6a8cc373", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1290463, "upload_time": "2019-08-25T21:43:02", "url": "https://files.pythonhosted.org/packages/82/01/0e153062002d75222859f63bf9c546ee7af96c40ce7eb419971c8f03936e/attacut-0.0.3.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "912a22b97352df3e23a98ec8bee6a37f", "sha256": "6462f67e58b5efa9c8a64cb11ce50f952c1ecd26884a0a795a03d7d044412c46" }, "downloads": -1, "filename": "attacut-0.0.3.dev0.tar.gz", "has_sig": false, "md5_digest": "912a22b97352df3e23a98ec8bee6a37f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1289296, "upload_time": "2019-08-25T21:43:06", "url": "https://files.pythonhosted.org/packages/ec/d6/b83dd40a2069224f8c12e85eead88986917f4245bd6e6b8876bacfee1a2a/attacut-0.0.3.dev0.tar.gz" } ], "0.0.4.dev0": [ { "comment_text": "", "digests": { "md5": "b8e4d684cb46b0347af7d8771e4ce278", "sha256": "716c7166c763783eca9e6a8e0444d74a64d81d273f759f7fb1f1c0713cb715ea" }, "downloads": -1, "filename": "attacut-0.0.4.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "b8e4d684cb46b0347af7d8771e4ce278", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1290292, "upload_time": "2019-08-29T07:13:09", "url": "https://files.pythonhosted.org/packages/c7/8c/3e437d7c3782bbca042018dbe23c899d3c5273d17a38e7faa0d29bc5cc19/attacut-0.0.4.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b76d2c65580fb04d3267823f536d9d70", "sha256": "d2c2a9316f3ff2c9c1baa382408f443dad6743c4e5bf500d2a2c9a2ab6089f49" }, "downloads": -1, "filename": "attacut-0.0.4.dev0.tar.gz", "has_sig": false, "md5_digest": "b76d2c65580fb04d3267823f536d9d70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1288617, "upload_time": "2019-08-29T07:13:21", "url": "https://files.pythonhosted.org/packages/04/dc/5762a74550593cbfa4e3118b5f3717c5a00c102917b1643510ddcfa544e4/attacut-0.0.4.dev0.tar.gz" } ], "0.0.5.dev0": [ { "comment_text": "", "digests": { "md5": "d61e5d1fc0212dfc0816f2596632e950", "sha256": "b4dae8325f2825d00f00fe77aa29a79c32624dc5f922f7988b0b7c186519aa68" }, "downloads": -1, "filename": "attacut-0.0.5.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "d61e5d1fc0212dfc0816f2596632e950", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291019, "upload_time": "2019-08-30T06:27:20", "url": "https://files.pythonhosted.org/packages/b8/78/28269607485c70f335117dae14d85543a4affd700b82a413a3ed773aecc8/attacut-0.0.5.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "749dd5c0873656193360ae8e38ec917a", "sha256": "1f20048c964c7b915d23515d2ee5efd18b1664741e15d4b7683ac0cc67d449a9" }, "downloads": -1, "filename": "attacut-0.0.5.dev0.tar.gz", "has_sig": false, "md5_digest": "749dd5c0873656193360ae8e38ec917a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1289353, "upload_time": "2019-08-30T06:27:22", "url": "https://files.pythonhosted.org/packages/02/96/85a6e33af2bea4143f3e7b2a291670283de9206309ec212abcb621baeace/attacut-0.0.5.dev0.tar.gz" } ], "0.0.6.dev0": [ { "comment_text": "", "digests": { "md5": "573630a550fc874593bf51fba79ce66c", "sha256": "cd6c91a10dd8956573afc7956039602dd8ce2100caab9c44b6ecde8038855a90" }, "downloads": -1, "filename": "attacut-0.0.6.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "573630a550fc874593bf51fba79ce66c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291158, "upload_time": "2019-08-30T15:56:48", "url": "https://files.pythonhosted.org/packages/8e/07/e1bdb1246908f41db410a7ef987fb948ea124e448ce76b23f67aca3c243c/attacut-0.0.6.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f5dd2ff0cb87833759241ef6d20d10f", "sha256": "a4570a5043c6acc62677153cdba654f25028304a15bea38fff9574b209eaeb7b" }, "downloads": -1, "filename": "attacut-0.0.6.dev0.tar.gz", "has_sig": false, "md5_digest": "0f5dd2ff0cb87833759241ef6d20d10f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1289488, "upload_time": "2019-08-30T15:56:50", "url": "https://files.pythonhosted.org/packages/59/cf/66036a0a4897c683c05d1d4737d53ae9aa2ca56ec12cc7d3dff804a7ab2a/attacut-0.0.6.dev0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "16641934988f6ccc2f42af1e91aebfbf", "sha256": "0d4a441c243f594b07c9aad16fd271932d3687e2dc7c8627926764948ab5e5df" }, "downloads": -1, "filename": "attacut-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "16641934988f6ccc2f42af1e91aebfbf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291090, "upload_time": "2019-09-01T14:10:05", "url": "https://files.pythonhosted.org/packages/06/dd/abed0e159662b71ff65532eb2afbb6f1ff07c7e391c1b90f367d086f22f8/attacut-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e8952f12f368bf6cc76d35b6a434421", "sha256": "e4ebf7d3574e3ac91714e938e808187132925e0715b13b77f64d8becbb1eb196" }, "downloads": -1, "filename": "attacut-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5e8952f12f368bf6cc76d35b6a434421", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1289478, "upload_time": "2019-09-01T14:10:08", "url": "https://files.pythonhosted.org/packages/8e/c2/f0efa5d3b218ff8d52c076e3aeae65684526000ca9f50218592283e0e684/attacut-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3b5eadbcc29cb78edc6079b992e37d95", "sha256": "b67cc5546542851084e76234e7c46e62aafa2caaceb739bed86a6803b128c6ab" }, "downloads": -1, "filename": "attacut-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3b5eadbcc29cb78edc6079b992e37d95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291082, "upload_time": "2019-09-01T14:11:45", "url": "https://files.pythonhosted.org/packages/ee/c7/acb78e9cc95c1cf41462d9b0b554bf4ad6aecf504ab768c1bd824a59efa3/attacut-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08ab62be0f55c0de9dc3f35096f7bfeb", "sha256": "63827706555fe1fcbf6e9a28d10b35bbb57937a2d9c26dc2c16242c90a620ade" }, "downloads": -1, "filename": "attacut-1.0.1.tar.gz", "has_sig": false, "md5_digest": "08ab62be0f55c0de9dc3f35096f7bfeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1289455, "upload_time": "2019-09-01T14:11:48", "url": "https://files.pythonhosted.org/packages/58/c3/b5d589da40b452675c0df3712993e13fa6c28debbef9b85f3828b58b00db/attacut-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "3012d59d1887adb236312a269fe52186", "sha256": "566a26e6eddae8167b3f0e95c0d87e74afe0dc97dfc286aef6ee4966b7e296fe" }, "downloads": -1, "filename": "attacut-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3012d59d1887adb236312a269fe52186", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291393, "upload_time": "2019-09-08T12:02:43", "url": "https://files.pythonhosted.org/packages/14/49/addad288b71646007bfac4535673f54c4ac53bc91748c53c457fb40fdd21/attacut-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74986283ce6c0a3499317251decf0978", "sha256": "62371cbd2d4eb3c2f3aeb75a59e971ba1e6f9041365c7b1139c240cbeef54d8e" }, "downloads": -1, "filename": "attacut-1.0.2.tar.gz", "has_sig": false, "md5_digest": "74986283ce6c0a3499317251decf0978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290199, "upload_time": "2019-09-08T12:02:47", "url": "https://files.pythonhosted.org/packages/5a/7f/729619570e12cd4e969dae5c9c73baeeef043196bd3032bed4507298d7b7/attacut-1.0.2.tar.gz" } ], "1.0.2.dev0": [ { "comment_text": "", "digests": { "md5": "45937db13e54be3e11a62692454ff83b", "sha256": "6894d04009451e363e033a9bd9968a4a3efc200fe4cc8b318315aab0b65773d1" }, "downloads": -1, "filename": "attacut-1.0.2.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "45937db13e54be3e11a62692454ff83b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291408, "upload_time": "2019-09-08T07:27:05", "url": "https://files.pythonhosted.org/packages/cf/a6/e0c6af6a8f11a4cb6e76d7ef1bf20825330d7442b3fcb652914e764302eb/attacut-1.0.2.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ad73dc876e8704b5c9a1f7cf00a8c6b", "sha256": "fbbee9cca0976581cda7c2e790dc33c6ae81a412484ba2a2908e2aa326c3a8d5" }, "downloads": -1, "filename": "attacut-1.0.2.dev0.tar.gz", "has_sig": false, "md5_digest": "0ad73dc876e8704b5c9a1f7cf00a8c6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290098, "upload_time": "2019-09-08T07:27:08", "url": "https://files.pythonhosted.org/packages/41/d3/6fa7c79a249d75a5d0f3312e38515e30f1eaf9e5f09c7538f453fc49b5e8/attacut-1.0.2.dev0.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "23e86174436289cd31fc3410231cfec7", "sha256": "f76f6b81d034e6d502168a023f00c340bd1a2600ad7a23c2a5e7bd72c72bcd28" }, "downloads": -1, "filename": "attacut-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "23e86174436289cd31fc3410231cfec7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291378, "upload_time": "2019-10-01T21:19:55", "url": "https://files.pythonhosted.org/packages/f9/b8/608d1fed2ca1fed843d7a23bd0a6e46e399100264147f55303160f9c2545/attacut-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5dfdaaf6177599d5720dfa12bd45f199", "sha256": "7a6dc3c1095c991c31454735b82c4a91aedbd735449dede056071f1b8be6f8fd" }, "downloads": -1, "filename": "attacut-1.0.3.tar.gz", "has_sig": false, "md5_digest": "5dfdaaf6177599d5720dfa12bd45f199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290186, "upload_time": "2019-10-01T21:19:59", "url": "https://files.pythonhosted.org/packages/b5/6c/a3fbcbf398e5dddbab3f9f7240e4366b74938cfb85278533dc719afeb2df/attacut-1.0.3.tar.gz" } ], "1.0.3.dev0": [ { "comment_text": "", "digests": { "md5": "c579e4ef66410adfae170b041028948b", "sha256": "72c1a7573543d2558ffe30755ebc05f0ada6cd7213c9a765b343c01cd427c371" }, "downloads": -1, "filename": "attacut-1.0.3.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "c579e4ef66410adfae170b041028948b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291451, "upload_time": "2019-10-01T21:16:10", "url": "https://files.pythonhosted.org/packages/95/2c/d305f013e20f67e10e464a8ed54bb590e5b096baae90c583b92ce8ae7bd4/attacut-1.0.3.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef885e1242638473056ec8a5b696015c", "sha256": "b8b939d2af132dcc024e3bbbe50c0d949394c49e947760df1a2490955619f18f" }, "downloads": -1, "filename": "attacut-1.0.3.dev0.tar.gz", "has_sig": false, "md5_digest": "ef885e1242638473056ec8a5b696015c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290218, "upload_time": "2019-10-01T21:16:15", "url": "https://files.pythonhosted.org/packages/94/45/b8fd8937cafbfc2ae54cdb4480003feb9b142c192cade55ca8347f9475f3/attacut-1.0.3.dev0.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "70fc9a2eed7f1cc33d01b70c92071541", "sha256": "06287f9b91d55ec00e2defe8c3add5e7d5a0c675f4e754498505f8d6eefca971" }, "downloads": -1, "filename": "attacut-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "70fc9a2eed7f1cc33d01b70c92071541", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291391, "upload_time": "2019-10-01T21:32:54", "url": "https://files.pythonhosted.org/packages/e1/a5/54c1f9a760ad142475de0e135b271e1704200d619bfb803c89423c2b8f3a/attacut-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "827a8f4271df80e46866dcb194fd15d9", "sha256": "f02d8435112db7e417e716de5ff2b13e4483896e4d38ffbe8d003de41afbc6ee" }, "downloads": -1, "filename": "attacut-1.0.4.tar.gz", "has_sig": false, "md5_digest": "827a8f4271df80e46866dcb194fd15d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290238, "upload_time": "2019-10-01T21:32:58", "url": "https://files.pythonhosted.org/packages/7a/a5/a2256e59e3d7e3151dd86d3703b79ed7065311efe67a0079a235474c0202/attacut-1.0.4.tar.gz" } ], "1.0.4.dev0": [ { "comment_text": "", "digests": { "md5": "c6f2497d02638d1f1e01e33303803a80", "sha256": "2d1227729bf8c39299e74a91ada2b55a72550c55d7255f2d1e1be9f872670c12" }, "downloads": -1, "filename": "attacut-1.0.4.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6f2497d02638d1f1e01e33303803a80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291463, "upload_time": "2019-10-01T21:27:47", "url": "https://files.pythonhosted.org/packages/9f/12/27bf5ee35739ab33052531468d5724be2864ba5f5e208391a7f5f9ebe907/attacut-1.0.4.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9f26cac40a516c714a9e8c5ba17ae3b", "sha256": "7bf01c804502a1ca4f6a859359534bf3248a8d883fea09d0f26eb06dcdb68344" }, "downloads": -1, "filename": "attacut-1.0.4.dev0.tar.gz", "has_sig": false, "md5_digest": "d9f26cac40a516c714a9e8c5ba17ae3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290271, "upload_time": "2019-10-01T21:27:51", "url": "https://files.pythonhosted.org/packages/fe/cd/91f58a6e49d43e9017ff1ffc7ee6a6be0d982556f6109237ba8cd4490e6e/attacut-1.0.4.dev0.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "3ec95fa21b23ceb28cb8819d47640d28", "sha256": "7cc0028303c9deb32dad6e7e0b51ff7be047d7d233bbfc759012ac7fc2c3a8c6" }, "downloads": -1, "filename": "attacut-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3ec95fa21b23ceb28cb8819d47640d28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291453, "upload_time": "2019-10-18T17:55:34", "url": "https://files.pythonhosted.org/packages/a4/06/091491dbb7a73a2cb6ac2ed70476d14502224a126addf25a9ae9799beb04/attacut-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bae6e1f393861da59e2491303e9ce865", "sha256": "7a754290871ba6f281a0324b3ff8f01f65aa0f0a951b8f7f20163de07da1da3e" }, "downloads": -1, "filename": "attacut-1.0.5.tar.gz", "has_sig": false, "md5_digest": "bae6e1f393861da59e2491303e9ce865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290305, "upload_time": "2019-10-18T17:55:38", "url": "https://files.pythonhosted.org/packages/a5/d6/d4fdc91366024a696e5f32d9ab7bdceec128acdbbe7fe1e21ecc08c8469f/attacut-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3ec95fa21b23ceb28cb8819d47640d28", "sha256": "7cc0028303c9deb32dad6e7e0b51ff7be047d7d233bbfc759012ac7fc2c3a8c6" }, "downloads": -1, "filename": "attacut-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3ec95fa21b23ceb28cb8819d47640d28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1291453, "upload_time": "2019-10-18T17:55:34", "url": "https://files.pythonhosted.org/packages/a4/06/091491dbb7a73a2cb6ac2ed70476d14502224a126addf25a9ae9799beb04/attacut-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bae6e1f393861da59e2491303e9ce865", "sha256": "7a754290871ba6f281a0324b3ff8f01f65aa0f0a951b8f7f20163de07da1da3e" }, "downloads": -1, "filename": "attacut-1.0.5.tar.gz", "has_sig": false, "md5_digest": "bae6e1f393861da59e2491303e9ce865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1290305, "upload_time": "2019-10-18T17:55:38", "url": "https://files.pythonhosted.org/packages/a5/d6/d4fdc91366024a696e5f32d9ab7bdceec128acdbbe7fe1e21ecc08c8469f/attacut-1.0.5.tar.gz" } ] }