{ "info": { "author": "Zofia Kochutek, \u0141ukasz Kleczaj, Marek Kochanowski", "author_email": "support@maisie.dev", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Communications :: File Sharing", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Version Control :: Git", "Topic :: System :: Archiving :: Backup", "Typing :: Typed" ], "description": "Maisie - ML Models Management System\n####################################\n\n.. |RTFD_BADGE| image:: https://img.shields.io/readthedocs/maisie.svg\n :alt: Read the Docs Badge\n\n.. |PyPI_Badge| image:: https://img.shields.io/pypi/v/Maisie.svg\n :alt: PyPI Badge\n\n.. |AzureMaisie_Badge| image:: https://img.shields.io/azure-devops/build/maisie-dev/7e500d81-c7bf-42fc-87ca-e58e58dad4ee/1/master.svg\n :alt: Azure DevOps Badge\n\n.. |AzureMaisieDev_Badge| image:: https://img.shields.io/azure-devops/build/maisie-dev/7e500d81-c7bf-42fc-87ca-e58e58dad4ee/1/develop.svg\n :alt: Azure DevOps Badge\n\n.. |AzureSphinxTheme_Badge| image:: \n https://img.shields.io/azure-devops/build/maisie-dev/7e500d81-c7bf-42fc-87ca-e58e58dad4ee/2.svg\n :alt: Azure DevOps Badge\n\n.. |DockerHub_Badge| image:: https://img.shields.io/docker/pulls/maisiedev/maisie.svg\n :alt: DockerHub Pulls Badge\n\n+------------------------------------------------------------------------------+--------------------------+\n| `Maisie (stable) `_ | |AzureMaisie_Badge| |\n+------------------------------------------------------------------------------+--------------------------+\n| `Maisie (development) `_ | |AzureMaisieDev_Badge| |\n+------------------------------------------------------------------------------+--------------------------+\n| `Maisie Sphinx Theme `_ | |AzureSphinxTheme_Badge| |\n+------------------------------------------------------------------------------+--------------------------+\n| `Documentation `_ | |RTFD_BADGE| |\n+------------------------------------------------------------------------------+--------------------------+\n| `PyPI `_ | |PyPI_Badge| | \n+------------------------------------------------------------------------------+--------------------------+\n| `DockerHub `_ | |DockerHub_Badge| |\n+------------------------------------------------------------------------------+--------------------------+\n\n.. contents:: \\\n\n.. section-numbering::\n\n\nFeatures\n========\n\nCould archiving, storing, managing and organizing machine learning models be done efficiently and with great focus on user experience? Sure, Maisie does just that. \n\nMaisie is a friendly, easy to use assistant that consists of:\n\n- Web Application written in React\n- Backend API written in Python, Flask\n- Client Application/Package written in Python and hosted on PyPI\n\nIt integrates seamlessly with your favorite tools and provides you with all the important data, such as:\n\n- Git revisions for all trained models, as well as information about source branches\n- Searchable, filterable hyperparameters, parameters and metrics\n- A single identifying dataset name, as well as an optional description\n- Permanent URLs for easy sharing and downloading of stored models\n\nInstalling\n==========\n\nYou can get the most current package from `PyPI `_\n\n.. code-block:: bash\n\n $ pip install Maisie\n\nUsing it in your training environment is fairly straightforward:\n\n.. code-block:: python\n\n import maisie\n from sklearn.externals import joblib\n\n # Define your model here\n\n model.fit(X, y)\n model_filename = \"example_model.pkl\"\n joblib.dump(model, model_filename)\n\n # Define your metrics, fetch parameters and hyperparameters\n\n models = maisie.Models()\n models.upload(\n name=\"My first uploaded model\",\n filename=model_filename,\n dataset_name=\"Singly Identifying Dataset Name\",\n metrics={\"accuracy\": accuracy},\n hyperparameters=hyperparameters,\n parameters=parameters,\n )\n\nDeploying\n=========\n\nUsing docker-compose\n--------------------\n\nThis repository provides a pre-configured ``docker-compose.yml`` file that contains sensible default options. \n\nBefore starting the containers, you should create a local ``.env`` file using the included ``.env.sample``.\n\nTo start up all services, run:\n\n.. code-block:: bash\n\n $ docker-compose up\n\nTo stop your services, you can press Ctrl+C/Ctrl+D. If you started the services in the background using ``docker-compose up -d``, the correct way to do this would be:\n\n.. code-block:: bash\n\n $ docker-compose stop\n\nYou can learn more about Docker Compose by `clicking here `_.\n\nFetching individual images\n--------------------------\n\nBoth frontend and backend images are automatically published to `Docker Hub `_ as soon as new stable release is made available.\n\nLinks\n\n- `Frontend image on Docker Hub `_\n- `Backend image on Docker Hub `_\n- ...other services\n\nFor reference, you can look at the `sample Ansible playbook <#>`_ that deploys all containers to a specified host using the locally configured ``.env`` file.\n\nContributing\n============\n\nGetting started\n---------------\n\n1. Clone the repository from the ``develop`` branch\n\n.. code-block:: bash\n\n $ git clone -b develop git@github.com:nokia-wroclaw/innovativeproject-ml-models-management.git\n\n2. Install `pre-commit `_\n\n3. Inside the project's root directory install all required githooks:\n\n.. code-block:: bash\n\n $ pre-commit install\n\n4. To start all required services for local development, run:\n\n.. code-block:: bash\n\n $ docker-compose up\n\n5. You're all set up!\n\nFixing existing issues\n----------------------\n\n1. Pick one of the `open issues `_ or `create a new one `_\n\n2. Create a new branch named ``issue-[number]-[short description]`` derived from the ``develop`` branch, for example\n\n.. code-block:: bash\n\n $ git checkout -b issue-42-project-removal-permissions develop\n\n3. Make sure your implementation fixes the actual problem and is well tested. \n\nImplementing new features\n-------------------------\n\nWhen implementing new features, you should start by creating a new branch named ``feature-[short description]`` derived from the ``develop`` branch, for example\n\n.. code-block:: bash\n\n $ git checkout -b feature-new-user-profile develop\n\n\nCommiting the changes\n---------------------\n\nTo run all tests and check whether all required pre-commit githooks are satisfied, run \n\n.. code-block:: bash\n\n $ pre-commit run --all-files\n\nYour commit message should briefly summarize the changes (if possible) in plain English. To learn how to write a proper commit message, check out `this article `_.\n\nWhen ready, create a new pull request compared with the ``develop`` branch set as a base branch.\n\nDocumentation\n=============\n\nFor the lastest stable release, the documentation can be seen at `docs.maisie.dev `_.\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/nokia-wroclaw/innovativeproject-ml-models-management", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Maisie", "package_url": "https://pypi.org/project/Maisie/", "platform": "", "project_url": "https://pypi.org/project/Maisie/", "project_urls": { "Homepage": "https://github.com/nokia-wroclaw/innovativeproject-ml-models-management" }, "release_url": "https://pypi.org/project/Maisie/0.1.6/", "requires_dist": [ "Click (>=7.0)", "gitpython (>=2.1.1)", "requests (>=2.22.0)", "coloredlogs (>=10.0)", "pyyaml (>=5.1.1)", "terminaltables (>=3.1.0)", "ago (>=0.0.93)", "python-dateutil (>=2.8.0)" ], "requires_python": "", "summary": "User-oriented system for painless managing, storing, sharing, organizing and deploying Machine Learning models.", "version": "0.1.6" }, "last_serial": 5545338, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "93abcc8834c44ed483d01b476834f041", "sha256": "d735f144cfa7b930fa73241ea64cc08eeea996b9bf829b2930991c74522faf04" }, "downloads": -1, "filename": "Maisie-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93abcc8834c44ed483d01b476834f041", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12908, "upload_time": "2019-04-09T11:06:57", "url": "https://files.pythonhosted.org/packages/c7/c1/b2558a080e9bf8fc30f7d9b466dbebe8c975e78f1c1e042d8803e4dfddfc/Maisie-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d88c605d35f7cb385df0a0d83557380", "sha256": "30bee48ace69b82c51a3ec50fdcdc8dc8ef3f9914f7b028d731f38a3b46e1e51" }, "downloads": -1, "filename": "Maisie-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8d88c605d35f7cb385df0a0d83557380", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7567, "upload_time": "2019-04-09T11:06:59", "url": "https://files.pythonhosted.org/packages/72/8d/42c36e097cb6333e2c68118c7634ed6933fca9d6f27dbdd3ec61e766fd88/Maisie-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "26aa0de75931f3b09766382e689783c1", "sha256": "77dc16d0f98943f9d7030ab6a8f39b4c25ae52803004b8ebdef46ca9cf65c09d" }, "downloads": -1, "filename": "Maisie-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26aa0de75931f3b09766382e689783c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15383, "upload_time": "2019-04-19T18:38:39", "url": "https://files.pythonhosted.org/packages/7b/40/10bbcb20e884fe53220637fae4c2dc1b23b94b5012b11d709cf20755513f/Maisie-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "988b66f1e57fb848a64582fd2a7a0a24", "sha256": "b66b360cdb0b2a4a783a3cc58278740273362948de60f9d4f7ee948a4ebac37a" }, "downloads": -1, "filename": "Maisie-0.1.2.tar.gz", "has_sig": false, "md5_digest": "988b66f1e57fb848a64582fd2a7a0a24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8471, "upload_time": "2019-04-19T18:38:41", "url": "https://files.pythonhosted.org/packages/53/1f/3e722010388f6ce1e62c9a665db647f2875b2576cf57bcb187979c37701a/Maisie-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4f91766779e37ff53d234576cd440486", "sha256": "df5ddefe767efc3fdc76493c2dea8ecd247c192b0342f96a0a5ffa56b3f7d2ff" }, "downloads": -1, "filename": "Maisie-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4f91766779e37ff53d234576cd440486", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19491, "upload_time": "2019-06-19T14:47:16", "url": "https://files.pythonhosted.org/packages/13/f1/e814635b6e4f523639b5c883913cbc41fc816771154c1ee8a25e0e7c5761/Maisie-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d73789aa6b4633a32dbcb4f204d1700", "sha256": "fda8c0191d123c439fd448beac76c4476e928a4efeb729295bc63b067739d0f9" }, "downloads": -1, "filename": "Maisie-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2d73789aa6b4633a32dbcb4f204d1700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10817, "upload_time": "2019-06-19T14:47:17", "url": "https://files.pythonhosted.org/packages/8d/0a/351293064afd158747ec9885c20860e0d1b083ee40f521186ed31468b334/Maisie-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "184d326ca8497815dff785a80b05127d", "sha256": "51039843519d830e95be8cf97b657904d3ac3f64bbef04a818dd2a6b46d596c0" }, "downloads": -1, "filename": "Maisie-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "184d326ca8497815dff785a80b05127d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22208, "upload_time": "2019-06-21T15:36:37", "url": "https://files.pythonhosted.org/packages/5a/ba/87a0f031835d087b9b035c2453b3b891362a73d128254a0307e0a8583497/Maisie-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05ad015cc7913f597b1b83d74b5da315", "sha256": "be781808cc7fc73382e1c2435ad0ccebccb02cd9659a70ca14936a5dfdaaa09d" }, "downloads": -1, "filename": "Maisie-0.1.5.tar.gz", "has_sig": false, "md5_digest": "05ad015cc7913f597b1b83d74b5da315", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14667, "upload_time": "2019-06-21T15:36:39", "url": "https://files.pythonhosted.org/packages/3e/b5/b63227f01385fa6fc74b3add2fee246f034f832b5dc03b3524882601e444/Maisie-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "199ecdda203a2f06b004182dc92b7ccd", "sha256": "5a95815eb060415a58f0f2aadaea080619d694fa29a2af5755222111701c2ee9" }, "downloads": -1, "filename": "Maisie-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "199ecdda203a2f06b004182dc92b7ccd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22244, "upload_time": "2019-07-17T11:20:54", "url": "https://files.pythonhosted.org/packages/50/7b/ae86cd32851c59497d48dd3cfb049f4a7e778d460b651a7933c09986ef37/Maisie-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0b8e074c3efde9fb9ebe87c0a5afc79", "sha256": "bf70a61b977ffffdd8e2bb2ba83aeaa9f351f3868ecb8eaf5c2d860a55e8dfb7" }, "downloads": -1, "filename": "Maisie-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c0b8e074c3efde9fb9ebe87c0a5afc79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14721, "upload_time": "2019-07-17T11:20:55", "url": "https://files.pythonhosted.org/packages/d9/c2/3f03383bd7a530724fa34d67c64881dbf8b36005a76422435e78fa36bfd7/Maisie-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "199ecdda203a2f06b004182dc92b7ccd", "sha256": "5a95815eb060415a58f0f2aadaea080619d694fa29a2af5755222111701c2ee9" }, "downloads": -1, "filename": "Maisie-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "199ecdda203a2f06b004182dc92b7ccd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22244, "upload_time": "2019-07-17T11:20:54", "url": "https://files.pythonhosted.org/packages/50/7b/ae86cd32851c59497d48dd3cfb049f4a7e778d460b651a7933c09986ef37/Maisie-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0b8e074c3efde9fb9ebe87c0a5afc79", "sha256": "bf70a61b977ffffdd8e2bb2ba83aeaa9f351f3868ecb8eaf5c2d860a55e8dfb7" }, "downloads": -1, "filename": "Maisie-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c0b8e074c3efde9fb9ebe87c0a5afc79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14721, "upload_time": "2019-07-17T11:20:55", "url": "https://files.pythonhosted.org/packages/d9/c2/3f03383bd7a530724fa34d67c64881dbf8b36005a76422435e78fa36bfd7/Maisie-0.1.6.tar.gz" } ] }