{ "info": { "author": "MIT Data To AI Lab", "author_email": "dailabmit@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "

\n\u201cMLBlocksr\u201d\nAn open source project from Data to AI Lab at MIT.\n

\n\n

\n\u201cMLBlocks\u201d\n

\n\n

\nPipelines and Primitives for Machine Learning and Data Science.\n

\n\n[![PyPi](https://img.shields.io/pypi/v/mlblocks.svg)](https://pypi.python.org/pypi/mlblocks)\n[![Travis](https://travis-ci.org/HDI-Project/MLBlocks.svg?branch=master)](https://travis-ci.org/HDI-Project/MLBlocks)\n[![CodeCov](https://codecov.io/gh/HDI-Project/MLBlocks/branch/master/graph/badge.svg)](https://codecov.io/gh/HDI-Project/MLBlocks)\n[![Downloads](https://pepy.tech/badge/mlblocks)](https://pepy.tech/project/mlblocks)\n\n* Free software: MIT license\n* Documentation: https://HDI-Project.github.io/MLBlocks\n- Homepage: https://github.com/HDI-Project/MLBlocks\n\n# MLBlocks\n\nMLBlocks is a simple framework for composing end-to-end tunable Machine Learning Pipelines by\nseamlessly combining tools from any python library with a simple, common and uniform interface.\n\nFeatures include:\n\n* Build Machine Learning Pipelines combining **any Machine Learning Library in Python**.\n* Access a repository with hundreds of primitives and pipelines ready to be used with little to\n no python code to write, carefully curated by Machine Learning and Domain experts.\n* Extract machine-readable information about which hyperparameters can be tuned and within\n which ranges, allowing automated integration with Hyperparameter Optimization tools like\n [BTB](https://github.com/HDI-Project/BTB).\n* Complex multi-branch pipelines and DAG configurations, with unlimited number of inputs and\n outputs per primitive.\n* Easy save and load Pipelines using JSON Annotations.\n\n# Install\n\n## Requirements\n\n**MLBlocks** has been developed and tested on [Python 3.5 and 3.6](https://www.python.org/downloads/)\n\nAlso, although it is not strictly required, the usage of a\n[virtualenv](https://virtualenv.pypa.io/en/latest/) is highly recommended in order to avoid\ninterfering with other software installed in the system where **MLBlocks** is run.\n\nThese are the minimum commands needed to create a virtualenv using python3.6 for **MLBlocks**:\n\n```bash\npip install virtualenv\nvirtualenv -p $(which python3.6) mlblocks-venv\n```\n\nAfterwards, you have to execute this command to have the virtualenv activated:\n\n```bash\nsource mlblocks-venv/bin/activate\n```\n\nRemember about executing it every time you start a new console to work on **MLBlocks**!\n\n## Install with pip\n\nAfter creating the virtualenv and activating it, we recommend using\n[pip](https://pip.pypa.io/en/stable/) in order to install **MLBlocks**:\n\n```bash\npip install mlblocks\n```\n\nThis will pull and install the latest stable release from [PyPi](https://pypi.org/).\n\n## Install from source\n\nAlternatively, with your virtualenv activated, you can clone the repository and install it from\nsource by running `make install` on the `stable` branch:\n\n```bash\ngit clone git@github.com:HDI-Project/MLBlocks.git\ncd MLBlocks\ngit checkout stable\nmake install\n```\n\n## Install for Development\n\nIf you want to contribute to the project, a few more steps are required to make the project ready\nfor development.\n\nFirst, please head to [the GitHub page of the project](https://github.com/HDI-Project/MLBlocks)\nand make a fork of the project under you own username by clicking on the **fork** button on the\nupper right corner of the page.\n\nAfterwards, clone your fork and create a branch from master with a descriptive name that includes\nthe number of the issue that you are going to work on:\n\n```bash\ngit clone git@github.com:{your username}/MLBlocks.git\ncd MLBlocks\ngit branch issue-xx-cool-new-feature master\ngit checkout issue-xx-cool-new-feature\n```\n\nFinally, install the project with the following command, which will install some additional\ndependencies for code linting and testing.\n\n```bash\nmake install-develop\n```\n\nMake sure to use them regularly while developing by running the commands `make lint` and `make test`.\n\n\n## MLPrimitives\n\nIn order to be usable, MLBlocks requires a compatible primitives library.\n\nThe official library, required in order to follow the following MLBlocks tutorial,\nis [MLPrimitives](https://github.com/HDI-Project/MLPrimitives), which you can install\nwith this command:\n\n```bash\npip install mlprimitives\n```\n\n# Quickstart\n\nBelow there is a short example about how to use MLBlocks to create a simple pipeline, fit it\nusing demo data and use it to make predictions.\n\nPlease make sure to also having installed [MLPrimitives](https://github.com/HDI-Project/MLPrimitives)\nbefore following it.\n\nFor advance usage and more detailed explanation about each component, please have a look\nat the [documentation](https://HDI-Project.github.io/MLBlocks)\n\n## Creating a pipeline\n\nWith MLBlocks, creating a pipeline is as simple as specifying a list of primitives and passing\nthem to the `MLPipeline` class.\n\n```python\n>>> from mlblocks import MLPipeline\n... primitives = [\n... 'cv2.GaussianBlur',\n... 'skimage.feature.hog',\n... 'sklearn.ensemble.RandomForestClassifier'\n... ]\n>>> pipeline = MLPipeline(primitives)\n```\n\nOptionally, specific initialization arguments can be also set by specifying them in a dictionary:\n\n```python\n>>> init_params = {\n... 'skimage.feature.hog': {\n... 'multichannel': True,\n... 'visualize': False\n... },\n... 'sklearn.ensemble.RandomForestClassifier': {\n... 'n_estimators': 100,\n... }\n... }\n>>> pipeline = MLPipeline(primitives, init_params=init_params)\n```\n\nIf you can see which hyperparameters a particular pipeline is using, you can do so by calling\nits `get_hyperparameters` method:\n\n```python\n>>> import json\n>>> hyperparameters = pipeline.get_hyperparameters()\n>>> print(json.dumps(hyperparameters, indent=4))\n{\n \"cv2.GaussianBlur#1\": {\n \"ksize_width\": 3,\n \"ksize_height\": 3,\n \"sigma_x\": 0,\n \"sigma_y\": 0\n },\n \"skimage.feature.hog#1\": {\n \"multichannel\": true,\n \"visualize\": false,\n \"orientations\": 9,\n \"pixels_per_cell_x\": 8,\n \"pixels_per_cell_y\": 8,\n \"cells_per_block_x\": 3,\n \"cells_per_block_y\": 3,\n \"block_norm\": null\n },\n \"sklearn.ensemble.RandomForestClassifier#1\": {\n \"n_jobs\": -1,\n \"n_estimators\": 100,\n \"criterion\": \"entropy\",\n \"max_features\": null,\n \"max_depth\": 10,\n \"min_samples_split\": 0.1,\n \"min_samples_leaf\": 0.1,\n \"class_weight\": null\n }\n}\n```\n\n## Making predictions\n\nOnce we have created the pipeline with the desired hyperparameters we can fit it\nand then use it to make predictions on new data.\n\nTo do this, we first call the `fit` method passing the training data and the corresponding labels.\n\nIn this case in particular, we will be loading the handwritten digit classification dataset\nfrom USPS using the `mlblocks.datasets.load_usps` method, which returns a dataset object\nready to be played with.\n\n```python\n>>> from mlblocks.datasets import load_usps\n>>> dataset = load_usps()\n>>> X_train, X_test, y_train, y_test = dataset.get_splits(1)\n>>> pipeline.fit(X_train, y_train)\n```\n\nOnce we have fitted our model to our data, we can call the `predict` method passing new data\nto obtain predictions from the pipeline.\n\n```python\n>>> predictions = pipeline.predict(X_test)\n>>> predictions\narray([3, 2, 1, ..., 1, 1, 2])\n```\n\n# What's Next?\n\nIf you want to learn more about how to tune the pipeline hyperparameters, save and load\nthe pipelines using JSON annotations or build complex multi-branched pipelines, please\ncheck our [documentation](https://HDI-Project.github.io/MLBlocks).\n\n# History\n\nIn its first iteration in 2015, MLBlocks was designed for only multi table, multi entity temporal\ndata. A good reference to see our design rationale at that time is Bryan Collazo\u2019s thesis:\n* [Machine learning blocks](https://dai.lids.mit.edu/wp-content/uploads/2018/06/Mlblocks_Bryan.pdf).\n Bryan Collazo. Masters thesis, MIT EECS, 2015.\n\nWith recent availability of a multitude of libraries and tools, we decided it was time to integrate\nthem and expand the library to address other data types: images, text, graph, time series and\nintegrate with deep learning libraries.\n\n\nChangelog\n=========\n\n0.3.3 - 2019-09-09\n------------------\n\n* Improved intermediate outputs management - [Issue #105](https://github.com/HDI-Project/MLBlocks/issues/105) by @csala\n\n0.3.2 - 2019-08-12\n------------------\n\n* Allow passing fit and produce arguments as `init_params` - [Issue #96](https://github.com/HDI-Project/MLBlocks/issues/96) by @csala\n* Support optional fit and produce args and arg defaults - [Issue #95](https://github.com/HDI-Project/MLBlocks/issues/95) by @csala\n* Isolate primitives from their hyperparameters dictionary - [Issue #94](https://github.com/HDI-Project/MLBlocks/issues/94) by @csala\n* Add functions to explore the available primitives and pipelines - [Issue #90](https://github.com/HDI-Project/MLBlocks/issues/90) by @csala\n* Add primitive caching - [Issue #22](https://github.com/HDI-Project/MLBlocks/issues/22) by @csala\n\n0.3.1 - Pipelines Discovery\n---------------------------\n\n* Support flat hyperparameter dictionaries - [Issue #92](https://github.com/HDI-Project/MLBlocks/issues/92) by @csala\n* Load pipelines by name and register them as `entry_points` - [Issue #88](https://github.com/HDI-Project/MLBlocks/issues/88) by @csala\n* Implement partial re-fit -[Issue #61](https://github.com/HDI-Project/MLBlocks/issues/61) by @csala\n* Move argument parsing to MLBlock - [Issue #86](https://github.com/HDI-Project/MLBlocks/issues/86) by @csala\n* Allow getting intermediate outputs - [Issue #58](https://github.com/HDI-Project/MLBlocks/issues/58) by @csala\n\n0.3.0 - New Primitives Discovery\n--------------------------------\n\n* New primitives discovery system based on `entry_points`.\n* Conditional Hyperparameters filtering in MLBlock initialization.\n* Improved logging and exception reporting.\n\n0.2.4 - New Datasets and Unit Tests\n-----------------------------------\n\n* Add a new multi-table dataset.\n* Add Unit Tests up to 50% coverage.\n* Improve documentation.\n* Fix minor bug in newsgroups dataset.\n\n0.2.3 - Demo Datasets\n---------------------\n\n* Add new methods to Dataset class.\n* Add documentation for the datasets module.\n\n0.2.2 - MLPipeline Load/Save\n----------------------------\n\n* Implement save and load methods for MLPipelines\n* Add more datasets\n\n0.2.1 - New Documentation\n-------------------------\n\n* Add mlblocks.datasets module with demo data download functions.\n* Extensive documentation, including multiple pipeline examples.\n\n0.2.0 - New MLBlocks API\n------------------------\n\nA new MLBlocks API and Primitive format.\n\nThis is a summary of the changes:\n\n* Primitives JSONs and Python code has been moved to a different repository, called MLPrimitives\n* Optional usage of multiple JSON primitive folders.\n* JSON format has been changed to allow more flexibility and features:\n * input and output arguments, as well as argument types, can be specified for each method\n * both classes and function as primitives are supported\n * multitype and conditional hyperparameters fully supported\n * data modalities and primitive classifiers introduced\n * metadata such as documentation, description and author fields added\n* Parsers are removed, and now the MLBlock class is responsible for loading and reading the\n JSON primitive.\n* Multiple blocks of the same primitive are supported within the same pipeline.\n* Arbitrary inputs and outputs for both pipelines and blocks are allowed.\n* Shared variables during pipeline execution, usable by multiple blocks.\n\n0.1.9 - Bugfix Release\n----------------------\n\n* Disable some NetworkX functions for incompatibilities with some types of graphs.\n\n0.1.8 - New primitives and some improvements\n--------------------------------------------\n\n* Improve the NetworkX primitives.\n* Add String Vectorization and Datetime Featurization primitives.\n* Refactor some Keras primitives to work with single dimension `y` arrays and be compatible with `pickle`.\n* Add XGBClassifier and XGBRegressor primitives.\n* Add some `keras.applications` pretrained networks as preprocessing primitives.\n* Add helper class to allow function primitives.\n\n0.1.7 - Nested hyperparams dicts\n--------------------------------\n\n* Support passing hyperparams as nested dicts.\n\n0.1.6 - Text and Graph Pipelines\n--------------------------------\n\n* Add LSTM classifier and regressor primitives.\n* Add OneHotEncoder and MultiLabelEncoder primitives.\n* Add several NetworkX graph featurization primitives.\n* Add `community.best_partition` primitive.\n\n0.1.5 - Collaborative Filtering Pipelines\n-----------------------------------------\n\n* Add LightFM primitive.\n\n0.1.4 - Image pipelines improved\n--------------------------------\n\n* Allow passing `init_params` on `MLPipeline` creation.\n* Fix bug with MLHyperparam types and Keras.\n* Rename `produce_params` as `predict_params`.\n* Add SingleCNN Classifier and Regressor primitives.\n* Simplify and improve Trivial Predictor\n\n0.1.3 - Multi Table pipelines improved\n--------------------------------------\n\n* Improve RandomForest primitive ranges\n* Improve DFS primitive\n* Add Tree Based Feature Selection primitives\n* Fix bugs in TrivialPredictor\n* Improved documentation\n\n0.1.2 - Bugfix release\n----------------------\n\n* Fix bug in TrivialMedianPredictor\n* Fix bug in OneHotLabelEncoder\n\n0.1.1 - Single Table pipelines improved\n---------------------------------------\n\n* New project structure and primitives for integration into MIT-TA2.\n* MIT-TA2 default pipelines and single table pipelines fully working.\n\n0.1.0\n-----\n\n* First release on PyPI.\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/HDI-Project/MLBlocks", "keywords": "auto machine learning classification regression data science pipeline", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "mlblocks", "package_url": "https://pypi.org/project/mlblocks/", "platform": "", "project_url": "https://pypi.org/project/mlblocks/", "project_urls": { "Homepage": "https://github.com/HDI-Project/MLBlocks" }, "release_url": "https://pypi.org/project/mlblocks/0.3.3/", "requires_dist": [ "bumpversion (>=0.5.3) ; extra == 'dev'", "pip (>=9.0.1) ; extra == 'dev'", "watchdog (>=0.8.3) ; extra == 'dev'", "m2r (>=0.2.0) ; extra == 'dev'", "Sphinx (>=1.7.1) ; extra == 'dev'", "sphinx-rtd-theme (>=0.2.4) ; extra == 'dev'", "graphviz (>=0.9) ; extra == 'dev'", "ipython (>=6.5.0) ; extra == 'dev'", "matplotlib (>=2.2.3) ; extra == 'dev'", "autodocsumm (>=0.1.10) ; extra == 'dev'", "docutils (<0.15,>=0.10) ; extra == 'dev'", "flake8 (>=3.5.0) ; extra == 'dev'", "isort (>=4.3.4) ; extra == 'dev'", "autoflake (>=1.2) ; extra == 'dev'", "autopep8 (>=1.3.5) ; extra == 'dev'", "twine (>=1.10.0) ; extra == 'dev'", "wheel (>=0.30.0) ; extra == 'dev'", "tox (>=2.9.1) ; extra == 'dev'", "coverage (>=4.5.1) ; extra == 'dev'", "doc8 (>=0.8.0) ; extra == 'dev'", "pydocstyle (>=3.0.0) ; extra == 'dev'", "pytest (>=3.4.2) ; extra == 'dev'", "pytest-cov (>=2.6.0) ; extra == 'dev'", "mlprimitives (<0.3,>=0.2) ; extra == 'dev'", "urllib3 (<1.25,>=1.20) ; extra == 'dev'", "setuptools (>=41.0.0) ; extra == 'dev'", "numpy (<1.17) ; extra == 'dev'", "pytest (>=3.4.2) ; extra == 'test'", "pytest-cov (>=2.6.0) ; extra == 'test'", "mlprimitives (<0.3,>=0.2) ; extra == 'test'", "urllib3 (<1.25,>=1.20) ; extra == 'test'", "setuptools (>=41.0.0) ; extra == 'test'", "numpy (<1.17) ; extra == 'test'" ], "requires_python": "", "summary": "Pipelines and primitives for machine learning and data science.", "version": "0.3.3" }, "last_serial": 5924658, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0b62dc080ba19bebdec639a5796417d5", "sha256": "4b29afcc7c29a059fffa8fdd712fee08788a55de860547d14cba7489cf30ad5e" }, "downloads": -1, "filename": "mlblocks-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b62dc080ba19bebdec639a5796417d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24081, "upload_time": "2018-06-04T21:33:54", "url": "https://files.pythonhosted.org/packages/f4/51/e12b2d432f48a3d5528c71b3eb09bdc1cc6f97b38ea4948b47206d4e42b2/mlblocks-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29989e774e97a736a23d77884a317e30", "sha256": "3dd07727fca1a275c756525d0f76fc01f012cbc1257b79163c5c1f144aa5593a" }, "downloads": -1, "filename": "mlblocks-0.1.0.tar.gz", "has_sig": false, "md5_digest": "29989e774e97a736a23d77884a317e30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23193, "upload_time": "2018-06-04T21:33:56", "url": "https://files.pythonhosted.org/packages/a9/24/a7e32878de0132442d8a935bd20875c2d74112934e66902ac0a158f39a07/mlblocks-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9d8c2c62851071b806610005901aae97", "sha256": "9c42f24ed3a6cd8db7cc4704229eead68d8f7184ac9788b9e8a37e2c71f8ec24" }, "downloads": -1, "filename": "mlblocks-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d8c2c62851071b806610005901aae97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29221, "upload_time": "2018-06-08T17:11:59", "url": "https://files.pythonhosted.org/packages/22/ed/f90d7484ad6781709f2d0c487ff6d32c50be37b8c13d10d8037e8957e3aa/mlblocks-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8a3590f09f51eaea246f7e77b44453e", "sha256": "2006fb656baed32bf5c0d58b2ffde8410944e328a452c5165fd22a1c59e23ca1" }, "downloads": -1, "filename": "mlblocks-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a8a3590f09f51eaea246f7e77b44453e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24777, "upload_time": "2018-06-08T17:12:01", "url": "https://files.pythonhosted.org/packages/e8/32/bf16cec4af8cdb19c5fa04d869296c9e295520dc814795db8b4a28920d8d/mlblocks-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5fa4d236f923efcc272d3c10062f154d", "sha256": "c840b871d7ec575dbb346400e5ce4093a4d2ca1f2ef7b61d4b4af7d8e10cfa54" }, "downloads": -1, "filename": "mlblocks-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5fa4d236f923efcc272d3c10062f154d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29121, "upload_time": "2018-06-08T20:14:57", "url": "https://files.pythonhosted.org/packages/ae/f0/5d3f9dfdeb293e89325aa189fc05e1ac5efb4da834e215be3dd922de9a76/mlblocks-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "047c145dd5ffc5e385cbcb01c5022a9b", "sha256": "c0485fab803c7b9d0d63113df3c7ec93576a9d79c86ed8ef859bbcc987a2e93b" }, "downloads": -1, "filename": "mlblocks-0.1.2.tar.gz", "has_sig": false, "md5_digest": "047c145dd5ffc5e385cbcb01c5022a9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26539, "upload_time": "2018-06-08T20:14:58", "url": "https://files.pythonhosted.org/packages/8d/31/b1adb1051967007b262357a934667bb23aca43e4b708ba9ce7cd62764656/mlblocks-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "fab8dc8b11e38d330852eb8b75dba0e2", "sha256": "0fc1c8033150fc963605655e42243ae263450588b74b2b2d2a677d92311fdb31" }, "downloads": -1, "filename": "mlblocks-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fab8dc8b11e38d330852eb8b75dba0e2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32771, "upload_time": "2018-06-13T18:50:16", "url": "https://files.pythonhosted.org/packages/5b/e5/3669ee992c7b137a28a7e12b7e59681a88689c641c85c25c88b8f1645dc3/mlblocks-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "185866c724301e88d12991b6aaa9eaa6", "sha256": "3c9b0a98ea355f182a71e0d6b652aec894bf735337434b9c4af4d08f13db1004" }, "downloads": -1, "filename": "mlblocks-0.1.3.tar.gz", "has_sig": false, "md5_digest": "185866c724301e88d12991b6aaa9eaa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26856, "upload_time": "2018-06-13T18:50:17", "url": "https://files.pythonhosted.org/packages/0f/44/8139625da9a7ae838c31eaf21a4bbd9620329063d0f14e8e7ee841ac3daf/mlblocks-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "65775f005a032e72fb687eab3af09c21", "sha256": "3414f1d7050392a57e94724279fc7ece96bcb23178ffa3f7e96a707412a4a2ee" }, "downloads": -1, "filename": "mlblocks-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65775f005a032e72fb687eab3af09c21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34640, "upload_time": "2018-06-15T22:03:19", "url": "https://files.pythonhosted.org/packages/f7/71/cde570abedf465feac66986afe1e6fec3c514a18810eccde48a495608c46/mlblocks-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "443692c370a321a09c8e086fcf0d63a7", "sha256": "ed06e216b7ce11c29e658b138c76fc301da39cc4749faa6f9da346a10bbab8c6" }, "downloads": -1, "filename": "mlblocks-0.1.4.tar.gz", "has_sig": false, "md5_digest": "443692c370a321a09c8e086fcf0d63a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27472, "upload_time": "2018-06-15T22:03:21", "url": "https://files.pythonhosted.org/packages/ea/40/4d7e36cc58ad3062ae3305c218a3e27cb65c7fbcb29ba093744da26f4d62/mlblocks-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "764092afcb048182f3471ef860900008", "sha256": "148790f051cc0c82851282aecd941fad83dfd53477e776a25aaaf7e6885cb132" }, "downloads": -1, "filename": "mlblocks-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "764092afcb048182f3471ef860900008", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35697, "upload_time": "2018-06-19T19:02:21", "url": "https://files.pythonhosted.org/packages/92/f2/cd0a898e0b788780b5e553f133198a0da562ea19479c7745824c8e15702a/mlblocks-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29e8f12daa6fce3ba415aec49f3c1d11", "sha256": "8af96f00c4a7f258ae2fbcdde939757edcd497c90e5b674e4ace4b6b1cbba31a" }, "downloads": -1, "filename": "mlblocks-0.1.5.tar.gz", "has_sig": false, "md5_digest": "29e8f12daa6fce3ba415aec49f3c1d11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30180, "upload_time": "2018-06-19T19:02:22", "url": "https://files.pythonhosted.org/packages/34/a3/2d95277b946abfc1989c0c84ea08921b048b292aa7645431f44b935574f4/mlblocks-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "73dfb2c76e4b4bf0e6e990aed2cbe830", "sha256": "1c05c4806e93450dd23a9055cfbe78ddbb303a29d103a97cce966a0e24b8fe1d" }, "downloads": -1, "filename": "mlblocks-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73dfb2c76e4b4bf0e6e990aed2cbe830", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41929, "upload_time": "2018-06-19T20:22:52", "url": "https://files.pythonhosted.org/packages/c7/c3/1440884754e6b7e37e0c2b902646f73626ea7fb68519f82a5c040eefa0cc/mlblocks-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc3eec217f3df49ca09430640a6b2dd2", "sha256": "5329fe4a0b06701c3b0b82ee9762760904f5485143da89166cd1e9d02aae0438" }, "downloads": -1, "filename": "mlblocks-0.1.6.tar.gz", "has_sig": false, "md5_digest": "dc3eec217f3df49ca09430640a6b2dd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29977, "upload_time": "2018-06-19T20:22:54", "url": "https://files.pythonhosted.org/packages/5d/ef/2765c4b64725a8ad52559a9677001cb7c3a11d8195d3fcbce7c42fcfa9eb/mlblocks-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "350d901655c7315a772767e728f7c150", "sha256": "4ec215050e5bae6a2409b13ff18e4639ef35a307b1c30dab1623f48ba61d185c" }, "downloads": -1, "filename": "mlblocks-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "350d901655c7315a772767e728f7c150", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42119, "upload_time": "2018-07-13T15:58:21", "url": "https://files.pythonhosted.org/packages/0c/3f/a2f7e64f7a716bdc789828054bd23512919fceaa419fc87b85d65e8cd7f4/mlblocks-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4becfa5c7c004a2455dcac256a1edb3a", "sha256": "5247ff20dfdaea0f3e1fe439cc49599ae3eac3776fd5bb5a2da8a94d0cf4cd91" }, "downloads": -1, "filename": "mlblocks-0.1.7.tar.gz", "has_sig": false, "md5_digest": "4becfa5c7c004a2455dcac256a1edb3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30094, "upload_time": "2018-07-13T15:58:22", "url": "https://files.pythonhosted.org/packages/d4/03/369a75bfc9c9ee4b7e9c905f759ae9647be6627a973a7b930465ca2e8b6c/mlblocks-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "395dbf45353e97a1ad000b118c80630e", "sha256": "5a14cffb903042e60d0f4728c05958e79bc90161cc65f25e8b0b0cf1e8e631c5" }, "downloads": -1, "filename": "mlblocks-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "395dbf45353e97a1ad000b118c80630e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47826, "upload_time": "2018-07-27T23:45:26", "url": "https://files.pythonhosted.org/packages/56/73/32ddda0eb1163740e3d389fda6348adbbea1eafb76cdf12d44ca6f341378/mlblocks-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ee4b859e19fc87ad9a2d8749411e41d", "sha256": "e9bffb98300479bb0b1de32c6a61192dd70a6a10973f0acdde33c695a421e243" }, "downloads": -1, "filename": "mlblocks-0.1.8.tar.gz", "has_sig": false, "md5_digest": "1ee4b859e19fc87ad9a2d8749411e41d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32772, "upload_time": "2018-07-27T23:45:29", "url": "https://files.pythonhosted.org/packages/ca/8c/738ce60ced17629c6b798e0be0988b7c677fc80b5b5585ce049c647ac8bc/mlblocks-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "a9af329005d20bba23ec6c2c077bafd4", "sha256": "4d9bee554076197db21c69ad83c640c9b0714a4af0b3e037c1b0f3bbbbccb5e0" }, "downloads": -1, "filename": "mlblocks-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a9af329005d20bba23ec6c2c077bafd4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47754, "upload_time": "2018-07-28T00:44:47", "url": "https://files.pythonhosted.org/packages/5a/1a/2ee6890948cc02fe917b30f5b517dc38288ee45eb3879c27ec175e533bd5/mlblocks-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a86ef1a89def314cabc83a0075570d8", "sha256": "35525bd9637cf5aa0ad59070f8e38c1740a1da64cdc02f117e67e9aa8aba7c90" }, "downloads": -1, "filename": "mlblocks-0.1.9.tar.gz", "has_sig": false, "md5_digest": "0a86ef1a89def314cabc83a0075570d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33138, "upload_time": "2018-07-28T00:44:49", "url": "https://files.pythonhosted.org/packages/ad/1e/b4a597666ad105d1f0622e70cda22c54170a46fd4505f94d2cdab78fc013/mlblocks-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b9ebe305e1171406135f3189af311b2f", "sha256": "ca253a832bcfaf4dc12fa5a9fcb780279c3d08341ac94b066eab4a1ac368e247" }, "downloads": -1, "filename": "mlblocks-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9ebe305e1171406135f3189af311b2f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8751, "upload_time": "2018-08-17T16:54:16", "url": "https://files.pythonhosted.org/packages/86/43/18fcde4a8eabb263859dbd22f94f6cc2d436affccd3b2bb56e248df633a2/mlblocks-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "103146160560a199d670cbe90d96214b", "sha256": "fda0ac931950142c7abeff86d26e37bb87eb860c234fbffff98afbf7344e6f04" }, "downloads": -1, "filename": "mlblocks-0.2.0.tar.gz", "has_sig": false, "md5_digest": "103146160560a199d670cbe90d96214b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16929, "upload_time": "2018-08-17T16:54:18", "url": "https://files.pythonhosted.org/packages/61/4f/99867f6f5ef7da22328977946ed674821b745f779276c01b2d2618770cea/mlblocks-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "2a094342f3877c5b23f47ab1ebf66406", "sha256": "64f3e6cc123572cc974600d871e213e4b5c41cab85fc8aec79ded99bb4bf8bdb" }, "downloads": -1, "filename": "mlblocks-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a094342f3877c5b23f47ab1ebf66406", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12026, "upload_time": "2018-09-24T14:51:00", "url": "https://files.pythonhosted.org/packages/5e/f0/8434d5b982940c6e9118aac49d3e0e45eec28f7d2f793d73c8567903fcc5/mlblocks-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c00b27f846813e1257588ff87fdf0cb4", "sha256": "dbfa8d86e8b289cdb48eb8cde06bf9f82b17a4f5f2b08cf438ac37f5381ebdf9" }, "downloads": -1, "filename": "mlblocks-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c00b27f846813e1257588ff87fdf0cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50271, "upload_time": "2018-09-24T14:51:02", "url": "https://files.pythonhosted.org/packages/79/1e/ef1978a428ca60a059f2e1eca9b594b3cb8009dabf87b90fab518d1f25f0/mlblocks-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a784ae3c5422ce179be1f98262de1363", "sha256": "355dab7b09d43d3e62c2c036bde664f75f387b2ae75135b65a3c0f9bb165c040" }, "downloads": -1, "filename": "mlblocks-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a784ae3c5422ce179be1f98262de1363", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13790, "upload_time": "2018-10-02T23:05:57", "url": "https://files.pythonhosted.org/packages/d2/2e/0bec47c80f44af7d6f363d2a90db7a486a6589757106b0f8e7a5bd05878e/mlblocks-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bcb72123aa15251a6b2361ff666b601", "sha256": "18922bbc811234f966e28c7d7784a2d18be842b32d490f65665207ec311035a3" }, "downloads": -1, "filename": "mlblocks-0.2.2.tar.gz", "has_sig": false, "md5_digest": "2bcb72123aa15251a6b2361ff666b601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51967, "upload_time": "2018-10-02T23:05:58", "url": "https://files.pythonhosted.org/packages/b1/85/3b91bbc16f61f97ca82e805c06f365473fc666d99577a2f80f459071b82b/mlblocks-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f3f17cf86538198053fd4c0adadee25e", "sha256": "313b912930b244d64882e00cdc488bf0bb4b3b84b21d1aa8a732fe53fd2dffe2" }, "downloads": -1, "filename": "mlblocks-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f3f17cf86538198053fd4c0adadee25e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16175, "upload_time": "2018-10-04T21:51:57", "url": "https://files.pythonhosted.org/packages/80/7a/e7098ed176fcaf3ef32cf3ef84700834c31aa35ddfa67277b2f05f74118b/mlblocks-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b932790b9c892ea556744482c737aa85", "sha256": "342c6c68f09d463b3535a8a5f83af23eceea9ee994b0ce807a6ce34a6b9a6aa0" }, "downloads": -1, "filename": "mlblocks-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b932790b9c892ea556744482c737aa85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54164, "upload_time": "2018-10-04T21:51:58", "url": "https://files.pythonhosted.org/packages/3a/19/4a2f83812f21ed8831aa5750b80f9062644f7be71e2474f17dbf2d991547/mlblocks-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "ccc4d10ffb018323ab7fe650c7b2ec79", "sha256": "f10196e872d8c86fd478804702e7a4bae1d3ac04a6e7443e88e6fddde03762cc" }, "downloads": -1, "filename": "mlblocks-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ccc4d10ffb018323ab7fe650c7b2ec79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18403, "upload_time": "2018-12-21T10:46:54", "url": "https://files.pythonhosted.org/packages/2e/04/be06c7cceca823b1c79e2e67aa91b04e141875ae4ebdfcf81e2dd2bfe0a1/mlblocks-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "043d2dbdfa9905916257df73dda0c32d", "sha256": "cdfa05e836395a0f852c34cbe5d05ef1fda7b22e26c996b2553ff14c2f3c7a2b" }, "downloads": -1, "filename": "mlblocks-0.2.4.tar.gz", "has_sig": false, "md5_digest": "043d2dbdfa9905916257df73dda0c32d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62984, "upload_time": "2018-12-21T10:46:57", "url": "https://files.pythonhosted.org/packages/cf/94/26a5fd07ac0924a21f701f60a327ac748bfd971c753bd93950a2fa25f092/mlblocks-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d02db4e4c7ba21b92d2fa45c2d59a2e3", "sha256": "c1041fbaa665421e698943083aa576a1640231dadafb8dfff251dda52525efc5" }, "downloads": -1, "filename": "mlblocks-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d02db4e4c7ba21b92d2fa45c2d59a2e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19302, "upload_time": "2019-01-10T17:34:02", "url": "https://files.pythonhosted.org/packages/31/10/2d49efbba663da73d4039d65d4409104f3bcaffb11721b14355e09c5f63c/mlblocks-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87890969ec988b7ef8d1e48faa8bb2f8", "sha256": "2562ad491be792cdcb3798103aabadb974ca823e7f18b7e04614983d019e069a" }, "downloads": -1, "filename": "mlblocks-0.3.0.tar.gz", "has_sig": false, "md5_digest": "87890969ec988b7ef8d1e48faa8bb2f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65558, "upload_time": "2019-01-10T17:34:05", "url": "https://files.pythonhosted.org/packages/7d/b8/7aaf9591b9270aa0ad6a2ab8889e8645dd5d91a901b2b3ca46c4b3b0d01f/mlblocks-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "127be14e90cf2c9b6dfe50e3961494ed", "sha256": "3ba4da5c23c9840a60bfadd3da28bbb7c3756cd21a039dfb0ddaae431619b258" }, "downloads": -1, "filename": "mlblocks-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "127be14e90cf2c9b6dfe50e3961494ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23237, "upload_time": "2019-07-08T18:38:17", "url": "https://files.pythonhosted.org/packages/a5/e1/fdbf05b230d7e66fab255078a1dbc685f0199514c16321f374a4cae03a7c/mlblocks-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77c0320e8d5b2c07e6364291371a9a75", "sha256": "ea1545335bbb9d72d5e41777fe52a1ce40b33b0e0ce01b363c0c39de94ec6c82" }, "downloads": -1, "filename": "mlblocks-0.3.1.tar.gz", "has_sig": false, "md5_digest": "77c0320e8d5b2c07e6364291371a9a75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73717, "upload_time": "2019-07-08T18:38:19", "url": "https://files.pythonhosted.org/packages/1b/7c/46cbb08ed1df7283b412514c2aab5a0af958bc2cf0c32ad68f0ec96ef30d/mlblocks-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "d49d00ab0d5a82f6053b36af8f7d05bc", "sha256": "6d7cedce9c53028535d77f151311afd5861ecfdb9c82e6ddb215ea59b2ef2e9b" }, "downloads": -1, "filename": "mlblocks-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d49d00ab0d5a82f6053b36af8f7d05bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25610, "upload_time": "2019-08-12T11:11:35", "url": "https://files.pythonhosted.org/packages/45/71/a47921120d5b4f036b9accc51270b5fcd3e64e4415b2c50229e71a57612c/mlblocks-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "237df21cf3e371151cff66f483d3368c", "sha256": "7e45602609fa2e0624d6e28fff179f7590f4840b69b8acbd9139f355835632fb" }, "downloads": -1, "filename": "mlblocks-0.3.2.tar.gz", "has_sig": false, "md5_digest": "237df21cf3e371151cff66f483d3368c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79111, "upload_time": "2019-08-12T11:11:37", "url": "https://files.pythonhosted.org/packages/56/bc/b48b903e18b6b1255a7e864879487a833c28c0574dfccb64d522849e32e4/mlblocks-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "802f9d7dd61a3e4078944f9b742bef5e", "sha256": "e35b7312f0d548e69ca2a40c8c0312eaf4e7d900f0a6bfcd3264ccf3f582014a" }, "downloads": -1, "filename": "mlblocks-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "802f9d7dd61a3e4078944f9b742bef5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26035, "upload_time": "2019-09-09T09:29:38", "url": "https://files.pythonhosted.org/packages/37/50/d4beca217ea3c52b22a3ac9ad51a8a2366599d331ac0159bbcf1f735d7b3/mlblocks-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb389da99506415b885230dcb11e115f", "sha256": "1d5957e7e83e831cf7edec286afde7a8aa83e18798d074c2922892bf2e60c8d7" }, "downloads": -1, "filename": "mlblocks-0.3.3.tar.gz", "has_sig": false, "md5_digest": "cb389da99506415b885230dcb11e115f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79941, "upload_time": "2019-09-09T09:29:42", "url": "https://files.pythonhosted.org/packages/0d/c6/060ae0a5f2c68e211a04665f7d6cd2e45e79cd1fceccbff19c076d8937d5/mlblocks-0.3.3.tar.gz" } ], "0.3.4.dev0": [ { "comment_text": "", "digests": { "md5": "71e4cabe0049bb14909dc995f09f4636", "sha256": "b94bc570b55d0c1543655ff28732e95bd95121281c16f97ba863d3165fd7d6a7" }, "downloads": -1, "filename": "mlblocks-0.3.4.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "71e4cabe0049bb14909dc995f09f4636", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26165, "upload_time": "2019-10-03T18:21:24", "url": "https://files.pythonhosted.org/packages/c7/cb/a04cb64c29e6e2fe9fe89a8a353e6323ee94bd2f4462f996a6fd4335058e/mlblocks-0.3.4.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36f5980e64d180f1eb1f2876c6a7e50a", "sha256": "4a416fadeb960736643364780d1a4902c585e476103e21f17c1f1c91c1ff4488" }, "downloads": -1, "filename": "mlblocks-0.3.4.dev0.tar.gz", "has_sig": false, "md5_digest": "36f5980e64d180f1eb1f2876c6a7e50a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80390, "upload_time": "2019-10-03T18:21:27", "url": "https://files.pythonhosted.org/packages/fd/26/0f8815e1445b62a0c6d5f0ea9ed1daf63353a02b62e8d21412f3b18e226e/mlblocks-0.3.4.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "802f9d7dd61a3e4078944f9b742bef5e", "sha256": "e35b7312f0d548e69ca2a40c8c0312eaf4e7d900f0a6bfcd3264ccf3f582014a" }, "downloads": -1, "filename": "mlblocks-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "802f9d7dd61a3e4078944f9b742bef5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26035, "upload_time": "2019-09-09T09:29:38", "url": "https://files.pythonhosted.org/packages/37/50/d4beca217ea3c52b22a3ac9ad51a8a2366599d331ac0159bbcf1f735d7b3/mlblocks-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb389da99506415b885230dcb11e115f", "sha256": "1d5957e7e83e831cf7edec286afde7a8aa83e18798d074c2922892bf2e60c8d7" }, "downloads": -1, "filename": "mlblocks-0.3.3.tar.gz", "has_sig": false, "md5_digest": "cb389da99506415b885230dcb11e115f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79941, "upload_time": "2019-09-09T09:29:42", "url": "https://files.pythonhosted.org/packages/0d/c6/060ae0a5f2c68e211a04665f7d6cd2e45e79cd1fceccbff19c076d8937d5/mlblocks-0.3.3.tar.gz" } ] }