{ "info": { "author": "Pascal Kleindienst", "author_email": "mail@pascalkleindienst.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Database", "Topic :: Scientific/Engineering", "Topic :: Utilities" ], "description": "\n# Experimentum\n[![Build Status][build-status-badge]][build-status-link]\n[![Codacy grade][codacy-quality-badge]][codacy-quality-link]\n[![Codacy coverage][codacy-coverage-badge]][codacy-coverage-link]\n![PyPI - Python Version][python_version_badge]\n![PyPI - License][license_badge]\n![PyPI][version_badge]\n\n\n\ud83d\udc68\u200d\ud83d\udd2c\ud83d\udd2cExperimentum is a domain-independent data-management framework for running and analyzing computational experiments.\n\n## About Experimentum\n\n![Experimentum Dashboard](https://pascalkleindienst.github.io/experimentum/_images/dashboard.png)\n*Fig. 1: Web-Interface Dashboard*\n\nThe main purposes of Experimentum are to support experimenters in conducting routine tasks in complex experiments more efficiently. Experimentum itself takes care of the database-specific parts of the data management: creating and modifying the database schema, storing the collected experiment results, and retrieving data from the database for further analysis.\n\n### Features\n- Domain-independent\n- Independent of used database *(standard is a SQL database, but implementation can be swapped out to support NoSQL databases like MongoDB)*\n- Migrations and Schema-builder to easily create the database-schema *(no need to know SQL!)*\n- Visualize results with matplotlib\n- Manage Experiments via CLI or via Web-Interface\n\n\n## Installation \ud83d\udc68\u200d\ud83d\udcbb\nThe framework can be easily installed via `pip` with the following command:\n\n`$ pip install experimentum`\n\n>The different ``dbapi`` packages are not part of the package dependencies, so you must install them in order to connect to corresponding databases:\n>* PostgreSQL: ``psycopg2``\n>* MySQL: ``PyMySQL`` or ``mysqlclient``\n>* Oracle: ``cx_oracle``\n>* Microsoft SQL Server: ``pyodbc`` or ``pymssql``\n>* SQLite: The ``sqlite3`` module is bundled with Python by default\n\n### Getting Started\nIn order to use the experimentum framework, you\u2019ll have to take care of some initial setup. You\u2019ll need to auto-generate some code that creates the config files, migrations, repositories and other application-specific settings.\n\nFrom the command line, `cd` into a directory where you would like to store your code, and then run the following command:\n\n~~~\n$ experimentum-quickstart\n# if you you want to create the project in a subdirectory you can add the --root option\n# experimentum-quickstart --root myproject\n~~~\n\nThis willl create a **myproject** directory in your current directoy. The quickstart command will have created the following:\n```\n/\n config/\n app.json\n storage.json\n experiments/\n __init__.py\n logs/\n migrations/\n {TIMESTAMP}_create_experiments.py\n {TIMESTAMP}_create_testcase.py\n {TIMESTAMP}_create_performance.py\n repositories/\n __init__.py\n ExperimentRepository.py\n PerformanceRepository.py\n TestcaseRepository.py\n main.py\n```\nThese files are:\n\n- **main.py**: The main entry point of the framework. It lets you interact with the experimentum framework via the command line.\n- **config/**: Contains all configuration files. You can place you own configuration files here. All *.json files will be loaded by the framework and available via the Config class under the config attribute of the App class.\n- **config/app.json** and **storage.json**: Framework related settings. For more information see Configuration\n- **experiments/**: Here you can place your experiments and their configrations.\n- **logs/**: Contains the log files.\n- **migrations/**: Your migration files are placed here.\n- **migrations/{TIMESTAMP}_create_experiments.py**: Migration for creating the experiments table.\n- **migrations/{TIMESTAMP}_create_testcase.py**: Migration for creating the testcase table.\n- **migrations/{TIMESTAMP}_create_performance.py**: Migration for creating the performance table.\n- **repositories/ExperimentRepository.py**: Repository for experiment data.\n- **repositories/TestcaseRepository.py**: Repository for testcase data.\n- **repositories/PerformanceRepository.py**: Repository for performance data.\n\n\n## Documentation \ud83d\udcc3\nAn extensive documentation about the usage of the Experimentum framework and each individual component can be found under: https://pascalkleindienst.github.io/experimentum/index.html\n\n## Changelog \ud83d\udcdd\nThe full changelog can be found in the [CHANGELOG.md](CHANGELOG.md) file.\n\n## Contributing\nThank you for considering contributing to the Experimentum framework! The contribution guide can be found in the [CONTRIBUTING.md](.github/CONTRIBUTING.md) file.\n\n## Acknowledgments \ud83d\udc4d\n- [@softgit](https://github.com/softgit) - Beta Tester\n\n## License\nCopyright 2019 Pascal Kleindienst\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n[build-status-badge]: https://travis-ci.com/PascalKleindienst/experimentum.svg?token=Hv3aZrJaquTDR7zjNhps&branch=master\n[build-status-link]:https://travis-ci.com/PascalKleindienst/experimentum\n\n[_codacy-quality-badge]: https://img.shields.io/codacy/grade/e85a2c346ef14265b3986ff7f58b3c7a.svg?style=flat-square\n[codacy-quality-badge]: https://api.codacy.com/project/badge/Grade/e85a2c346ef14265b3986ff7f58b3c7a\n[codacy-quality-link]: https://www.codacy.com?utm_source=github.com&utm_medium=referral&utm_content=PascalKleindienst/experimentum&utm_campaign=Badge_Grade\n\n[_codacy-coverage-badge]: https://img.shields.io/codacy/coverage/e85a2c346ef14265b3986ff7f58b3c7a.svg?style=flat-square\n[codacy-coverage-badge]: https://api.codacy.com/project/badge/Coverage/e85a2c346ef14265b3986ff7f58b3c7a\n[codacy-coverage-link]: https://www.codacy.com?utm_source=github.com&utm_medium=referral&utm_content=PascalKleindienst/experimentum&utm_campaign=Badge_Coverage\n\n[python_version_badge]: https://img.shields.io/pypi/pyversions/experimentum.svg?style=flat-square\n[license_badge]: https://img.shields.io/pypi/l/experimentum.svg?style=flat-square\n[version_badge]: https://img.shields.io/pypi/v/experimentum.svg?style=flat-square\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/PascalKleindienst/experimentum", "keywords": "", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "experimentum", "package_url": "https://pypi.org/project/experimentum/", "platform": "", "project_url": "https://pypi.org/project/experimentum/", "project_urls": { "Homepage": "https://github.com/PascalKleindienst/experimentum" }, "release_url": "https://pypi.org/project/experimentum/1.0.3/", "requires_dist": [ "SQLAlchemy (>=1.2.0)", "termcolor", "colorama", "tabulate", "inflection", "six", "psutil", "matplotlib", "Flask (>=1.0.0)", "pyodbc ; extra == 'mssql'", "pymssql ; extra == 'mssql_pymssql'", "pyodbc ; extra == 'mssql_pyodbc'", "mysqlclient ; extra == 'mysql'", "cx-oracle ; extra == 'oracle'", "psycopg2 ; extra == 'postgresql'", "pg8000 ; extra == 'postgresql_pg8000'", "psycopg2-binary ; extra == 'postgresql_psycopg2binary'", "psycopg2cffi ; extra == 'postgresql_psycopg2cffi'", "pymysql ; extra == 'pymysql'" ], "requires_python": ">=2.7.0", "summary": "Data-Management Framework for Running and Analyzing Computational Experiments", "version": "1.0.3" }, "last_serial": 5940237, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "38cd9e1d593c7bc12994aa6c00ae0957", "sha256": "bfa05e12b6477181bcf49f85824c99f0feead7d3a1808817dbed0c752bf8c7e3" }, "downloads": -1, "filename": "experimentum-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38cd9e1d593c7bc12994aa6c00ae0957", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 85446, "upload_time": "2019-04-17T08:03:55", "url": "https://files.pythonhosted.org/packages/cb/78/c4aefea97fb7de82da651aaab5fe16efe573151744c9bca66ae569ce5a2b/experimentum-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3348b79275817407aea2f75758093d0", "sha256": "a2a67745d13b4418d500964be36ee9e943236e77ad710a7a03b5bbbd4b215ab3" }, "downloads": -1, "filename": "experimentum-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d3348b79275817407aea2f75758093d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 63308, "upload_time": "2019-04-17T08:03:57", "url": "https://files.pythonhosted.org/packages/49/cd/d1f3a1e90f86f9b7ac5430a1686850c5a8fd13b5f8f9b96f31db73ba201f/experimentum-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "33a90ec47165d393d28bdad01f6dcd25", "sha256": "789899833cb0b3d128e97d89a26678bf7a1a49d33c9a29f86962b4685f93e483" }, "downloads": -1, "filename": "experimentum-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33a90ec47165d393d28bdad01f6dcd25", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 87039, "upload_time": "2019-04-28T15:26:25", "url": "https://files.pythonhosted.org/packages/88/49/243c7bd42014eff0a2efcda763fc85b4cc3feda2e35f96277711314c5c2c/experimentum-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2510784dd4b845f762323c7196e52647", "sha256": "4e4460fcb26b4ad2bddf4deb7a35903037d03b480343ec3fa0b57f87ee472afe" }, "downloads": -1, "filename": "experimentum-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2510784dd4b845f762323c7196e52647", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 64331, "upload_time": "2019-04-28T15:26:29", "url": "https://files.pythonhosted.org/packages/ee/bd/086b272a94a16554cd65a1d2098c017fe4414b16b1da303b658974b47ba9/experimentum-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "736dd1b787358cfd759de520ccfa2608", "sha256": "d652b03a4b0eb44cc5f6cf46de79e53fceb3f69d37860305bb04565bfad89a7d" }, "downloads": -1, "filename": "experimentum-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "736dd1b787358cfd759de520ccfa2608", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 87100, "upload_time": "2019-10-07T16:12:43", "url": "https://files.pythonhosted.org/packages/d3/26/93851332286175dace4ae4f629d6dc9a6cf7ea65ab61694c4f7167cbcca1/experimentum-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45a90ef93ef28277346183687c959400", "sha256": "2cc8663a0f3dd05829a90695484e682e2cabc0d7734f2817bdd8f50b2534deaa" }, "downloads": -1, "filename": "experimentum-1.0.2.tar.gz", "has_sig": false, "md5_digest": "45a90ef93ef28277346183687c959400", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 64411, "upload_time": "2019-10-07T16:12:48", "url": "https://files.pythonhosted.org/packages/9f/3b/a46e451dc05b94a191de77a9fc1a0b2e12d1e52874ceb556db6fef3c30c7/experimentum-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "66fd58fae1a0d5eda1bc983437ae0f16", "sha256": "ecd142d5d362f4a4c94f16d99c90e999b60b995be7d6b95e55e3bace8a8766f4" }, "downloads": -1, "filename": "experimentum-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66fd58fae1a0d5eda1bc983437ae0f16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 87260, "upload_time": "2019-10-07T17:04:01", "url": "https://files.pythonhosted.org/packages/e6/49/f5e4c8228facffe1ebe163a250325b9f61daae4eb9675d969d455b79e5ea/experimentum-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0121cf9de8bbe8348517a5a3d671a599", "sha256": "bb2796d2ecf62472bb0346ec3f8a4c96ed7142c433f3ba96c2c6c4268ea0be4f" }, "downloads": -1, "filename": "experimentum-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0121cf9de8bbe8348517a5a3d671a599", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 64568, "upload_time": "2019-10-07T17:04:03", "url": "https://files.pythonhosted.org/packages/76/41/ed7d492e95711a654bf18332be7f149484b7e4a66b67008797b2a4b3a4e9/experimentum-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "66fd58fae1a0d5eda1bc983437ae0f16", "sha256": "ecd142d5d362f4a4c94f16d99c90e999b60b995be7d6b95e55e3bace8a8766f4" }, "downloads": -1, "filename": "experimentum-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66fd58fae1a0d5eda1bc983437ae0f16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 87260, "upload_time": "2019-10-07T17:04:01", "url": "https://files.pythonhosted.org/packages/e6/49/f5e4c8228facffe1ebe163a250325b9f61daae4eb9675d969d455b79e5ea/experimentum-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0121cf9de8bbe8348517a5a3d671a599", "sha256": "bb2796d2ecf62472bb0346ec3f8a4c96ed7142c433f3ba96c2c6c4268ea0be4f" }, "downloads": -1, "filename": "experimentum-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0121cf9de8bbe8348517a5a3d671a599", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 64568, "upload_time": "2019-10-07T17:04:03", "url": "https://files.pythonhosted.org/packages/76/41/ed7d492e95711a654bf18332be7f149484b7e4a66b67008797b2a4b3a4e9/experimentum-1.0.3.tar.gz" } ] }