{ "info": { "author": "Antoine Redier", "author_email": "antoine.redier2@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "========\nchariots\n========\n\n\n.. image:: https://img.shields.io/pypi/v/chariots.svg\n :target: https://pypi.python.org/pypi/chariots\n\n.. image:: https://img.shields.io/travis/aredier/chariots.svg\n :target: https://travis-ci.org/aredier/chariots\n\n.. image:: https://readthedocs.org/projects/chariots/badge/?version=latest\n :target: https://chariots.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/github/license/aredier/chariots?color=green\n :target: https://github.com/aredier/chariots/blob/master/LICENSE\n\n\n\n\nchariots aims to be a complete framework to build and deploy versioned machine learning pipelines.\n\n* Documentation: https://chariots.readthedocs.io.\n\nGetting Started: 30 seconds to Chariots:\n----------------------------------------\nYou can check the `chariots docutemtation`_ for a complete tutorial on getting started with\nchariots, but here are the essentials:\n\nyou can create operations to execute steps in your pipeline:\n\n >>> from chariots.sklearn import SKUnsupervisedOp, SKSupervisedOp\n >>> from chariots.versioning import VersionType, VersionedFieldDict, VersionedField\n >>> from sklearn.decomposition import PCA\n >>> from sklearn.linear_model import LogisticRegression\n ...\n ...\n >>> class PCAOp(SKUnsupervisedOp):\n ... training_update_version = VersionType.MAJOR\n ... model_parameters = VersionedFieldDict(VersionType.MAJOR, {\"n_components\": 2})\n ... model_class = VersionedField(PCA, VersionType.MAJOR)\n ...\n >>> class LogisticOp(SKSupervisedOp):\n ... training_update_version = VersionType.PATCH\n ... model_class = LogisticRegression\n\nOnce your ops are created, you can create your various training and prediction pipelines:\n\n\n >>> from chariots import Pipeline, MLMode\n >>> from chariots.nodes import Node\n ...\n ...\n >>> train = Pipeline([\n ... Node(IrisFullDataSet(), output_nodes=[\"x\", \"y\"]),\n ... Node(PCAOp(MLMode.FIT_PREDICT), input_nodes=[\"x\"], output_nodes=\"x_transformed\"),\n ... Node(LogisticOp(MLMode.FIT), input_nodes=[\"x_transformed\", \"y\"])\n ... ], 'train')\n ...\n >>> pred = Pipeline([\n ... Node(PCAOp(MLMode.PREDICT), input_nodes=[\"__pipeline_input__\"], output_nodes=\"x_transformed\"),\n ... Node(LogisticOp(MLMode.PREDICT), input_nodes=[\"x_transformed\"], output_nodes=['__pipeline_output__'])\n ... ], 'pred')\n\nOnce all your pipelines have been created, deploying them is as easy as creating a creating a `Chariots` object:\n\n >>> from chariots import Chariots\n ...\n ...\n >>> app = Chariots([train, pred], app_path, import_name='iris_app')\n\n\nThe `Chariots` class inherits from the `Flask` class so you can deploy this the same way you would any\n`flask application`_\n\n\nOnce this the server is started, you can use the chariots client to query your machine learning micro-service from\npython:\n\n >>> from chariots import Client\n ...\n ...\n >>> client = Client()\n\nwith this client we will be\n\n- training the models\n- saving them and reloading the prediction pipeline (so that it uses the latest/trained version of our models)\n- query some prediction\n\n >>> client.call_pipeline(train)\n >>> client.save_pipeline(train)\n >>> client.load_pipeline(pred)\n >>> client.call_pipeline(pred, [[1, 2, 3, 4]])\n [1]\n\nFeatures\n--------\n\n* versionable individual op\n* easy pipeline building\n* easy pipelines deployment\n* ML utils (implementation of ops for most popular ML libraries with adequate `Versionedfield`) for sklearn and keras at first\n* A CookieCutter template to properly structure your Chariots project\n\nComming Soon\n------------\n\nSome key features of Chariot are still in development and should be coming soon:\n\n* Cloud integration (integration with cloud services to fetch and load models from)\n* Graphql API to store and load information on different ops and pipelines (performance monitoring, ...)\n* ABTesting\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n`audreyr/cookiecutter-pypackage`_'s project is also the basis of the Chariiots project template\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypac\n.. _chariots docutemtation: https://chariots.readthedocs.io\n.. _flask application: https://github.com/pallets/flask\n\n=======\nHistory\n=======\n\n0.1.0 (2019-06-15)\n------------------\n\n* First release on PyPI.\n\n0.2.0 (2019-06-15)\n------------------\n\n* sci-kit learn and keras integration\n* multiple outputs per nodes\n* project template\n* tutorials\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aredier/chariots", "keywords": "chariots", "license": "GNU General Public License v3", "maintainer": "", "maintainer_email": "", "name": "chariots", "package_url": "https://pypi.org/project/chariots/", "platform": "", "project_url": "https://pypi.org/project/chariots/", "project_urls": { "Homepage": "https://github.com/aredier/chariots" }, "release_url": "https://pypi.org/project/chariots/0.2.4/", "requires_dist": [ "Click (>=6.0)", "dill (==0.2.9)", "flask (==1.0.3)", "requests (==2.22.0)", "cookiecutter (<2.0,>=1.6.0)" ], "requires_python": "", "summary": "machine learning pipelines", "version": "0.2.4" }, "last_serial": 5847907, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "441e59d3b02a5073772d41b6af97ae75", "sha256": "f47bc1e4893ab753ef4d6a4854c2b128a98a60a6ec8fe236b13c98de72f091d7" }, "downloads": -1, "filename": "chariots-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "441e59d3b02a5073772d41b6af97ae75", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3847, "upload_time": "2019-07-14T18:48:53", "url": "https://files.pythonhosted.org/packages/32/7f/42d12fc0281367e36fd963f085d88a44cceaae359e820f2c61137af3f2d8/chariots-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d1f71b6edb4a1f20d316dd3687a4374", "sha256": "24cbc76f2663915d3df94f37f3c1e254ef73900a1ca0006acce0836b6cb8e9c7" }, "downloads": -1, "filename": "chariots-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5d1f71b6edb4a1f20d316dd3687a4374", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11470, "upload_time": "2019-07-14T18:48:56", "url": "https://files.pythonhosted.org/packages/05/6d/fb6aee74a452d26950419684c62e8a852231f800835056c172bbd5cc8cae/chariots-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e384c1723f30315baaf08de643a38f5f", "sha256": "5b9d8ea758dc3199ba845ac06fc6032cf7eec92f974ea022e8d693b2e0814a9e" }, "downloads": -1, "filename": "chariots-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e384c1723f30315baaf08de643a38f5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3849, "upload_time": "2019-07-14T21:36:53", "url": "https://files.pythonhosted.org/packages/4b/73/ac1dc3d4ac1e5fac879395da77e08be5fd29cad166bf1a4f3923d5dc8485/chariots-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e90b1ddc2978fc370381a95d48805776", "sha256": "461fc236eb14d24aad657c7ef26aa1a731c26bcf8b39dcab89ca9f9d02dee029" }, "downloads": -1, "filename": "chariots-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e90b1ddc2978fc370381a95d48805776", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12027, "upload_time": "2019-07-14T21:36:55", "url": "https://files.pythonhosted.org/packages/da/df/493206be1e144f371767e1b842b1c2f8984676d985c9885b03b7152d32a3/chariots-0.1.2.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "bb711ed4e401a6d7de55448a30b431f9", "sha256": "02b9cf135a30e73d59e7dce948e6d4fd12ddcda305b557461cb67a135830ed60" }, "downloads": -1, "filename": "chariots-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb711ed4e401a6d7de55448a30b431f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13936, "upload_time": "2019-09-18T05:42:29", "url": "https://files.pythonhosted.org/packages/a8/5a/df0e6c043e6ebf4c1b7796a455f44e851a72fe6b5d2b00db70dde2e067e4/chariots-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5bd80c55899b1d0012f7a62e62d1487", "sha256": "29cdf5708785b1235d7be305e339d745b437b9da90bb765b722a8fc3b4a1ae6f" }, "downloads": -1, "filename": "chariots-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c5bd80c55899b1d0012f7a62e62d1487", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33757, "upload_time": "2019-09-18T05:42:31", "url": "https://files.pythonhosted.org/packages/57/61/2d3d84ed41eb2f04e21c68545b4cee949ccf434681580c77161f72dd4032/chariots-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb711ed4e401a6d7de55448a30b431f9", "sha256": "02b9cf135a30e73d59e7dce948e6d4fd12ddcda305b557461cb67a135830ed60" }, "downloads": -1, "filename": "chariots-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb711ed4e401a6d7de55448a30b431f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13936, "upload_time": "2019-09-18T05:42:29", "url": "https://files.pythonhosted.org/packages/a8/5a/df0e6c043e6ebf4c1b7796a455f44e851a72fe6b5d2b00db70dde2e067e4/chariots-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5bd80c55899b1d0012f7a62e62d1487", "sha256": "29cdf5708785b1235d7be305e339d745b437b9da90bb765b722a8fc3b4a1ae6f" }, "downloads": -1, "filename": "chariots-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c5bd80c55899b1d0012f7a62e62d1487", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33757, "upload_time": "2019-09-18T05:42:31", "url": "https://files.pythonhosted.org/packages/57/61/2d3d84ed41eb2f04e21c68545b4cee949ccf434681580c77161f72dd4032/chariots-0.2.4.tar.gz" } ] }