{ "info": { "author": "Chie Hayashida", "author_email": "chie-hayashida@cookpad.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: User Interfaces" ], "description": "[![wercker status](https://app.wercker.com/status/da135ca979d1a5dcb1ed72e2f5de1f65/s/master \"wercker status\")](https://app.wercker.com/project/byKey/da135ca979d1a5dcb1ed72e2f5de1f65) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/expstock/expstock) [![PyPI version](https://badge.fury.io/py/expstock.svg)](https://badge.fury.io/py/expstock) [![Maintainability](https://api.codeclimate.com/v1/badges/37c08a214b40cfdc9ac6/maintainability)](https://codeclimate.com/github/chie8842/expstock/maintainability) \n# EXPSTOCK\n\n**expstock** is a tool to manage results of experiments in machine learning, data analysis, simulation, etc.\n\nWhen we try to integrate machine learning models or performe simulation using a mathematical model, we execute the same script or program many times with different parameters or logics.\nIn order to summalize or reproduce our experiments, it is necessary to take environmental information comprehensively.\n\nexpstock can automatically save environmental information with text files with adding simple implementation.\n\n## Getting Started\n\nexpstock has mainly two functions.\n\n* Saving logs as test files(Basic Usage)\n* Log Visualization(Optional)\n\n### Basic Usage\n\nThere are two implementation types.\nThe simplest way is to surround the target mothod with the decorator as below.\n\n```\nfrom expstock import expstock\n\ne = expstock.ExpStock(exp_name='test_experiment', report=True, dbsave=True)\n@expstock.expstock(e)\ndef run(a, b):\n return a + b\n\ne.append_param(a=a, b=b)\ne.set_memo('This is the first experiment')\nrun(a, b)\n```\n\nBut in case such as using Jupyter notebook, following implementation may be more convenient.\n\n```\nfrom expstock import expstock\n\n\ne = expstock.ExpStock(dbsave=True)\n\ne.append_param(a=a, b=b)\ne.set_memo('This is the first experiment')\ne.pre_stock()\nresult = a + b\ne.result = result\ne.post_stock()\n```\n\n\n#### Log Format\n\nexpstock saves environmental information with following directory structure. This is default setting, and we can change it.\n\n```\nexperiments\n\u251c\u2500\u2500 _\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 exec_time.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 git_diff.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 git_head.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 machine_info.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 memo.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 params.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 report.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 result.txt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 stderr.txt\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 stdout.txt\n\n```\n\nIn the above, each file contains following information.\n\n|file name | contents|user implementation|\n|----------|---------|--------|\n|exec_time.txt |start time, finish time, execution time of the experiment| - |\n|git_diff.txt | result of `git diff`| - |\n|git_head.txt |result of `git log -n 1 --format=%H`| - |\n|machine_info.txt |machine info such as os version and hostname which can get with `platform` which is python builtin package| - |\n|memo.txt |memo for each experiments. | e = ExpStock(memo = 'hoge') or e.set_memo(hoge) |\n|params.txt |experiment parameter. | e = ExpStock(params=[{'a': a}, {'b': b }]) or e.apend_params(a=a, b=b))|\n|result.txt|return value of the experiment| e.result = func() or automatically set when using decorator|\n|stdout.txt|result of sys.stdout| - |\n|stderr.txt|result of sys.stderr| - |\n|report.txt|summary of above information. if specify `report=True` when create Expstock instance, it creates report.txt| - |\n\nIn addition, we can save other files such as machine learning models in same directory with a simple command.\n\n```\nfrom sklearn.externals import joblib\njoblib.dump(model, e.log_dirname)\n```\n\n### Log Visualization\n\nIf you use `e = ExpStock(dbsave=True)`, some types of logs are save on not only text but also sqlite tables.\nAnd now, this tool can visualize your experiments with `expstock-server`.\n\n```\n$ expstock-server\n```\n\nYou can access expstock-server with **:8000**.\n\n![expstock-server](./img/expstock-server.png) \n\n## Getting expstock\n\n### Requirements\nNo requirements for default usage(only text outputs).\nIf you use `dbsave` function and see logs on expstock dashboard, [sqlite](https://www.sqlite.org/index.html) is needed.\n\n\n### Installation\n\nYou can get expstock from pypi.\n\n```\npip install expstock\n```\n\nYou can get source from github and build, too.\n\n```\ngit clone https://github.com/chie8842/expstock\npython setup.py install\n```\n\n## Contributing\n\nContribution is welcomed. Please feel free to write issues or talk to on [gitter](https://gitter.im/expstock/expstock).\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/chie8842/expstock", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "expstock", "package_url": "https://pypi.org/project/expstock/", "platform": "", "project_url": "https://pypi.org/project/expstock/", "project_urls": { "Homepage": "https://github.com/chie8842/expstock" }, "release_url": "https://pypi.org/project/expstock/0.2/", "requires_dist": [ "bottle" ], "requires_python": "", "summary": "Stock your experiments", "version": "0.2" }, "last_serial": 3757210, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ea1361622f2298276aaae6bb8e515299", "sha256": "5a248efe2194c6ad4a4b672994d30a5778a87209a655d91eee8ef2766977fb85" }, "downloads": -1, "filename": "expstock-0.1.0-py3.5.egg", "has_sig": false, "md5_digest": "ea1361622f2298276aaae6bb8e515299", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 21778, "upload_time": "2018-04-11T03:05:59", "url": "https://files.pythonhosted.org/packages/d3/00/358c6f2e35468e29177326cf9a452dc584100b4e8941738e8798d07a7784/expstock-0.1.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "4bedb363fb4f7b428748081f0dafb1ae", "sha256": "cbfcb999116947fa3a320e8391f502477df9c55f795e6260e516b51db58c08ca" }, "downloads": -1, "filename": "expstock-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4bedb363fb4f7b428748081f0dafb1ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11058, "upload_time": "2018-04-11T03:05:57", "url": "https://files.pythonhosted.org/packages/5a/29/bca95a51097d0511108e2b55d56ea3ce5f08dea38de489d5f1ae7eb2576c/expstock-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "037bc01a2c7a178eec17bdb6843c1333", "sha256": "571d3fd59794e49a8abb246fc8973fa8c450a74c14f9a380ae5394de882c1353" }, "downloads": -1, "filename": "expstock-0.1.0.tar.gz", "has_sig": false, "md5_digest": "037bc01a2c7a178eec17bdb6843c1333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7897, "upload_time": "2018-04-11T03:06:00", "url": "https://files.pythonhosted.org/packages/4e/fd/42c945f3ee35add7a05fceb20b1fb7c849f281e94a7688e26bf55be4181a/expstock-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e6c111ccede772050055a831a9097de9", "sha256": "57a28b67be5794eb264cefcce4e3bf6e4fa1f589824c7312c309032694a880eb" }, "downloads": -1, "filename": "expstock-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e6c111ccede772050055a831a9097de9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12268, "upload_time": "2018-04-11T09:25:32", "url": "https://files.pythonhosted.org/packages/35/84/e4c374aedd7b9babe9509e4ed468cdabd7419c7eecec55f0095a846daf20/expstock-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "108b5cf3eebbad41d787352c76ab9ee1", "sha256": "1b5ddcbd73b39f0e47a3c05bc6335769e788e24748194f468e32434a8bf7c78d" }, "downloads": -1, "filename": "expstock-0.1.1.tar.gz", "has_sig": false, "md5_digest": "108b5cf3eebbad41d787352c76ab9ee1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9268, "upload_time": "2018-04-11T06:03:32", "url": "https://files.pythonhosted.org/packages/0a/86/340afa8c3e6407d0304c15be7e99f0f320637c13e4b09b665d7a2f4e1366/expstock-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c304acc94a9e75ad47452e18f1006b7d", "sha256": "232a69b21ea9a35458d155c13151c5917500921f1f9e1cdcefc57659c5c9398e" }, "downloads": -1, "filename": "expstock-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c304acc94a9e75ad47452e18f1006b7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12266, "upload_time": "2018-04-11T09:25:34", "url": "https://files.pythonhosted.org/packages/94/8c/9bb961b3981ec3ee773cc9cc5bc516e28cfd1408d8cdae46d20d1a2e91ec/expstock-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "0c17c6d1e1d7a0429d49e26405e967ef", "sha256": "e51b7fc0236b1524002fcf6c9035b7c835124d07559a89398fd090c061e47a58" }, "downloads": -1, "filename": "expstock-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0c17c6d1e1d7a0429d49e26405e967ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13377, "upload_time": "2018-04-11T09:46:56", "url": "https://files.pythonhosted.org/packages/91/a7/d915063fa85721205cd00f0c0840e70377aa64cf1c4f9f8ff2afaf839490/expstock-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "679eb78332e5e5f3be5a9e069c2458e8", "sha256": "8fc24993903942a5d48a6625a8b39e008d568b293ff84e5e8e1b55e554698ea5" }, "downloads": -1, "filename": "expstock-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "679eb78332e5e5f3be5a9e069c2458e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14275, "upload_time": "2018-04-11T12:14:50", "url": "https://files.pythonhosted.org/packages/52/49/c71ab3ec213ee5c7a94cf3d577731b2bfc75853683cb0e906c5c51f26787/expstock-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e4e35a3d9feb08fb371365d6d992cf41", "sha256": "2037429f161e29dff5d892b6b7034decaab23dab2febe206223fc323cf14d8ca" }, "downloads": -1, "filename": "expstock-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e4e35a3d9feb08fb371365d6d992cf41", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15683, "upload_time": "2018-04-11T14:29:08", "url": "https://files.pythonhosted.org/packages/45/df/de97bdc21e349dea943e456968b0c27c327ecda3b2194e0ac1b7a83497c2/expstock-0.1.5-py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "397cc76cb719c7b3ea2f4573117b4349", "sha256": "762db8f55f1ad103b68c8dc056994fd7cccee634577f656e95b666cf407e1074" }, "downloads": -1, "filename": "expstock-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "397cc76cb719c7b3ea2f4573117b4349", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16239, "upload_time": "2018-04-12T01:58:06", "url": "https://files.pythonhosted.org/packages/b7/34/21277a82f4f033087b23ef4c832cdeff35dcf37249a2e5a8a0dca3c58312/expstock-0.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "397cc76cb719c7b3ea2f4573117b4349", "sha256": "762db8f55f1ad103b68c8dc056994fd7cccee634577f656e95b666cf407e1074" }, "downloads": -1, "filename": "expstock-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "397cc76cb719c7b3ea2f4573117b4349", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16239, "upload_time": "2018-04-12T01:58:06", "url": "https://files.pythonhosted.org/packages/b7/34/21277a82f4f033087b23ef4c832cdeff35dcf37249a2e5a8a0dca3c58312/expstock-0.2-py3-none-any.whl" } ] }