{ "info": { "author": "Eric Schles", "author_email": "ericschles@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# ML Testing\n\nThe goal of this module is to create a flexible and easy to use module for testing machine learning models, specifically those in scikit-learn. \n\nThe tests will be readable enough that anyone can extend them to other frameworks and APIs with the major notions kept the same, but more or less the ideas will be extended, no work will be taken in this library to extend passed the scikit-learn API.\n\nYou can [read the docs](https://drifter-ml.readthedocs.io/en/latest/) for a more detailed explaination.\n\n[![Documentation Status](https://readthedocs.org/projects/drifter-ml/badge/?version=latest)](https://drifter-ml.readthedocs.io/en/latest/?badge=latest)\n[![CircleCI](https://circleci.com/gh/EricSchles/drifter_ml.svg?style=svg)](https://circleci.com/gh/EricSchles/drifter_ml)\n[![Version Number](https://img.shields.io/pypi/v/drifter-ml.svg)](https://pypi.org/project/drifter-ml/)\n[![Downloads Per Month](https://img.shields.io/pypi/dm/drifter-ml.svg)](https://pypi.org/project/drifter-ml/)\n[![codecov](https://codecov.io/gh/EricSchles/drifter_ml/branch/master/graph/badge.svg)](https://codecov.io/gh/EricSchles/drifter_ml)\n\n## Tests Covered\n\n * Testing Against Metrics\n \t* Classification Tests\n \t\t* Rule Based Testing:\n\t \t\t* precision lower boundary\n\t \t\t* recall lower boundary\n\t \t\t* f1 score lower boundary\n\t \t\t* AUC lower boundary\n\t \t\t* precision lower boundary per class\n\t \t\t* recall lower boundary per class\n\t \t\t* f1 score lower boundary per class\n\t \t\t* AUC lower boundary per class\n \t\t* Decision Based Testing:\n \t\t\t* precision fold below average\n \t\t\t* recall fold below average\n \t\t\t* f1 fold below average\n \t\t\t* AUC fold below average\n \t\t\t* precision fold below average per class\n \t\t\t* recall fold below average per class\n \t\t\t* f1 fold below average per class\n \t\t\t* AUC fold below average per class\n \t\t* Against New Predictions\n \t\t\t* proportion of predictions per class\n \t\t\t* class imbalance tests\n \t\t\t* probability distribution similarity tests\n \t\t\t* calibration tests\n \t* Regression Tests\n \t\t* Rule Based Testing:\n \t\t \t* Mean Squared Error upper boundary\n \t\t\t* Median Absolute Error upper boundary\n \t\t* Decision Based Testing:\n \t\t\t* Mean Squared Error fold above average\n \t\t\t* Median Absolute Error fold above average\n * Testing Against Run Time Performance\n \t* prediction run time for simulated samples of size X\n * Testing Against Input Data\n \t* percentage of correct imputes for any columns requiring imputation\n \t* dataset testing - http://www.vldb.org/pvldb/vol11/p1781-schelter.pdf \n * Memoryful Tests\n \t* cluster testing - this is about the overall structure of the data\n \t\tIf the number of clusters increases or decreases substantially that \n \t\tshould be an indicator that the data has changed enough that things\n \t\tshould possibly be rerun\n \t* correlation testing - this is about ensuring that the correlation for a given column with previous data collected in the past does not change very much. If the data does change then the model should possibly be rerun.\n * shape testing - this is about ensuring the general shape of for the given column does not change much over time. The idea here is the same as the correlation tests.\n\n## Possible Issues\n\nSome known issues with this, any machine learning tests are going to require human interaction because of type 1 and type 2 error for statistical tests. Additionally, one simply needs to interrogate models from a lot of angles. It can't be from just one angle. So I'm not even sure if the overall notion of adding ML testing into a CI pipeline is really feasible.\n\n## Future Features\n\n* cross validation score testing\n* add custom loss function\n* add custom accuracy function\n* add these tests: https://www.datasciencecentral.com/profiles/blogs/a-plethora-of-original-underused-statistical-tests\n* clustering for classification\n* Unsupervised and semi supervised tests\n\t* verify similarity in clusters to similarity in labels\n\t* generate a small representative set of labels and then propagate other labels\n\n\n## References\n\n* https://dzone.com/articles/quality-assurancetesting-the-machine-learning-mode\n* https://medium.com/datadriveninvestor/how-to-perform-quality-assurance-for-ml-models-cef77bbbcfb\n* Explaination of UAT: https://www.techopedia.com/definition/3887/user-acceptance-testing-uat\n* https://mice.cs.columbia.edu/getTechreport.php?techreportID=419&format=pdf\n* https://www.xenonstack.com/blog/unit-testing-tdd-bdd-deep-machine-learning/\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/EricSchles/drifter_ml", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "drifter-ml", "package_url": "https://pypi.org/project/drifter-ml/", "platform": "", "project_url": "https://pypi.org/project/drifter-ml/", "project_urls": { "Homepage": "https://github.com/EricSchles/drifter_ml" }, "release_url": "https://pypi.org/project/drifter-ml/0.22/", "requires_dist": [ "sklearn", "scipy", "numpy", "statsmodels", "mlxtend", "pytest" ], "requires_python": "", "summary": "Testing for models confirming to the scikit-learn api", "version": "0.22" }, "last_serial": 5709424, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "05903db4a5303c5601e12bdd4a6fe75e", "sha256": "784762aea6b5fd294ab0ed5038a3e0233a85d6d457ac8620cd8c45558e5925a2" }, "downloads": -1, "filename": "drifter_ml-0.1-py3.6.egg", "has_sig": false, "md5_digest": "05903db4a5303c5601e12bdd4a6fe75e", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 18009, "upload_time": "2019-03-14T16:03:15", "url": "https://files.pythonhosted.org/packages/86/d4/8baaa8f7258661345b15f2b5fa651b64e7f700698bcd68848b432b60c906/drifter_ml-0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "e9f33cbcdfceb5bb47b4793b605c3c3d", "sha256": "83af2cf01bdf2baffa0c298f8a2e3744534cd6205c4d95593ab2cf064c5888e6" }, "downloads": -1, "filename": "drifter_ml-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e9f33cbcdfceb5bb47b4793b605c3c3d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8396, "upload_time": "2019-03-14T16:08:10", "url": "https://files.pythonhosted.org/packages/39/a3/fca2040f6267176fffce85b7f6d4117bce7e50c0b716fafa2f47bdd5f1a7/drifter_ml-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35651ec4bb338e6c46b9998f9e17ee28", "sha256": "9486aefb0ab15acbc34a9a9fbed96a0f9e234a968f82056bff214f0ce939d951" }, "downloads": -1, "filename": "drifter_ml-0.1.tar.gz", "has_sig": false, "md5_digest": "35651ec4bb338e6c46b9998f9e17ee28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63868, "upload_time": "2019-03-14T16:03:17", "url": "https://files.pythonhosted.org/packages/d4/7f/f66373e97673cf1ed4f884c8b987ee8343e974e0876e9f35cf351d1889fb/drifter_ml-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "f4084428236f5f0974b7a63ab95af220", "sha256": "458b04a8e76a8caae9dc17ac41037bf52086c3fd5082bd1fbca6033c908cff43" }, "downloads": -1, "filename": "drifter_ml-0.10-py3.6.egg", "has_sig": false, "md5_digest": "f4084428236f5f0974b7a63ab95af220", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 26149, "upload_time": "2019-03-28T00:15:02", "url": "https://files.pythonhosted.org/packages/4f/40/aa35520674bf1ade824ba1b8c5777b88ce2644a81a0f77d6cef027086f58/drifter_ml-0.10-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "2636483b7074e1084e728a7c5d4fb99b", "sha256": "2243b25decf566e145ae57e5d1e9bfe2c9914a94881cbc4fb855b1d25203c67f" }, "downloads": -1, "filename": "drifter_ml-0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "2636483b7074e1084e728a7c5d4fb99b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11996, "upload_time": "2019-03-28T00:15:00", "url": "https://files.pythonhosted.org/packages/9f/65/1d349ad66c58cd1a559aef54b5dcd46fdd7908baa979826edfea12047742/drifter_ml-0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92d6a4fe7fda2a02543fcc41c68a34b8", "sha256": "1aaa0eb94fc3fe31531ec5dd35d16a76ed6bc6070bc1ccfaa5cc357a8f6647c5" }, "downloads": -1, "filename": "drifter_ml-0.10.tar.gz", "has_sig": false, "md5_digest": "92d6a4fe7fda2a02543fcc41c68a34b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10737, "upload_time": "2019-03-28T00:15:03", "url": "https://files.pythonhosted.org/packages/af/8a/c2ae61376f96e606b0462656d45b5b54553f9272adc2862f78c5f541c711/drifter_ml-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "9d8942df167b027a3f77b70b43d2930a", "sha256": "9a14d4500bcea9c6e0e4f62b01d41e63e5ebe33aa216035450a907f3bf698860" }, "downloads": -1, "filename": "drifter_ml-0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9d8942df167b027a3f77b70b43d2930a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11993, "upload_time": "2019-03-28T00:22:29", "url": "https://files.pythonhosted.org/packages/76/a9/050108de3cd6aaf96737391003f162862da621b42e48c1094b098bcded85/drifter_ml-0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "856b738f8e2fb58b4aaa58ccb74c44d6", "sha256": "b14b718bd4f2c315b3f909bfd42b04ceec961fd7e52805055d289fab7cbd88a3" }, "downloads": -1, "filename": "drifter_ml-0.11.tar.gz", "has_sig": false, "md5_digest": "856b738f8e2fb58b4aaa58ccb74c44d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10755, "upload_time": "2019-03-28T00:22:31", "url": "https://files.pythonhosted.org/packages/50/f4/bbdcc07cb67560a101e8ce2e233a4debba79773f3a30c487b77aaeac93b9/drifter_ml-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "56ee3f6cb18806196bb2980d7897fc65", "sha256": "9f1f2b67528d27f0640e1529a1f41c90a8ccaea162c1b20b56d72d5a2caae61e" }, "downloads": -1, "filename": "drifter_ml-0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "56ee3f6cb18806196bb2980d7897fc65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11992, "upload_time": "2019-03-28T00:41:04", "url": "https://files.pythonhosted.org/packages/c3/99/55491bfb11e648011f78e93a755190be72e3bd6da24fdc1baac40e40068d/drifter_ml-0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49197efa53776a96b73990fce1a96e01", "sha256": "1e3286d0f228442aafcb828df428968e0c9a004fc5d7bd7eeec73fce91904e55" }, "downloads": -1, "filename": "drifter_ml-0.12.tar.gz", "has_sig": false, "md5_digest": "49197efa53776a96b73990fce1a96e01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10735, "upload_time": "2019-03-28T00:41:05", "url": "https://files.pythonhosted.org/packages/87/b3/b7c39b7bc1cb7179e34bca6d1d3c69da4d4ab79a7cf146bc8fe6fe5649d4/drifter_ml-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "530f195d21d97e6ad166d2d3f730ed0c", "sha256": "39194e19ddb670e4706a1487c4fdf6a5767640171605e7f46ecbfec179e60663" }, "downloads": -1, "filename": "drifter_ml-0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "530f195d21d97e6ad166d2d3f730ed0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12005, "upload_time": "2019-03-28T02:08:54", "url": "https://files.pythonhosted.org/packages/49/7f/132a9fc143edcd9a3e54c10beee4b2580dee69f2cf0ac632077e9922b5cf/drifter_ml-0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07a5eb8de21c53c06e877124b4519fd2", "sha256": "ecb77572651776d6c81326515407c7b1cb00c8773e0fcd3192d49ef7e2ae8ecc" }, "downloads": -1, "filename": "drifter_ml-0.13.tar.gz", "has_sig": false, "md5_digest": "07a5eb8de21c53c06e877124b4519fd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10737, "upload_time": "2019-03-28T02:08:56", "url": "https://files.pythonhosted.org/packages/59/93/34a0174f3b575cea8b67459dde678df9203bc715414b0f5748d576c0fa6c/drifter_ml-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "c8c44ebbb21f59af4e29b40e5b8afd7f", "sha256": "d9d9effa90ec35fb80a824869b9fd729c3de77203c735db5cc2a08db032ecdf8" }, "downloads": -1, "filename": "drifter_ml-0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "c8c44ebbb21f59af4e29b40e5b8afd7f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12023, "upload_time": "2019-03-28T02:50:05", "url": "https://files.pythonhosted.org/packages/6e/05/9b73677915d0573a3f012f0409d3cbb85ce6e7a4d531ad72427be8dce8db/drifter_ml-0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06e804ae5b98db44c14605dea77bed33", "sha256": "045bba9bc87e74f7e95e0cfc0e78521ba1ffed6774edd93f93a9c0b7ea2367ff" }, "downloads": -1, "filename": "drifter_ml-0.14.tar.gz", "has_sig": false, "md5_digest": "06e804ae5b98db44c14605dea77bed33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10743, "upload_time": "2019-03-28T02:50:07", "url": "https://files.pythonhosted.org/packages/ae/e0/e1ecd363dd46726341a4fadcc308a1889ce5628f26455a6c893a65d6b54a/drifter_ml-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "d25a1c73ae619993f292daf03d1fc2cd", "sha256": "16fba2091ac2bf1ead1d88dd5dcb2b72dbd0abd9f185b769aa6d76db28690b2d" }, "downloads": -1, "filename": "drifter_ml-0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "d25a1c73ae619993f292daf03d1fc2cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12183, "upload_time": "2019-03-28T13:23:29", "url": "https://files.pythonhosted.org/packages/dd/df/c31a1ae57d1eb2ae89f2f07d7b268d156c16d4641d30c3ef1dc2be68106f/drifter_ml-0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f498b2833de46ff332a73e7f9a148b36", "sha256": "829a27d3c90356f64f4273f944fdca2b4f1250a5d8585d0bf54d258dc15a4967" }, "downloads": -1, "filename": "drifter_ml-0.15.tar.gz", "has_sig": false, "md5_digest": "f498b2833de46ff332a73e7f9a148b36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11007, "upload_time": "2019-03-28T13:23:31", "url": "https://files.pythonhosted.org/packages/68/fd/ffe47dd650dae5dc1659d97a5a5ecf90816a78cd58c408ebfcec82b6afcc/drifter_ml-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "3f511b30b913694f507952cd0744330d", "sha256": "1de4a52725442fcc432c83552c549f5f442e327119c1aacfcc51d96772d0130d" }, "downloads": -1, "filename": "drifter_ml-0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "3f511b30b913694f507952cd0744330d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12908, "upload_time": "2019-03-29T14:04:39", "url": "https://files.pythonhosted.org/packages/a1/f1/fb394be7fe8eb8285267028ba2bac2194e5c48263206912dd89a2dc9a7df/drifter_ml-0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f594f5a7f81f88f58092e76171b23979", "sha256": "afafd655aa85aac9fa1cd214be084a8f55f7575ce76d352e8fce1a4eb2e6293f" }, "downloads": -1, "filename": "drifter_ml-0.16.tar.gz", "has_sig": false, "md5_digest": "f594f5a7f81f88f58092e76171b23979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11921, "upload_time": "2019-03-29T14:04:40", "url": "https://files.pythonhosted.org/packages/3b/71/1cec9e70e5d0b06c31370480891da25250fbdc6d9028b052f65e239015a8/drifter_ml-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "c30c69b7c16c9fbb6f90415ecec3de89", "sha256": "44e84b0dd03ab7024dd130d9e86b04348a8f7eda8a5d811bce0715c3622debdb" }, "downloads": -1, "filename": "drifter_ml-0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "c30c69b7c16c9fbb6f90415ecec3de89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12826, "upload_time": "2019-03-31T17:45:18", "url": "https://files.pythonhosted.org/packages/6f/ee/d2f565c06c9f1a532bbda2c40de71c0bf92e0dde959fc293ea91451ea281/drifter_ml-0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a5332dfec211a2716462b7c1596acdd", "sha256": "6ab2347106533593c51920d42a839bc2e0731b3824c1eba444720a9a44398ee7" }, "downloads": -1, "filename": "drifter_ml-0.17.tar.gz", "has_sig": false, "md5_digest": "2a5332dfec211a2716462b7c1596acdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11817, "upload_time": "2019-03-31T17:45:19", "url": "https://files.pythonhosted.org/packages/f1/e2/581bf374e097da2aee354dde006325814c6598e7c43b18560124d2575323/drifter_ml-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "d34aa14a5ec32605798d7dd91caf59f5", "sha256": "cdbf7c325c3e5914784224ba87a17f5061fc8278e344719586d5887a7d733479" }, "downloads": -1, "filename": "drifter_ml-0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "d34aa14a5ec32605798d7dd91caf59f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12851, "upload_time": "2019-04-02T16:38:11", "url": "https://files.pythonhosted.org/packages/c3/f5/c18894521bd300220b22cc1ddfce72bcf244c0915176a4a173f1bb781c44/drifter_ml-0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b11d702538e7795d4a97ce0c8eded73b", "sha256": "aaabef2aede97ff67bbd46990e565038465d706f4a441605a6e6639c43ff9a32" }, "downloads": -1, "filename": "drifter_ml-0.18.tar.gz", "has_sig": false, "md5_digest": "b11d702538e7795d4a97ce0c8eded73b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11850, "upload_time": "2019-04-02T16:38:13", "url": "https://files.pythonhosted.org/packages/9f/5b/9b98c194573046c42582271ae8b22c15cb0acdb126e017261b2a164fefa5/drifter_ml-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "ee4d80ce1e068ebc3ccee5e560a1d231", "sha256": "25ce8dcf8f478dfc6765339e0d03dc12bddddf594c2414a00179b85043b09ec9" }, "downloads": -1, "filename": "drifter_ml-0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "ee4d80ce1e068ebc3ccee5e560a1d231", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13080, "upload_time": "2019-04-27T13:41:42", "url": "https://files.pythonhosted.org/packages/63/52/1db6a58dd14c6b8d36c6283b443e8e3682b02f331d3f39437f7f264fe498/drifter_ml-0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69581888c7a09689df21472216b2a9fd", "sha256": "38a46396f7532ef6d167161f845c3c2392897093489dd2e3811f2b0ef9ee2d3e" }, "downloads": -1, "filename": "drifter_ml-0.19.tar.gz", "has_sig": false, "md5_digest": "69581888c7a09689df21472216b2a9fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9952, "upload_time": "2019-04-27T13:41:45", "url": "https://files.pythonhosted.org/packages/f8/b7/0c275a62397faaca06e0776b658bc1fd57a4e4692767e3bfb1085796d6b2/drifter_ml-0.19.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "e28f9ada9a80880acb06471cbab73803", "sha256": "03d1e50383cb07d78330afd4cfb6677daabaace11f4cfe403822d22b1ec9324c" }, "downloads": -1, "filename": "drifter_ml-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e28f9ada9a80880acb06471cbab73803", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9321, "upload_time": "2019-03-15T01:21:50", "url": "https://files.pythonhosted.org/packages/22/40/36d258802e893aa079e3b405aef3ff85b81e1958a43b33e81113480141e8/drifter_ml-0.2-py3-none-any.whl" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "3f4fbc0e58b793220a976b7455b0108c", "sha256": "35e53893c2cd656dcd6c29e919a8ad9bd30615654b223dbe1a0db86be33c0d71" }, "downloads": -1, "filename": "drifter_ml-0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "3f4fbc0e58b793220a976b7455b0108c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17928, "upload_time": "2019-08-18T02:45:46", "url": "https://files.pythonhosted.org/packages/97/8d/4773df5f2d3efdf296bf3ac1920758bb5d5c32a59a947d5b39f34c84bc39/drifter_ml-0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12be2f0f39cc91f5392305aff3bfee72", "sha256": "df0efdde88f3e5d17ee60c20e507d8e23c303734b26000f5e0962f6d54cd8c37" }, "downloads": -1, "filename": "drifter_ml-0.20.tar.gz", "has_sig": false, "md5_digest": "12be2f0f39cc91f5392305aff3bfee72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15068, "upload_time": "2019-08-18T02:45:47", "url": "https://files.pythonhosted.org/packages/45/91/be33fcfc13ea567afddd20186b99746d5e5c4e1cf5854e5851cf7e76745f/drifter_ml-0.20.tar.gz" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "bc0b3566659d3f9db30d47b68f2206d9", "sha256": "f4260b671930d70acbc7cd549f51cdcfd851264200c7c77e0ffac693f157fc4b" }, "downloads": -1, "filename": "drifter_ml-0.21-py3-none-any.whl", "has_sig": false, "md5_digest": "bc0b3566659d3f9db30d47b68f2206d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18911, "upload_time": "2019-08-21T12:23:30", "url": "https://files.pythonhosted.org/packages/9c/e3/fc5b31deb1988818cd21537d8373a50716747821f4a55a6c0be094954995/drifter_ml-0.21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7886fb079e56505545ff918d2a6667f5", "sha256": "a9e767445485bd87cc37c5df81dbcf85c2a65d85df085781d4721c816f5664a0" }, "downloads": -1, "filename": "drifter_ml-0.21.tar.gz", "has_sig": false, "md5_digest": "7886fb079e56505545ff918d2a6667f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15849, "upload_time": "2019-08-21T12:23:32", "url": "https://files.pythonhosted.org/packages/f9/b1/0dbf43ee19ca929e1c28a6908b6487b6aeeeebcdbf1bc971ffc22f20a97b/drifter_ml-0.21.tar.gz" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "cde5c3daf1a1a344640f5b3cb1761190", "sha256": "65ba7da97cbcc5c0e660c337b26ed468156668d59e473ce69967a77eed9775ee" }, "downloads": -1, "filename": "drifter_ml-0.22-py3-none-any.whl", "has_sig": false, "md5_digest": "cde5c3daf1a1a344640f5b3cb1761190", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18880, "upload_time": "2019-08-21T12:33:51", "url": "https://files.pythonhosted.org/packages/d2/63/94ddedba7fc757d468a251915c0ce33dd7869991bae50875ad62c8113a8b/drifter_ml-0.22-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c0c27840cdd492958ece02e791cae29", "sha256": "ca11524c27ff7d047c19273e6d1c1bf48b03e7e9eea4154c3804fd9e3b1a9993" }, "downloads": -1, "filename": "drifter_ml-0.22.tar.gz", "has_sig": false, "md5_digest": "4c0c27840cdd492958ece02e791cae29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15827, "upload_time": "2019-08-21T12:33:53", "url": "https://files.pythonhosted.org/packages/ae/cd/3ccd76ca90c9ecadc14e1b3cb72f198eaef7820d3a56ac499a46d491bb89/drifter_ml-0.22.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "3844934c476855498d52f2e71f77b5bd", "sha256": "296402464eb9e337a32619bb77034ba5329aed1264fbb7f2231724a91ba34800" }, "downloads": -1, "filename": "drifter_ml-0.3-py3.6.egg", "has_sig": false, "md5_digest": "3844934c476855498d52f2e71f77b5bd", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 21433, "upload_time": "2019-03-15T01:25:39", "url": "https://files.pythonhosted.org/packages/18/f5/479054b0a8119429e50c61440c0f6284318de5f4e6ea3c64f21c577b6892/drifter_ml-0.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "bcfe58cd2f44217eb454e94f32832ea3", "sha256": "562b0d8699e3a6f8d1b460b7f6f7237f4c9d262f132c5f74ed1eefde9709d2ca" }, "downloads": -1, "filename": "drifter_ml-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bcfe58cd2f44217eb454e94f32832ea3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9320, "upload_time": "2019-03-15T01:25:36", "url": "https://files.pythonhosted.org/packages/a7/3d/62379a0580307b77a654933ec67b412b1c04e46dc4879237d80bbd63d88c/drifter_ml-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fe2a6aa400f839560e4584e8dc8d696", "sha256": "829bb411b0e42856a0dbfcfe1390948778b0c88d6a0953e663d7c1d4fc4e69c7" }, "downloads": -1, "filename": "drifter_ml-0.3.tar.gz", "has_sig": false, "md5_digest": "8fe2a6aa400f839560e4584e8dc8d696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73054, "upload_time": "2019-03-15T01:25:44", "url": "https://files.pythonhosted.org/packages/b7/5c/b80ee7504c558fbd6b72df48a8812f1837dbd4795331739729538647f3a7/drifter_ml-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "d10c5d47a6dd2b203181c4f8fc9fd599", "sha256": "990b2724a4f2568d0e0536ed4da59477cea88d7810683f82776d9facc6e9ca4e" }, "downloads": -1, "filename": "drifter_ml-0.4-py3.6.egg", "has_sig": false, "md5_digest": "d10c5d47a6dd2b203181c4f8fc9fd599", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 22013, "upload_time": "2019-03-15T16:24:41", "url": "https://files.pythonhosted.org/packages/ee/c2/bceb2cb572c3d31afe4c90a7b86d3bdaafbe50e44cee82de79f230a295dd/drifter_ml-0.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "8ea38f151f628fa56ce204c53b5b0fc9", "sha256": "16e9a01a281a27f8da9abf8bcba62cc5eaf394306c73fc7acd8a5a90a0fbd5ae" }, "downloads": -1, "filename": "drifter_ml-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8ea38f151f628fa56ce204c53b5b0fc9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9508, "upload_time": "2019-03-15T16:24:40", "url": "https://files.pythonhosted.org/packages/fb/de/5f5c1d85dc0917ddc9531fbad2ad36cea2028309d1c6b397b4dc4bd212a7/drifter_ml-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28563bb451989f192cec846b4cb2ce94", "sha256": "696ec76e40e58b1af984295b23124122cf5fc3f176e4e5992778c56eb57fbc2f" }, "downloads": -1, "filename": "drifter_ml-0.4.tar.gz", "has_sig": false, "md5_digest": "28563bb451989f192cec846b4cb2ce94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74637, "upload_time": "2019-03-15T16:24:43", "url": "https://files.pythonhosted.org/packages/7a/d9/e33670742a5d1c174e18d4469ebea993f2d558e1ec1a9a8906306da4c426/drifter_ml-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ffdffe4061f214b83975ccf2046e0626", "sha256": "181941b4ccea4ad45f143a76e558982f2354c36e83a1a748331239fb2e5fc520" }, "downloads": -1, "filename": "drifter_ml-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ffdffe4061f214b83975ccf2046e0626", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9812, "upload_time": "2019-03-18T14:17:30", "url": "https://files.pythonhosted.org/packages/6b/a5/2d8f6bb68ac7e246d5fcad37ccbd5ec1dbb3699ee54f5923961de2699138/drifter_ml-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd771dcca4a9ae2899a5d188321fac73", "sha256": "a99ac5cfca3cf3b50ba9d498457619e7eb3ceac653ef1ca93292c6918910e4d5" }, "downloads": -1, "filename": "drifter_ml-0.5.tar.gz", "has_sig": false, "md5_digest": "dd771dcca4a9ae2899a5d188321fac73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76349, "upload_time": "2019-03-18T14:17:32", "url": "https://files.pythonhosted.org/packages/57/68/a363cdb7f44032811070f0d92b4e52587b28c22de918f2db19389695a10e/drifter_ml-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "0c3e2e3a4eda008bb41ba6e68083ed3f", "sha256": "330e2adc6a07b73928a33412a21e8ee612867bb42c2c6924403aef6028b7df98" }, "downloads": -1, "filename": "drifter_ml-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0c3e2e3a4eda008bb41ba6e68083ed3f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11180, "upload_time": "2019-03-20T15:54:41", "url": "https://files.pythonhosted.org/packages/fa/84/791a41d941b12348b91d3793906facdded6c4fa6c825f71efae8039f53ad/drifter_ml-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4b6a7a6ae3f4e0d1aa148fe565e5033", "sha256": "0fe4f375d07a0dd5cff68d77481da52ffe3d933572ba47f88039b11485cc05d3" }, "downloads": -1, "filename": "drifter_ml-0.6.tar.gz", "has_sig": false, "md5_digest": "e4b6a7a6ae3f4e0d1aa148fe565e5033", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77192, "upload_time": "2019-03-20T15:54:42", "url": "https://files.pythonhosted.org/packages/5f/65/1e46e142095fe3d9d290e7360ec064a5de3294a0c03f7e0d40b86db7958d/drifter_ml-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "2c099c77b78cdbe14c561f15025673ed", "sha256": "5a06409ff80e496cddbeaf46ae7f381b282b2b8d5d4465e4426296e0a552e797" }, "downloads": -1, "filename": "drifter_ml-0.7-py3.6.egg", "has_sig": false, "md5_digest": "2c099c77b78cdbe14c561f15025673ed", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 23607, "upload_time": "2019-03-26T00:43:51", "url": "https://files.pythonhosted.org/packages/6d/95/c8b2276dba8612f29684e787ed17831775a5d3e7d5b46c9dfcbd97fd6539/drifter_ml-0.7-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "22786557713bf32378bc09854ed93c6f", "sha256": "1b710a8ceba1d4db6bf8e02a3423c4bdad88bce77497bebb0e615def461adbdc" }, "downloads": -1, "filename": "drifter_ml-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "22786557713bf32378bc09854ed93c6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10999, "upload_time": "2019-03-26T00:43:49", "url": "https://files.pythonhosted.org/packages/83/fb/e7b930a2e966ed0f3fdf46351d9eeae2aaa482c9a351493cddcea953b4d0/drifter_ml-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ad38f4c414986ac0c66b76fbc2e47b0", "sha256": "f64c9d8a0e83226cf8731885085d3ad042d6360d9d44c513ec0a68186c524587" }, "downloads": -1, "filename": "drifter_ml-0.7.tar.gz", "has_sig": false, "md5_digest": "4ad38f4c414986ac0c66b76fbc2e47b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9645, "upload_time": "2019-03-26T00:43:52", "url": "https://files.pythonhosted.org/packages/24/39/5b6593fba5f7a79517727f8dadec92c5c6777092a659a9985b110670b7ef/drifter_ml-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "ceba469f5075a7024e61ec588da9af11", "sha256": "64885abfdff799e023ea60a87e4ce94914e9a8daed56179c195d0f7d92b4da6b" }, "downloads": -1, "filename": "drifter_ml-0.8-py3.6.egg", "has_sig": false, "md5_digest": "ceba469f5075a7024e61ec588da9af11", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 23867, "upload_time": "2019-03-26T14:15:51", "url": "https://files.pythonhosted.org/packages/3a/d9/29b988f9f5e88c8764c0d14524016f5e07fac1c7694699d734986aedbc40/drifter_ml-0.8-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "3e0cf66b43c2ab6c50d93ef6905d017e", "sha256": "d4867017045aa6c2ddc4f833bbe89ad9ea909d4389753a605e2ed6580c69e1a5" }, "downloads": -1, "filename": "drifter_ml-0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "3e0cf66b43c2ab6c50d93ef6905d017e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11207, "upload_time": "2019-03-26T14:15:50", "url": "https://files.pythonhosted.org/packages/8d/17/fcfff91d996d06d2622e52824d7674280b171d7937ab5abc2207c85a5126/drifter_ml-0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "961a6ee7f5f1e9847a932f5dd6f7d642", "sha256": "0cb76a1269cab2f60277bef91f9bc45cdda0a52de4d18c3051a10c5904d14ef8" }, "downloads": -1, "filename": "drifter_ml-0.8.tar.gz", "has_sig": false, "md5_digest": "961a6ee7f5f1e9847a932f5dd6f7d642", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9993, "upload_time": "2019-03-26T14:15:53", "url": "https://files.pythonhosted.org/packages/01/2d/abf94af04d174af3d0f6571ab78a885583fdf60fc19b26c14745670fd450/drifter_ml-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "6edbea6119d2acfa7a4f7bdcd24ad965", "sha256": "2ca8dbc4f3240d79f1fde1385960eb6611e604303ac7e7a921fd789e12f496f1" }, "downloads": -1, "filename": "drifter_ml-0.9-py3.6.egg", "has_sig": false, "md5_digest": "6edbea6119d2acfa7a4f7bdcd24ad965", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 24580, "upload_time": "2019-03-26T21:15:10", "url": "https://files.pythonhosted.org/packages/37/26/14c2b3f6de063cb38922d53b71a501aff1fb93ba3bbbea1b9b5a18544422/drifter_ml-0.9-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "9798a43508dba93fe4e3dbb6913a742d", "sha256": "0a663ad02eab1f5ee9d4aa735349bd5194701e9f27fa1a70ab119a593208d3ee" }, "downloads": -1, "filename": "drifter_ml-0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9798a43508dba93fe4e3dbb6913a742d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11461, "upload_time": "2019-03-26T21:15:09", "url": "https://files.pythonhosted.org/packages/7c/bc/a8020bae0bc88fa88a5dc2bc305fadda774b49ccb1f0a6026a102c1b5231/drifter_ml-0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a3b8b6c46d2d8eff5d6d9d3c261d690", "sha256": "e809aaea682c67c51cabe133eb5aa3cd3ef7e513e45dd9dbf1aaabc1c517a175" }, "downloads": -1, "filename": "drifter_ml-0.9.tar.gz", "has_sig": false, "md5_digest": "5a3b8b6c46d2d8eff5d6d9d3c261d690", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10263, "upload_time": "2019-03-26T21:15:11", "url": "https://files.pythonhosted.org/packages/c0/db/c04ebb45877211597a17ad6c4f7482ccfd7bffed3a56a0f7684ce3dc97df/drifter_ml-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cde5c3daf1a1a344640f5b3cb1761190", "sha256": "65ba7da97cbcc5c0e660c337b26ed468156668d59e473ce69967a77eed9775ee" }, "downloads": -1, "filename": "drifter_ml-0.22-py3-none-any.whl", "has_sig": false, "md5_digest": "cde5c3daf1a1a344640f5b3cb1761190", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18880, "upload_time": "2019-08-21T12:33:51", "url": "https://files.pythonhosted.org/packages/d2/63/94ddedba7fc757d468a251915c0ce33dd7869991bae50875ad62c8113a8b/drifter_ml-0.22-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c0c27840cdd492958ece02e791cae29", "sha256": "ca11524c27ff7d047c19273e6d1c1bf48b03e7e9eea4154c3804fd9e3b1a9993" }, "downloads": -1, "filename": "drifter_ml-0.22.tar.gz", "has_sig": false, "md5_digest": "4c0c27840cdd492958ece02e791cae29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15827, "upload_time": "2019-08-21T12:33:53", "url": "https://files.pythonhosted.org/packages/ae/cd/3ccd76ca90c9ecadc14e1b3cb72f198eaef7820d3a56ac499a46d491bb89/drifter_ml-0.22.tar.gz" } ] }