{ "info": { "author": "source{d}", "author_email": "machine-learning@sourced.tech", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries" ], "description": "# MLonCode research playground [![PyPI](https://img.shields.io/pypi/v/sourced-ml.svg)](https://pypi.python.org/pypi/sourced-ml) [![Build Status](https://travis-ci.org/src-d/ml.svg)](https://travis-ci.org/src-d/ml) [![Docker Build Status](https://img.shields.io/docker/build/srcd/ml.svg)](https://hub.docker.com/r/srcd/ml) [![codecov](https://codecov.io/github/src-d/ml/coverage.svg)](https://codecov.io/gh/src-d/ml)\n\nThis project is the foundation for [MLonCode](https://github.com/src-d/awesome-machine-learning-on-source-code) research and development. It abstracts feature extraction and training models, thus allowing to focus on the higher level tasks.\n\nCurrently, the following models are implemented:\n\n* BOW - weighted bag of x, where x is many different extracted feature types.\n* id2vec, source code identifier embeddings.\n* docfreq, feature document frequencies \\(part of TF-IDF\\).\n* topic modeling over source code identifiers.\n\nIt is written in Python3 and has been tested on Linux and macOS. source{d} ml is tightly coupled with [source{d} engine](https://engine.sourced.tech) and delegates all the feature extraction parallelization to it.\n\nHere is the list of proof-of-concept projects which are built using sourced.ml:\n\n* [vecino](https://github.com/src-d/vecino) - finding similar repositories.\n* [tmsc](https://github.com/src-d/tmsc) - listing topics of a repository.\n* [snippet-ranger](https://github.com/src-d/snippet-ranger) - topic modeling of source code snippets.\n* [apollo](https://github.com/src-d/apollo) - source code deduplication at scale.\n\n## Installation\n\nWhether you wish to include Spark in your installation or would rather use an existing\ninstallation, to use `sourced-ml` you will need to have some native libraries installed,\ne.g. on Ubuntu you must first run: `apt install libxml2-dev libsnappy-dev`. [Tensorflow](https://tensorflow.org)\nis also a requirement - we support both the CPU and GPU version. \nIn order to select which version you want, modify the package name in the next section\nto either `sourced-ml[tf]` or `sourced-ml[tf-gpu]` depending on your choice.\n**If you don't, neither version will be installed.**\n\n### With Apache Spark included\n\n```text\npip3 install sourced-ml\n```\n\n### Use existing Apache Spark\n\nIf you already have Apache Spark installed and configured on your environment at `$APACHE_SPARK` you can re-use it and avoid downloading 200Mb through [pip \"editable installs\"](https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs) by\n\n```text\npip3 install -e \"$SPARK_HOME/python\"\npip3 install sourced-ml\n```\n\nIn both cases, you will need to have some native libraries installed. E.g., \non Ubuntu `apt install libxml2-dev libsnappy-dev`. Some parts require [Tensorflow](https://tensorflow.org).\n\n## Usage\n\nThis project exposes two interfaces: API and command line. The command line is\n\n```text\nsrcml --help\n```\n\n## Docker image\n\n```text\ndocker run -it --rm srcd/ml --help\n```\n\nIf this first command fails with\n\n```text\nCannot connect to the Docker daemon. Is the docker daemon running on this host?\n```\n\nAnd you are sure that the daemon is running, then you need to add your user to `docker` group: refer to the [documentation](https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage-docker-as-a-non-root-user).\n\n## Contributions\n\n...are welcome! See [CONTRIBUTING](contributing.md) and [CODE\\_OF\\_CONDUCT.md](code_of_conduct.md).\n\n## License\n\n[Apache 2.0](license.md)\n\n## Algorithms\n\n#### Identifier embeddings\n\nWe build the source code identifier co-occurrence matrix for every repository.\n\n1. Read Git repositories.\n2. Classify files using [enry](https://github.com/src-d/enry).\n3. Extract [UAST](https://doc.bblf.sh/uast/specification.html) from each supported file.\n4. [Split and stem](https://github.com/src-d/ml/tree/d1f13d079f57caa6338bb7eb8acb9062e011eda9/sourced/ml/algorithms/token_parser.py) all the identifiers in each tree.\n5. [Traverse UAST](https://github.com/src-d/ml/tree/d1f13d079f57caa6338bb7eb8acb9062e011eda9/sourced/ml/transformers/coocc.py), collapse all non-identifier paths and record all\n\n identifiers on the same level as co-occurring. Besides, connect them with their immediate parents.\n\n6. Write the global co-occurrence matrix.\n7. Train the embeddings using [Swivel](https://github.com/src-d/ml/tree/d1f13d079f57caa6338bb7eb8acb9062e011eda9/sourced/ml/algorithms/swivel.py) \\(requires Tensorflow\\). Interactively view\n\n the intermediate results in Tensorboard using `--logs`.\n\n8. Write the identifier embeddings model.\n\n1-5 is performed with `repos2coocc` command, 6 with `id2vec_preproc`, 7 with `id2vec_train`, 8 with `id2vec_postproc`.\n\n#### Weighted Bag of X\n\nWe represent every repository as a weighted bag-of-vectors, provided by we've got document frequencies \\(\"docfreq\"\\) and identifier embeddings \\(\"id2vec\"\\).\n\n1. Clone or read the repository from disk.\n2. Classify files using [enry](https://github.com/src-d/enry).\n3. Extract [UAST](https://doc.bblf.sh/uast/specification.html) from each supported file.\n4. Extract various features from each tree, e.g. identifiers, literals or node2vec-like structural fingerprints.\n5. Group by repository, file or function.\n6. Set the weight of each such feature according to TF-IDF.\n7. Write the BOW model.\n\n1-7 are performed with `repos2bow` command.\n\n#### Topic modeling\n\nSee [here](doc/topic_modeling.md).\n\n## Glossary\n\nSee [here](GLOSSARY.md).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/src-d/ml", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/src-d/ml", "keywords": "machine learning on source code,word2vec,id2vec,github,swivel,bow,bblfsh,babelfish", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "sourced-ml", "package_url": "https://pypi.org/project/sourced-ml/", "platform": "", "project_url": "https://pypi.org/project/sourced-ml/", "project_urls": { "Download": "https://github.com/src-d/ml", "Homepage": "https://github.com/src-d/ml" }, "release_url": "https://pypi.org/project/sourced-ml/0.8.2/", "requires_dist": [ "PyStemmer (<2.0,>=1.3)", "bblfsh (<3.0,>=2.2.1)", "modelforge (<0.12,>=0.11.1)", "sourced-jgit-spark-connector (<2.1.0,>=2.0.1)", "humanize (<0.6,>=0.5.0)", "parquet (<2.0,>=1.2)", "pygments (<3.0,>=2.2.0)", "keras (<3.0,>=2.0)", "scikit-learn (<1.0,>=0.19)", "tqdm (<5.0,>=4.20)", "typing ; python_version < \"3.5\"", "pandas (<1.0,>=0.24.1) ; extra == 'pandas'", "tensorflow (<2.0,>=1.0) ; extra == 'tf'", "tensorflow-gpu (<2.0,>=1.0) ; extra == 'tf_gpu'" ], "requires_python": ">=3.4", "summary": "Framework for machine learning on source code. Provides API and tools to train and use models based on source code features extracted from Babelfish's UASTs.", "version": "0.8.2" }, "last_serial": 4846236, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "edcc4293b675fb09087f998da1db855e", "sha256": "ebd61a10576728aa337a9f0d8ba648e75377fd8cd7b31a2e7d2a9c35f03cd956" }, "downloads": -1, "filename": "sourced-ml-0.4.0.tar.gz", "has_sig": false, "md5_digest": "edcc4293b675fb09087f998da1db855e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44777, "upload_time": "2018-02-26T14:59:46", "url": "https://files.pythonhosted.org/packages/17/c9/2407fb5c5d4b673add7a7efe7addd9f7c8ba25c34119854a0f03cae6ee6f/sourced-ml-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "adeba46e0ed2de1e3af3e68da67d7e6e", "sha256": "9f671e1d06a12e835578972eeaabcb32ee1fb85cc6369129e25c45ccf90fe384" }, "downloads": -1, "filename": "sourced-ml-0.4.1.tar.gz", "has_sig": false, "md5_digest": "adeba46e0ed2de1e3af3e68da67d7e6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44798, "upload_time": "2018-02-26T15:05:30", "url": "https://files.pythonhosted.org/packages/c4/aa/5f286ca5e51d91721ca0021043f6d5c2fd5f3c25a33263bb5c1fc8f04952/sourced-ml-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "0663fa030a8d82694e693badb4bcf66f", "sha256": "782ff988ac61253dc123a0ab4404b5aee66e36ac9b4e2e880d10cacbfbfdb182" }, "downloads": -1, "filename": "sourced-ml-0.4.2.tar.gz", "has_sig": false, "md5_digest": "0663fa030a8d82694e693badb4bcf66f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44822, "upload_time": "2018-02-26T15:10:38", "url": "https://files.pythonhosted.org/packages/ef/79/87040f2336903c83602a61e8be21e59a70d269e6f4490e27167093ac95c7/sourced-ml-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "270e02308fc6ca2a60a8bc078072ab5c", "sha256": "ecb0cccf6ed1036296380738901251a0ebda4a911655f94d46ba74af2857e5f4" }, "downloads": -1, "filename": "sourced-ml-0.4.3.tar.gz", "has_sig": false, "md5_digest": "270e02308fc6ca2a60a8bc078072ab5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44822, "upload_time": "2018-02-26T15:14:48", "url": "https://files.pythonhosted.org/packages/f9/62/3dd3feda56192f803299cda621e537eef54622420a5005d57fcde3a1b802/sourced-ml-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "f5e16be948bb188b6487b2b5aa3f549a", "sha256": "ebea22e1d1e49e3ccae87e239d308235719325e6ffa312c631ee23c210ae1f85" }, "downloads": -1, "filename": "sourced-ml-0.4.4.tar.gz", "has_sig": false, "md5_digest": "f5e16be948bb188b6487b2b5aa3f549a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44744, "upload_time": "2018-02-26T15:37:49", "url": "https://files.pythonhosted.org/packages/12/b3/778e11e74927d4470c4d736db0e343541f559562479fdd95abd366fa1e5d/sourced-ml-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "cd206ba1459cd38e913caeeac372b4c2", "sha256": "b01b0f8c70128be8b1a62943001f1b530fe0a1f384b8af4177bbd692c423dee3" }, "downloads": -1, "filename": "sourced_ml-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "cd206ba1459cd38e913caeeac372b4c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 85464, "upload_time": "2018-03-20T18:04:58", "url": "https://files.pythonhosted.org/packages/e7/a2/0ca4b5f1de4826ab3c2bdd8c8fb45deac08f119a337cda853150746b297c/sourced_ml-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7a37d35538f2462c539d960650a49eb", "sha256": "5f8175eab72bfd62b02b22d8329041801349fcd7cbda114d3b601e4ef1248711" }, "downloads": -1, "filename": "sourced-ml-0.4.5.tar.gz", "has_sig": false, "md5_digest": "b7a37d35538f2462c539d960650a49eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65175, "upload_time": "2018-03-20T17:14:36", "url": "https://files.pythonhosted.org/packages/6e/01/abdd202bc600cbe8a576a92845ce3f4d6c44a9703e321ba26008439d8d61/sourced-ml-0.4.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c799de9a5761924f8d8a86c0765ce07a", "sha256": "ca59ae44e366c8e99b6c97e45d7b21096560cffa8dc73d03da80b2602a435b30" }, "downloads": -1, "filename": "sourced_ml-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c799de9a5761924f8d8a86c0765ce07a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 107576, "upload_time": "2018-06-18T17:01:21", "url": "https://files.pythonhosted.org/packages/19/5a/03249962da06ef5419c14f1ad7113fade799fcd089d5c4aaa773412f9193/sourced_ml-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc925497f92b0fde3d6de086fb3bed99", "sha256": "c9a2acfc1d7bb6bc05e81000012d66c1c73579ea0dcc8d25b3cf5b6047c56270" }, "downloads": -1, "filename": "sourced-ml-0.5.0.tar.gz", "has_sig": false, "md5_digest": "cc925497f92b0fde3d6de086fb3bed99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75806, "upload_time": "2018-06-18T16:46:55", "url": "https://files.pythonhosted.org/packages/e7/c8/43321ea3cf11f6927694d0971795faac9c33f497a363da99c7eac1436db6/sourced-ml-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c623699eccbd625ffb4c38e03c0c50de", "sha256": "0ec57ba7245de001d8aa4dac8a164e23419440cdf4b1fddb35a8811eaa2b27d3" }, "downloads": -1, "filename": "sourced_ml-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c623699eccbd625ffb4c38e03c0c50de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116746, "upload_time": "2018-07-17T22:33:44", "url": "https://files.pythonhosted.org/packages/c3/ee/be165a9a6413b0445d4bf16fb61e5832751627c69f4a7a893619b5428164/sourced_ml-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8315854a87fc3d5bbfaf7a137624d4e7", "sha256": "1f6db942536c086589a27c30e5afc76713b446df7ba25b904c13ff7302b14b5e" }, "downloads": -1, "filename": "sourced-ml-0.5.1.tar.gz", "has_sig": false, "md5_digest": "8315854a87fc3d5bbfaf7a137624d4e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82750, "upload_time": "2018-07-17T22:01:14", "url": "https://files.pythonhosted.org/packages/2a/3e/b26c00d36c1d822d51aac76305052e03652be571e32c7ae3440ac1f1f27d/sourced-ml-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "cb905fd1f088cfdd081876947503af21", "sha256": "60e88500c9e0d2a881ee91a40a2fdd4100fbe6fb9d3ee8e3348dec8d34c56a0a" }, "downloads": -1, "filename": "sourced_ml-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cb905fd1f088cfdd081876947503af21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 121888, "upload_time": "2018-08-30T20:45:17", "url": "https://files.pythonhosted.org/packages/10/8b/b049333596dc3f9f9287474812cd86f0f424663eca16d7928f86b4aeaee6/sourced_ml-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0383ab71889db8dfc7735915ad35eb54", "sha256": "82dc6af2ef315ce7f054255762f7883000b1ee1e81f351b7d54118778fc709c9" }, "downloads": -1, "filename": "sourced-ml-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0383ab71889db8dfc7735915ad35eb54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87050, "upload_time": "2018-08-30T20:21:47", "url": "https://files.pythonhosted.org/packages/ae/cd/2401d05bae105582624cf38f9c26a8f9c310c787d23e79ec972a89cefa6a/sourced-ml-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "2e18619201efd0c9d6f35330daa70988", "sha256": "0426484e6ed7666787d7293c3164120e90d2b68e0baa7a2ac1048db9ea7a0c38" }, "downloads": -1, "filename": "sourced_ml-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2e18619201efd0c9d6f35330daa70988", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 122076, "upload_time": "2018-08-31T13:48:05", "url": "https://files.pythonhosted.org/packages/f6/17/55175350372d9727f4af806720fe5cbbd36b8985a662b957255111378a43/sourced_ml-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fb1452c1801bc1bfb6ab7cb2c5411a5", "sha256": "1c4f4a8a13eb552cd96a7de51db7fba01d577d965d380caee0c53361cbbb0405" }, "downloads": -1, "filename": "sourced-ml-0.6.1.tar.gz", "has_sig": false, "md5_digest": "8fb1452c1801bc1bfb6ab7cb2c5411a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87239, "upload_time": "2018-08-31T13:24:41", "url": "https://files.pythonhosted.org/packages/2b/c3/f62dfeb1b7927defc77f10a8d964322b987bf68b5b0d78f8204164dd7276/sourced-ml-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "8f53505bc4b07e96dbccba5091bd216c", "sha256": "7730a7b09056d4458af86deb491838349153af41ab909c4213c4adbcc4355e89" }, "downloads": -1, "filename": "sourced_ml-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8f53505bc4b07e96dbccba5091bd216c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 122044, "upload_time": "2018-09-22T07:33:06", "url": "https://files.pythonhosted.org/packages/31/cc/548c595822a8613ca4b2cd27b96766049b09fdd17e8c418050aa9572082c/sourced_ml-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3fbca3c355aa1cc4605000f97a24803b", "sha256": "902494e1b4eae65f0bb83347f9ccdaa9f1bfd08ae0870baae104ea259f991634" }, "downloads": -1, "filename": "sourced-ml-0.6.2.tar.gz", "has_sig": false, "md5_digest": "3fbca3c355aa1cc4605000f97a24803b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87227, "upload_time": "2018-09-22T06:58:50", "url": "https://files.pythonhosted.org/packages/6c/d3/4d94a3964a1e23f22ea7806d73f6721c87ae9fdcb24e5e5339895f1c54e9/sourced-ml-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "022ad147837faccbba177012ee6dad63", "sha256": "657b0a123a74925d53746680758be3eaf2e5d920bf3551987faffa6c07a61fc0" }, "downloads": -1, "filename": "sourced_ml-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "022ad147837faccbba177012ee6dad63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 121796, "upload_time": "2018-09-22T08:45:31", "url": "https://files.pythonhosted.org/packages/e8/b5/18ceedee2a7bd45848d7053c02bfedccdfdaa30fa61d204e91c956614028/sourced_ml-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8bc8a8df0e212eba35a77215fb53718d", "sha256": "4c8514b4f1cd0eedb8a4e891007f37575649262be9913f722ec8709e68ad3fcd" }, "downloads": -1, "filename": "sourced-ml-0.6.3.tar.gz", "has_sig": false, "md5_digest": "8bc8a8df0e212eba35a77215fb53718d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87174, "upload_time": "2018-09-22T08:21:06", "url": "https://files.pythonhosted.org/packages/88/16/4aee5f5de6c0002eeaa26f130e88d40db17b1a80c49b01168b0d4b007f22/sourced-ml-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "5980e46bc9c94694e9e4b3e28c34b472", "sha256": "0b0e308cb201bd5716571ced3046cc65edc90dbc951712ff6a9874a69fa34b7b" }, "downloads": -1, "filename": "sourced_ml-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5980e46bc9c94694e9e4b3e28c34b472", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 122578, "upload_time": "2018-10-31T14:35:19", "url": "https://files.pythonhosted.org/packages/e2/73/337463402bc6aef34de8b9b7d9a00840cbd8ae38009d4a5ee7b41038767c/sourced_ml-0.6.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3304c71ebb923b666a5b576687fa53cc", "sha256": "b068d5b74ca52468480c61f834825d93143b2758d3cf49285e4d332e22a7d32b" }, "downloads": -1, "filename": "sourced-ml-0.6.4.tar.gz", "has_sig": false, "md5_digest": "3304c71ebb923b666a5b576687fa53cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89784, "upload_time": "2018-10-31T14:12:35", "url": "https://files.pythonhosted.org/packages/4b/34/318852feec706614dc54edb16d38acc7b878063fbf3512062065daf8f40d/sourced-ml-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "72a2580bff2557c87823c411cb54371d", "sha256": "c74b1e45833f1b303af120507981cb4efd50ff5c9fd2a23f268840ece9b7848d" }, "downloads": -1, "filename": "sourced_ml-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "72a2580bff2557c87823c411cb54371d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 122579, "upload_time": "2018-11-15T16:27:53", "url": "https://files.pythonhosted.org/packages/aa/0b/818cfe3a2049b764a5297354d9cb3584f06f1461d0ed871dfeeb36c29039/sourced_ml-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d5bfef223b334a29bccf5967971460f", "sha256": "d3b52559a20ff7738e9175dfd8461bede813b18e0a9e8e922e6cefbbe3e933e8" }, "downloads": -1, "filename": "sourced-ml-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6d5bfef223b334a29bccf5967971460f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89839, "upload_time": "2018-11-15T16:02:49", "url": "https://files.pythonhosted.org/packages/d7/7d/2a3ac9c4911a5ae472fecefd9ee1cce64163816da72b9fe01ac4096c4e0e/sourced-ml-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "275dbebe21ab1e72430664cd87f37ec7", "sha256": "66bd087a10463b7a4c9ad921d8896e14986b8c55fc275c2645f225711f09a3e3" }, "downloads": -1, "filename": "sourced_ml-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "275dbebe21ab1e72430664cd87f37ec7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 122711, "upload_time": "2018-11-24T22:54:25", "url": "https://files.pythonhosted.org/packages/2e/82/fc52509ca58550cc64f90ce1ab3f79a6fe368775782a0df441320f0f6b33/sourced_ml-0.7.1-py3-none-any.whl" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "a2920671eb107b7361d0d8cf8f2f956f", "sha256": "90e6e0368f49d79cccece67437ae402125dbb52b2569d8508aad064ae91a1456" }, "downloads": -1, "filename": "sourced_ml-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a2920671eb107b7361d0d8cf8f2f956f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 122711, "upload_time": "2018-12-10T16:39:32", "url": "https://files.pythonhosted.org/packages/d9/0c/7ba8febbe92280349136e22c94bf50f266d61dd89fe5afbc24bd820a4e1a/sourced_ml-0.7.2-py3-none-any.whl" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "e61ee970a5b9f072fa14b81bbf06c0fe", "sha256": "8f87fad3915ca3cb55479a246001cc2cdb00dbbd7fd8f9d1748b4b7d3c29b1aa" }, "downloads": -1, "filename": "sourced_ml-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e61ee970a5b9f072fa14b81bbf06c0fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 126308, "upload_time": "2019-02-15T09:50:38", "url": "https://files.pythonhosted.org/packages/06/a5/2ae7ea15f1424f6a45ade8379dcce8a6596b5547389eecfa45265ba18e03/sourced_ml-0.8.0-py3-none-any.whl" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "f2a673efe30fbaa8155a9009856bc08d", "sha256": "a5cdd9a0b354d1b9af0cf47e08e01dd317a69cf0312007f35b62efd192f17ef0" }, "downloads": -1, "filename": "sourced_ml-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f2a673efe30fbaa8155a9009856bc08d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 126307, "upload_time": "2019-02-20T11:52:40", "url": "https://files.pythonhosted.org/packages/a4/e9/20ecf82a75c58c36706c7c8798a11e9d5047cd42a4f5b2a419b437af2d59/sourced_ml-0.8.1-py3-none-any.whl" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "f84a9e3a395fb3c1f851d99bfdf02296", "sha256": "b7bd804e2ff74d44892f80fa3e610ae4ea511572c2e6cd521de3903623671e54" }, "downloads": -1, "filename": "sourced_ml-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f84a9e3a395fb3c1f851d99bfdf02296", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 126306, "upload_time": "2019-02-20T15:50:08", "url": "https://files.pythonhosted.org/packages/27/7c/dc8e262dd2be9da372f08081db698598a2e2ae3989984608c11595057fa0/sourced_ml-0.8.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f84a9e3a395fb3c1f851d99bfdf02296", "sha256": "b7bd804e2ff74d44892f80fa3e610ae4ea511572c2e6cd521de3903623671e54" }, "downloads": -1, "filename": "sourced_ml-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f84a9e3a395fb3c1f851d99bfdf02296", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 126306, "upload_time": "2019-02-20T15:50:08", "url": "https://files.pythonhosted.org/packages/27/7c/dc8e262dd2be9da372f08081db698598a2e2ae3989984608c11595057fa0/sourced_ml-0.8.2-py3-none-any.whl" } ] }