{ "info": { "author": "Martin Thoma", "author_email": "info@martin-thoma.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development", "Topic :: Utilities" ], "description": "[![DOI](https://zenodo.org/badge/102892750.svg)](https://zenodo.org/badge/latestdoi/102892750)\n[![PyPI version](https://badge.fury.io/py/clana.svg)](https://badge.fury.io/py/clana)\n[![Python Support](https://img.shields.io/pypi/pyversions/clana.svg)](https://pypi.org/project/clana/)\n[![Documentation Status](https://readthedocs.org/projects/clana/badge/?version=latest)](http://clana.readthedocs.io/en/latest/?badge=latest)\n[![Build Status](https://travis-ci.org/MartinThoma/clana.svg?branch=master)](https://travis-ci.org/MartinThoma/clana)\n[![Coverage Status](https://coveralls.io/repos/github/MartinThoma/clana/badge.svg?branch=master)](https://coveralls.io/github/MartinThoma/clana?branch=master)\n\n# clana\n\n`clana` is a toolkit for classifier analysis. One key contribution of clana is\nConfusion Matrix Ordering (CMO) as explained in chapter 5 of [Analysis and Optimization of Convolutional Neural Network Architectures](https://arxiv.org/abs/1707.09725). It is a technique\nthat can be applied to any multi-class classifier and helps to understand which\ngroups of classes are most similar.\n\n\n## Installation\n\nThe recommended way to install clana is:\n\n```\n$ pip install clana --user\n```\n\nIf you want the latest version:\n\n```\n$ git clone https://github.com/MartinThoma/clana.git; cd clana\n$ pip install -e . --user\n```\n\n## Usage\n\n```\n$ clana --help\nUsage: clana [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --version Show the version and exit.\n --help Show this message and exit.\n\nCommands:\n distribution Get the distribution of classes in a dataset.\n get-cm Calculate the confusion matrix (CSV inputs).\n get-cm-simple Calculate the confusion matrix (one label per...\n visualize Optimize confusion matrix.\n```\n\nThe visualize command gives you images like this:\n\n![Confusion Matrix after Confusion Matrix Ordering of the WiLI-2018 dataset](cm-wili-2018.png)\n\n### MNIST example\n\n```\n$ cd docs/\n$ python mnist_example.py # creates `train-pred.csv` and `test-pred.csv`\n$ clana get-cm --gt gt-train.csv --predictions train-pred.csv --n 10\n2019-09-14 09:47:30,655 - root - INFO - cm was written to 'cm.json'\n$ clana visualize --cm cm.json --zero_diagonal\nScore: 13475\n2019-09-14 09:49:41,593 - root - INFO - n=10\n2019-09-14 09:49:41,593 - root - INFO - ## Starting Score: 13475.00\n2019-09-14 09:49:41,594 - root - INFO - Current: 13060.00 (best: 13060.00, hot_prob_thresh=100.0000%, step=0, swap=False)\n[...]\n2019-09-14 09:49:41,606 - root - INFO - Current: 9339.00 (best: 9339.00, hot_prob_thresh=100.0000%, step=238, swap=False)\nScore: 9339\nPerm: [0, 6, 5, 8, 3, 2, 1, 7, 9, 4]\n2019-09-14 09:49:41,639 - root - INFO - Classes: [0, 6, 5, 8, 3, 2, 1, 7, 9, 4]\nAccuracy: 93.99%\n2019-09-14 09:49:41,725 - root - INFO - Save figure at '/home/moose/confusion_matrix.tmp.pdf'\n2019-09-14 09:49:41,876 - root - INFO - Found threshold for local connection: 398\n2019-09-14 09:49:41,876 - root - INFO - Found 9 clusters\n2019-09-14 09:49:41,877 - root - INFO - silhouette_score=-0.012313948323292875\n 1: [0]\n 1: [6]\n 1: [5]\n 1: [8]\n 1: [3]\n 1: [2]\n 1: [1]\n 2: [7, 9]\n 1: [4]\n```\n\nThis gives\n\n![](mnist_confusion_matrix.png)\n\n#### Label Manipulation\n\nPrepare a `labels.csv` which **has to have a header row**:\n\n```\n$ clana visualize --cm cm.json --zero_diagonal --labels mnist/labels.csv\n```\n\n![](mnist_confusion_matrix_labels.png)\n\n\n### Data distribution\n\n```\n$ clana distribution --gt gt.csv --labels labels.csv [--out out/] [--long]\n```\n\nprints one line per label, e.g.\n\n```\n60% cat (56789 elements)\n20% dog (12345 elements)\n 5% mouse (1337 elements)\n 1% tux (314 elements)\n```\n\nIf `--out` is specified, it creates a horizontal bar chart. The first bar is\nthe most common class, the second bar is the second most common class, ...\n\nIt uses the short labels, except `--long` is added to the command.\n\n\n### Metrics\n\n```\n$ clana metrics --gt gt.csv --preds preds.csv\n```\n\ngives the following metrics by\n\n* Line 1: Accuracy\n* Line 2: Precision\n* Line 3: Recall\n* Line 4: F1-Score\n* Line 5: Mean accuracy\n\n### Visualizations\n\nSee [visualizations](visualizations.md)\n\n\n## Development\n\nCheck tests with `tox`.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/MartinThoma/clana", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MartinThoma/clana", "keywords": "Machine Learning,Data Science", "license": "MIT", "maintainer": "Martin Thoma", "maintainer_email": "info@martin-thoma.de", "name": "clana", "package_url": "https://pypi.org/project/clana/", "platform": "Linux", "project_url": "https://pypi.org/project/clana/", "project_urls": { "Download": "https://github.com/MartinThoma/clana", "Homepage": "https://github.com/MartinThoma/clana" }, "release_url": "https://pypi.org/project/clana/0.3.9/", "requires_dist": [ "click (>=6.7)", "jinja2", "matplotlib (>=2.1.1)", "numpy (>=1.14.0)", "PyYAML (>=5.1.1)", "scikit-learn (>=0.19.1)", "scipy (>=1.0.0)" ], "requires_python": "", "summary": "CLANA is a toolkit for classifier analysis.", "version": "0.3.9" }, "last_serial": 5865517, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5c931715a49f1a7bb0ca6437391b38a3", "sha256": "447d1fffb09d02175e32fefe8c3315caae143fd2a272fab25cda08ea22d22ac0" }, "downloads": -1, "filename": "clana-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5c931715a49f1a7bb0ca6437391b38a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11803, "upload_time": "2018-01-03T20:01:09", "url": "https://files.pythonhosted.org/packages/06/30/0fbeb64f707a1e827f8eb5534b5a20df30e41ad8b308fac1166342c7bee2/clana-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dfcff0f3bd87de7dd5e78957ea7dc3a", "sha256": "c2aaf4242d77dadb872c5e297e322f149516a03238b3cd658d2c9d80993ca633" }, "downloads": -1, "filename": "clana-0.0.1.tar.gz", "has_sig": false, "md5_digest": "4dfcff0f3bd87de7dd5e78957ea7dc3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8438, "upload_time": "2018-01-03T20:01:10", "url": "https://files.pythonhosted.org/packages/13/85/7f4e2eaec782f032083fa9a14ad7a8301b722c9b802ee972ba1e62b6d73e/clana-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "76e8b28abcea68e260c78a08fb4076e5", "sha256": "f483adb3812b9b30cbae5472a71dbe1b56dc94eba0f2f19da6fd9fc1e7d6403e" }, "downloads": -1, "filename": "clana-0.1.0.tar.gz", "has_sig": false, "md5_digest": "76e8b28abcea68e260c78a08fb4076e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11166, "upload_time": "2018-01-21T19:41:42", "url": "https://files.pythonhosted.org/packages/03/c0/4e50736a85186ed3643ddc4cc4b85daed0527168f2b4e1cc6d88fa9248fb/clana-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5b7278d0ba26882a2a2752223c316143", "sha256": "1a3d7ed4516e9055acacaf493b58451e09384b015436359b60c72ae68a94f78f" }, "downloads": -1, "filename": "clana-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5b7278d0ba26882a2a2752223c316143", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15314, "upload_time": "2018-01-28T16:23:49", "url": "https://files.pythonhosted.org/packages/2c/9c/62045933f9322473b9b8b626dc2b3f4311b69e4b7391da4f0841bc014040/clana-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b321223d474fe640b6c813b9f16fdb0", "sha256": "d938e8231a06fdaf9d51f118ee53702e14c9d9d1111b177cf0b54c06949537ca" }, "downloads": -1, "filename": "clana-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6b321223d474fe640b6c813b9f16fdb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11646, "upload_time": "2018-01-28T16:23:52", "url": "https://files.pythonhosted.org/packages/e0/e4/97b05c868c4d991997073f73f21e660a0ee646faad597ed1c530a40d3528/clana-0.2.0.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ec0cf2af56d7749e594f5e019c126560", "sha256": "a15f567b87b6eb675e81adfbf69e84463543117558c264fb26856a664888a202" }, "downloads": -1, "filename": "clana-0.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "ec0cf2af56d7749e594f5e019c126560", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17128, "upload_time": "2018-06-09T16:37:29", "url": "https://files.pythonhosted.org/packages/fb/b8/8d6abfcc444d445851f6ca43812767b085c13ef4a24d27ec6c89c37fdbff/clana-0.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1279d6d6e70929c5dfe772dd35948c22", "sha256": "0c13049c0d538e56a94915e1c505c3770c1f1a5941364c8965bffeaa7675c9ae" }, "downloads": -1, "filename": "clana-0.2.3.tar.gz", "has_sig": false, "md5_digest": "1279d6d6e70929c5dfe772dd35948c22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13768, "upload_time": "2018-06-09T16:37:32", "url": "https://files.pythonhosted.org/packages/44/8f/7b3e23e5e869f07bcd233c52f45a0b014a0c7222b819b33a6e387d642adc/clana-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "2b119603ba160954c52737c35b80cbee", "sha256": "442f6c624b37d35bfe056513152f97c1d9301f246a23015e0264daff94becf07" }, "downloads": -1, "filename": "clana-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2b119603ba160954c52737c35b80cbee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15150, "upload_time": "2018-06-10T09:51:38", "url": "https://files.pythonhosted.org/packages/d3/07/9f1161b526ac3c614774bb2c38fa0f3e13f7719c624a90d0e34adfdd7f01/clana-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65cbf7b8aac76f0c4124877134855068", "sha256": "ec9df66a9e45545c0234e83e04fecc1cf52680832bd81087f13b5bc4d555519b" }, "downloads": -1, "filename": "clana-0.2.4.tar.gz", "has_sig": false, "md5_digest": "65cbf7b8aac76f0c4124877134855068", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13770, "upload_time": "2018-06-10T09:51:39", "url": "https://files.pythonhosted.org/packages/a9/51/ecb99eb23437679e82ac16974e1d366da7c6d09167b8b2e92730409f4814/clana-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c78f9c58b12ba01cbeb85dec63c5a170", "sha256": "fd51a0625e68db534047a1d78680c987e039aa14c22d5786c7f77ea9c1651491" }, "downloads": -1, "filename": "clana-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c78f9c58b12ba01cbeb85dec63c5a170", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16693, "upload_time": "2019-07-02T20:20:02", "url": "https://files.pythonhosted.org/packages/7a/d1/3ce277d32ea507838dfda1635317c2246544af47ba3154e2ecda3a3161de/clana-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b716743d5893c34f2c7bc7b86ee3bc86", "sha256": "5f6f3d7af6db8b4c7f39c58a086af689fe1f5a71bffdf5d4ea352dc21b942f2f" }, "downloads": -1, "filename": "clana-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b716743d5893c34f2c7bc7b86ee3bc86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14493, "upload_time": "2019-07-02T20:20:04", "url": "https://files.pythonhosted.org/packages/fd/89/777237f6b4a00802d2863eb1722d711d525abb2f708161da1f270ad158b1/clana-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "1fe90bcbb8bfe5a9d1962314439d3401", "sha256": "4ec854f28ff2d75188dea93c6c2207ba9112f43ac4eff42fbc18f4679852f4a8" }, "downloads": -1, "filename": "clana-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1fe90bcbb8bfe5a9d1962314439d3401", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17132, "upload_time": "2019-07-07T20:47:14", "url": "https://files.pythonhosted.org/packages/dd/b2/8009280968f28c689f9b4ea47146026ccdf1a5ec362371d37f255ce8a066/clana-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bbe39a3f71a512474738a69be0529b7", "sha256": "e700e0aadd29e6fe313919e2b24e2fdbcb6a8ff6c8d1eb424abbe40a4758f32a" }, "downloads": -1, "filename": "clana-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4bbe39a3f71a512474738a69be0529b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14821, "upload_time": "2019-07-07T20:47:16", "url": "https://files.pythonhosted.org/packages/d5/4b/be58ccea1da05820cebb14c37d84ac65311361bb52ade8ec5c41655b987d/clana-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "bd8f29e154f534548e6f1e5ff370f29f", "sha256": "011d8aba30d8d6b3c577ea8d3e266895f7c10caf5f2907b2d9d2e5a58e9ace92" }, "downloads": -1, "filename": "clana-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bd8f29e154f534548e6f1e5ff370f29f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18632, "upload_time": "2019-09-12T17:25:28", "url": "https://files.pythonhosted.org/packages/10/dc/fc99c71aef5d7ebd4ab4d56ccf666ceca730b788c134952881da83957da0/clana-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3fd742ccb08ef8bddfc499cedaaa9e91", "sha256": "5711d448f4d9bdd95069fc23f058010444e3c6b0b43d80cf920498a18a0d6994" }, "downloads": -1, "filename": "clana-0.3.2.tar.gz", "has_sig": false, "md5_digest": "3fd742ccb08ef8bddfc499cedaaa9e91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16148, "upload_time": "2019-09-12T17:25:30", "url": "https://files.pythonhosted.org/packages/75/bb/544eb0b4af5469f99841f7bf95bd5ae90e77bac4d593549f9292d52e6e76/clana-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "7d611f37be0fd596ebc0bf7fe293d2cc", "sha256": "a41614883d11f09c7bc1152f7f4f98a2064fed9b7743fc7fa3529e178ebcc966" }, "downloads": -1, "filename": "clana-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7d611f37be0fd596ebc0bf7fe293d2cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18785, "upload_time": "2019-09-14T12:35:52", "url": "https://files.pythonhosted.org/packages/2b/1d/e63ae5cac04c3608b4b5bb1d8338746a4f7ab0284d7a120f1a38a647f48b/clana-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c62283a81155b0de03862a76d2fdff6", "sha256": "0cfe2fec985e97ef85d4ac24bab717ebea0e8562a8628d535f15d37360b99816" }, "downloads": -1, "filename": "clana-0.3.3.tar.gz", "has_sig": false, "md5_digest": "4c62283a81155b0de03862a76d2fdff6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17084, "upload_time": "2019-09-14T12:35:55", "url": "https://files.pythonhosted.org/packages/fb/6e/be724069a7aa2bf8c4e563475c257c433e04a8a770f287dbf8ea8d4ccb60/clana-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "ade33e2c759c15944aebe04798fa88a9", "sha256": "4dbe0e20ef2bdd7d335bfca1103a6213a52b1dbc4ba8a2605bdeb9c55cd696b8" }, "downloads": -1, "filename": "clana-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ade33e2c759c15944aebe04798fa88a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19064, "upload_time": "2019-09-14T14:57:11", "url": "https://files.pythonhosted.org/packages/56/07/51c5210d33645b2a55adb7d2217ea67064f15404f7113cda3985de9d3d51/clana-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "281de8fe49e540df442d649df970ca98", "sha256": "fa7adebcaae6cd3e98b0b476ab9206e3adb6d1aa8a57ac1c42ff26d95adcfe94" }, "downloads": -1, "filename": "clana-0.3.4.tar.gz", "has_sig": false, "md5_digest": "281de8fe49e540df442d649df970ca98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17324, "upload_time": "2019-09-14T14:57:14", "url": "https://files.pythonhosted.org/packages/53/a2/0356d25eadf155ce57439ce21b17a6718da7269dab78c8ccaa7d5342c8ab/clana-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "5356af373a5a261feababd5fb5924020", "sha256": "b0f3b11010f69b813cd9a17a8eb763ef27be17ca01923cf4c32d77dbcac9e91d" }, "downloads": -1, "filename": "clana-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "5356af373a5a261feababd5fb5924020", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20164, "upload_time": "2019-09-17T20:54:42", "url": "https://files.pythonhosted.org/packages/e3/f2/5f0ee18dcee37d25e045ec374689f27531bf24d34efe56bac2e0edcc7d54/clana-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd5e9ee3802a14dbfbd79532571c8ee5", "sha256": "29bf9e8e33cd30a6f225774b448177b69040b3240243d05fb5fad008494cba4b" }, "downloads": -1, "filename": "clana-0.3.5.tar.gz", "has_sig": false, "md5_digest": "dd5e9ee3802a14dbfbd79532571c8ee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17658, "upload_time": "2019-09-17T20:54:44", "url": "https://files.pythonhosted.org/packages/05/88/f357fc0c06ec07ea2febeda8896d04a483d47e8c2115f8a9fef44341d4f2/clana-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "99f3108ec5ff317de9a4084378e9a424", "sha256": "9c47942d415b3a70df01e2ee7d8a67b30252979f1164e51892c705b2d29f2f7a" }, "downloads": -1, "filename": "clana-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "99f3108ec5ff317de9a4084378e9a424", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20165, "upload_time": "2019-09-21T07:11:50", "url": "https://files.pythonhosted.org/packages/71/9d/3caea1ac708eaec129c1b8d7b7d28b0bb46d6c5fd5ff1f029c7fc5523495/clana-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49d5d2643be554041b236c3a6146efb6", "sha256": "5d015bb3a5726449dd94e2b2cc7c98a2ab1a697733db531c908ea2be07c18227" }, "downloads": -1, "filename": "clana-0.3.6.tar.gz", "has_sig": false, "md5_digest": "49d5d2643be554041b236c3a6146efb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17671, "upload_time": "2019-09-21T07:11:52", "url": "https://files.pythonhosted.org/packages/9f/8e/8cc8c254bcb9e3bf64a7cf61441665760e150b1d340eb0ef7e8760aa9fbd/clana-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "da9fa9e4f0e54aeaff1f1d1400be4f49", "sha256": "4d0b76c4cd4437420e46418463eb8d8d61c083ac78e0cffcb441e2c0bc400913" }, "downloads": -1, "filename": "clana-0.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "da9fa9e4f0e54aeaff1f1d1400be4f49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20164, "upload_time": "2019-09-21T07:41:09", "url": "https://files.pythonhosted.org/packages/96/3e/718b7d0b1e354acdd489e2b44d1deabd552ad888505e9c8aca8eabeaada4/clana-0.3.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0e12eb521027124c35aac261bfa55b5", "sha256": "1aecf2b00ae62427332a65bba4915a6d77c536191777b7ae56117ae0f77fda0c" }, "downloads": -1, "filename": "clana-0.3.7.tar.gz", "has_sig": false, "md5_digest": "c0e12eb521027124c35aac261bfa55b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17715, "upload_time": "2019-09-21T07:41:11", "url": "https://files.pythonhosted.org/packages/30/02/9245c98f286bd6d6e2f9e9a2603cf9fcd034704df068354bf8107ff9acfc/clana-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "ea54b9344a54433f98575984f3330480", "sha256": "9029e124603466e6082cec68e502ddf28c391517e3c41a8e1f3a278945a01193" }, "downloads": -1, "filename": "clana-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "ea54b9344a54433f98575984f3330480", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20954, "upload_time": "2019-09-21T07:46:35", "url": "https://files.pythonhosted.org/packages/77/8c/af911a4eecca80d4bd6c407f16135088fda57de948b39a32bcd19e72d6fa/clana-0.3.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c4e180ba4fd45ee03748de3e2b340fb", "sha256": "448068561e142f78e4c900e6c122d4484a31b241682542214bf88900d67d55ba" }, "downloads": -1, "filename": "clana-0.3.8.tar.gz", "has_sig": false, "md5_digest": "4c4e180ba4fd45ee03748de3e2b340fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17644, "upload_time": "2019-09-21T07:46:37", "url": "https://files.pythonhosted.org/packages/d1/37/aa7fa92eae96f46428eaee69ab7e654f9e99f0a84293f95072da74c766c4/clana-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "2c5195bb46a5de0022cf1e1ce8894fd7", "sha256": "39a9453296557f7648c552878f6fb1c68ac4b4d3503cbe5f19926351e5832012" }, "downloads": -1, "filename": "clana-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "2c5195bb46a5de0022cf1e1ce8894fd7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20953, "upload_time": "2019-09-21T08:08:19", "url": "https://files.pythonhosted.org/packages/f1/18/81e1524988f355accf996e7df236bf26b1d0dbafcc230a7d9705fb0042c2/clana-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2471f20c4e2a46a6766eb943b6fb67b8", "sha256": "231fc461ec32c87ad96c2177f7b9928022918af5601a3ad4afd5749bc6e180c1" }, "downloads": -1, "filename": "clana-0.3.9.tar.gz", "has_sig": false, "md5_digest": "2471f20c4e2a46a6766eb943b6fb67b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18632, "upload_time": "2019-09-21T08:08:21", "url": "https://files.pythonhosted.org/packages/df/04/f89da00483edb3194533f6aacc6ccdddb2e948fec771310973792665b326/clana-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2c5195bb46a5de0022cf1e1ce8894fd7", "sha256": "39a9453296557f7648c552878f6fb1c68ac4b4d3503cbe5f19926351e5832012" }, "downloads": -1, "filename": "clana-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "2c5195bb46a5de0022cf1e1ce8894fd7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20953, "upload_time": "2019-09-21T08:08:19", "url": "https://files.pythonhosted.org/packages/f1/18/81e1524988f355accf996e7df236bf26b1d0dbafcc230a7d9705fb0042c2/clana-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2471f20c4e2a46a6766eb943b6fb67b8", "sha256": "231fc461ec32c87ad96c2177f7b9928022918af5601a3ad4afd5749bc6e180c1" }, "downloads": -1, "filename": "clana-0.3.9.tar.gz", "has_sig": false, "md5_digest": "2471f20c4e2a46a6766eb943b6fb67b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18632, "upload_time": "2019-09-21T08:08:21", "url": "https://files.pythonhosted.org/packages/df/04/f89da00483edb3194533f6aacc6ccdddb2e948fec771310973792665b326/clana-0.3.9.tar.gz" } ] }