{ "info": { "author": "Johannes Bechberger", "author_email": "me@mostlynerdless.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Benchmark" ], "description": ".. title:: temci\n\ntemci\n=====\n\n.. image:: https://travis-ci.org/parttimenerd/temci.svg?branch=master\n :target: https://travis-ci.org/parttimenerd/temci\n\nAn advanced benchmarking tool written in python3 that supports binary randomization and the generation of visually appealing reports.\n\nIt runs on sufficiently new Linux systems and (rudimentary) on Apple's OS X systems.\n\nThe development started as part of my bachelor thesis in October 2015. The bachelor thesis (written in German) can be found `here `_.\n\nWhy should you use temci?\n-------------------------\n\ntemci allows you to easily measure the execution time (and other things)\nof programs and compare them against each other resulting in a pretty\nHTML5 based report. Furthermore it sets up the environment to ensure\nbenchmarking results with a low variance and use some kind of assembly\nrandomisation to reduce the effect of caching.\n\nInstallation\n------------\n\nThe simplest way to install temci and its dependencies on either Linux or macOS\nis to use the `Nix package manager `_. After installing\nNix, execute\n\n.. code:: sh\n\n nix-env -f https://github.com/parttimenerd/temci/archive/master.tar.gz -i\n\nAlternatively, installing temci on Linux systems should be possible by just installing it via ``pip3``,\nrequiring at least python3.5::\n\n pip3 install temci\n\nIf this results in any problems or you're on an Apple system, visit the\nInstallation_ page.\n\nOpen an issue in the `issue tracker `_\nif you experience any weird errors.\n\nTo simplify using temci, enable tab completion for your favorite shell\n(bash and zsh are supported) by adding the following line to your bash or zsh configuration file\n\n.. code:: sh\n\n source `temci_completion [bash|zsh]`\n\n\nIf you can't install temci via `pip3`, using it to benchmark programs is possible\nby using `temci/scripts/run` instead of temci (execute this file with your favorite python3 interpreter directly if this interpreter isn't located at `/usr/bin/python3`).\n\n\nUsage\n-----\n\n*Side note: This tool needs root privileges for some benchmarking\nfeatures (using the `--sudo` flag is preferred over calling temci\nwith sudo directly).* *If you're not root, it will not fail, but\nit will warn you and disable the* *features.*\n\nThere are currently two good ways to explore the features of temci: 1.\nPlay around with temci using the provided tab completion for zsh\n(preferred) and bash 2. Look into the annotated settings file (it can be\ngenerated via ``temci init settings``).\n\nA user guide is planned. Until it's finished consider reading the\n`code documentation `_.\n\nA documentation of all command line commands and options is given in\nthe `documentation for the cli module `_.\n\nA documentation for all available run drivers, runners and run\ndriver plugins is given in the `documentation for the run module `_\n\nThe status of the documentation is given in the section `Status of the documentation`_.\n\nGetting started with simple benchmarking\n----------------------------------------\n\n*Or: How to benchmarking a simple program called ls (a program is every\nvalid shell code that is executable by /bin/sh)*\n\nThere are two ways to benchmark a program: A short and a long one.\n\nThe short one first: Just type:\n\n.. code:: sh\n\n temci short exec \"ls\" --runs 10 --out out.yaml\n\nExplanation:\n\n- ``short`` is the category of small helper subprograms that allow to\n use some temci features without config files\n- ``ls`` is the executed program\n - this is equivalent to ``-wd \"ls\"``\n - where ``-wd`` is the short option for ``--without_description`` an tells\n temci to use the program as its own description\n- ``--runs 100`` is short for ``--min_runs 100 --max_runs 100``\n- ``--min_runs 100`` tells temci to benchmark ``ls`` at least 100 times\n (the default value is currently 20)\n- ``--max_runs 100`` tells temci to benchmark ``ls`` at most 100 times\n (the default value is currently 100)\n- setting min and max runs non equal makes only sense when comparing\n two or more programs via temci\n- ``--out out.yaml`` tells temci to store the YAML result file as\n ``out.yaml`` (default is ``result.yaml``)\n\nThe long one now: Just type\n\n.. code:: sh\n\n temci init run_config\n\nThis let's you create a temci run config file by using a textual\ninterface (if you don't want to create it entirely by hand). To actually\nrun the configuration type:\n\n.. code:: sh\n\n temci exec [file you stored the run config in] --out out.yaml\n\nExplanation:\n\n- ``exec`` is the sub program that takes a run config an benchmarks all\n the included program blocks\n- ``--out out.yaml`` tells temci where to store the YAML file\n containing the benchmarking results\n- the measured ``__ov-time`` property is just a time information used\n by temci internally\n\nNow you have a YAML result file that has the following structure:\n\n.. code:: yaml\n\n - attributes:\n description: ls\n data:\n \u2026\n task-clock:\n - [first measurement for property task-clock]\n - \u2026\n \u2026\n\nYou can either create a report by parsing the YAML file yourself or by\nusing the temci report tool. To use the latter type:\n\n.. code:: sh\n\n temci report out.yaml --reporter html2 --html2_out ls_report\n\nExplanation:\n\n- ``out.yaml`` is the previously generated benchmarking result file\n- ``--reporter html2`` tells temci to use the HTML2Reporter. This\n reporter creates a fancy HTML5 based report in the folder\n ``ls_report``. The main HTML file is named ``report.html``. Other\n possible reporters are ``html`` and ``console``. The default reporter\n is ``html2``\n- ``--html2_out`` tells the HTML2Reporter the folder in which to place\n the report.\n\nNow you have a report on the performance of ``ls``.\n\nHow to go further from here\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Benchmark two programs against each other either by adding a\n ``-wd [other program]`` to the command line or appending the run\n config file (also possible via ``temci init run_config``)\n- If using ``temci short exec``\n\n - add a better description for the benchmarked program by using\n ``-d [DESCRIPTION] [PROGRAM]`` instead ``-wd``. ``-d`` is short\n for ``--with_description``\n\n- If using ``temci init run_config``:\n\n - Choose another set of measured properties (e.g. to measure the L1\n cache misses)\n - Change the used runner. The default runner is ``time`` and uses\n ``time`` (gnu time, not shell builtin) to actually measure the\n program. Other possible runners are for example ``perf_stat``,\n ``rusage`` and ``spec``:\n\n - The ``perf_stat`` runner that uses the ``perf`` tool\n (especially ``perf stat``) to measure the performance and read\n performance counters.\n - The ``rusage`` runner uses a small C wrapper around the\n ``getrusage(2)`` system call to measure things like the maximum\n resource usage (it's comparable to ``time``)\n - The ``spec`` runner gets its measurements by parsing a SPEC\n benchmark like result file. This allows using the SPEC\n benchmark with temci.\n\n- Append ``--send_mail [your email adress]`` to get a mail after the\n benchmarking finished. This mail has the benchmarking result file in\n its appendix\n- Try to benchmark a failing program (e.g. \"lsabc\"). temci will create\n a new run config file (with the ending \".erroneous.yaml\" that\n contains all failing run program blocks. Try to append the\n benchmarking result via \"--append\" to the original benchmarking\n result file.\n\n\nUse temci as a library\n~~~~~~~~~~~~~~~~~~~~~~\nThis is useful for example for processing the benchmarking results.\nBefore importing other parts of the library the module `temci.utils.library_init` has to be loaded,\nwhich runs the necessary setup code (reading the settings file, \u2026).\n\nUse temci to setup a benchmarking environment\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nUse `temci short shell COMMAND` to run a command (`sh` by default) in a shell that is inside\nthe benchmarking environment. Most options (like `--preset`) of `temci short exec` are\nsupported.\n\n\nWhy is temci called temci?\n--------------------------\n\nThe problem in naming programs is that most good program names are\nalready taken. A good program or project name has (in my opinion) the\nfollowing properties: - it shouldn't be used on the relevant platforms\n(in this case: github and pypi) - it should be short (no one want's to\ntype long program names) - it should be pronounceable - it should have\nat least something to do with the program temci is such a name. It's\nlojban for time (i.e. the time duration between to moments or events).\n\n\nContributing\n------------\n\n`Bug reports `_ and\n`Code contributions `_ are highly appreciated.\n\n\nBasic Testing\n-------------\nBasic integration tests are run via `SHELLTEST=1 ./doc.sh` using a custom sphinx plugin.\nThere are no tests yet.\n\nUnit Testing\n------------\nInstall temci via `pip` and run the tests via\n\n.. code:: sh\n\n pytest tests\n\nThe tests can be found in the `tests` folder and use the pytest framework.\n\n\nStatus of the documentation\n---------------------------\n\n===================== ========================\nREADME/this page Work in progress\nInstallation_ Finished\nResources_ Finished\n===================== ========================\n\n.. _Installation: https://temci.readthedocs.io/en/latest/installation.html\n\n.. _Resources: https://temci.readthedocs.io/en/latest/resources.html", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/parttimenerd/temci", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "temci", "package_url": "https://pypi.org/project/temci/", "platform": "linux", "project_url": "https://pypi.org/project/temci/", "project_urls": { "Homepage": "https://github.com/parttimenerd/temci" }, "release_url": "https://pypi.org/project/temci/0.7.15/", "requires_dist": null, "requires_python": "", "summary": "Advanced benchmarking tool", "version": "0.7.15" }, "last_serial": 5512420, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "21378e011f03b6c7771bed1f646899b9", "sha256": "1cd86ae3b71d76fffce5d47e9a61b89fb9cf58c6c1fca9750401880daedbd491" }, "downloads": -1, "filename": "temci-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "21378e011f03b6c7771bed1f646899b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 498199, "upload_time": "2016-01-27T10:03:53", "url": "https://files.pythonhosted.org/packages/0c/42/6b2358ec8b152696775a2a8ee1347b20d714f22d3ae21dc22f61af66494a/temci-0.5-py3-none-any.whl" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "331f65d47e4a9c45ab4a3b216bad1aaa", "sha256": "159d53b6411acc451fa70a18795255912cbdbe85d273929cd2f587b30edbfdd0" }, "downloads": -1, "filename": "temci-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "331f65d47e4a9c45ab4a3b216bad1aaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1047545, "upload_time": "2016-01-27T11:59:56", "url": "https://files.pythonhosted.org/packages/d8/90/74a700ab54842ae23310dc809779968cc0df96178ca6fc4be71c5e84e441/temci-0.5.1-py3-none-any.whl" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "bd2de17a2e935c3c1d97d7bfc01a0f73", "sha256": "499ca6be98d5477834395587d87597a749de5826aa8146f2233626ede6f04614" }, "downloads": -1, "filename": "temci-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bd2de17a2e935c3c1d97d7bfc01a0f73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1163195, "upload_time": "2016-02-03T13:16:10", "url": "https://files.pythonhosted.org/packages/c3/89/f730a3e7197c0d3dc2d43500367c81ffab4587ea18750c93e0183baeb05a/temci-0.5.2-py3-none-any.whl" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "cb519d958e49184270da4e72cbb9d241", "sha256": "606bbc942cddb076d275331942ce1c1116dec5c7b9b0f7d99de861376d781de9" }, "downloads": -1, "filename": "temci-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "cb519d958e49184270da4e72cbb9d241", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 751004, "upload_time": "2016-02-07T14:27:55", "url": "https://files.pythonhosted.org/packages/c1/e9/ca3f7ab8b43730e54f0438ccf1fafa354773f2374e4775a35161b6804685/temci-0.5.3-py3-none-any.whl" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "5eed746bccfe1592aac91b27314f1257", "sha256": "875945c5ba30dd8d482609e362a9b69c7475681943059467ae1aa796da70b9c8" }, "downloads": -1, "filename": "temci-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5eed746bccfe1592aac91b27314f1257", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 755383, "upload_time": "2016-02-10T12:58:34", "url": "https://files.pythonhosted.org/packages/e7/c9/6069ca49f5e11ec7a6d8edf25b8540cfae59d47ed24a7a02dfb4824bddf6/temci-0.5.4-py3-none-any.whl" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "3c10514f3fd8eebb5292f9e92301a472", "sha256": "873a82c84ff4bea297415197f4098ef4dc3e0fc0c42919bc15ac7cf0a5ff3dd2" }, "downloads": -1, "filename": "temci-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3c10514f3fd8eebb5292f9e92301a472", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1067410, "upload_time": "2016-03-30T08:51:25", "url": "https://files.pythonhosted.org/packages/c7/9b/8b8e618fcf668256dc7f3f4576e9f2c8c3054f49d38b4af63022a2ac4221/temci-0.7.0-py3-none-any.whl" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "fad29586ae5cbc1ef4946b69d430ee7a", "sha256": "c2dfd62ee40d1135772bd3032b1958eda46246254e6253da922fab2e662e591e" }, "downloads": -1, "filename": "temci-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fad29586ae5cbc1ef4946b69d430ee7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1078439, "upload_time": "2016-04-06T20:55:39", "url": "https://files.pythonhosted.org/packages/27/8d/3ce149f3d840e8ea5e6633bdcee459beb9cd6885ab2ac6d86a313f2374f9/temci-0.7.1-py3-none-any.whl" } ], "0.7.10": [ { "comment_text": "", "digests": { "md5": "a93c58349f54756a8745fe3194f5fb73", "sha256": "aabf4ef08fcb0dd5605b647dea21ee4dc380f27c41cded72093cd42ac7564052" }, "downloads": -1, "filename": "temci-0.7.10-py3-none-any.whl", "has_sig": false, "md5_digest": "a93c58349f54756a8745fe3194f5fb73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 255163, "upload_time": "2017-12-14T10:36:00", "url": "https://files.pythonhosted.org/packages/57/8e/d3b7d048f53c98f37ce4cb47ce9b1bcdeb5bc3c67bc2d249c3d50fd19bbd/temci-0.7.10-py3-none-any.whl" } ], "0.7.11": [ { "comment_text": "", "digests": { "md5": "00d54279af8bef071ad5066d525228a6", "sha256": "ce35abf764fb6a2c58ea50574cb79101ea1507f2871a3134cd6fa07aaa4a8b24" }, "downloads": -1, "filename": "temci-0.7.11-py3-none-any.whl", "has_sig": false, "md5_digest": "00d54279af8bef071ad5066d525228a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 263345, "upload_time": "2019-05-17T13:01:36", "url": "https://files.pythonhosted.org/packages/3b/fa/d68bb7c85d2c326bd85bab20da526edb64bf01a986e36445dc581aa982b6/temci-0.7.11-py3-none-any.whl" } ], "0.7.12": [ { "comment_text": "", "digests": { "md5": "8869626799703f7ef14990f86e76f1f7", "sha256": "9aba731aa2e7a1a63d0b1ae7a22a16dc798e1e4d5c50226ea9ff8b5613ebd5cf" }, "downloads": -1, "filename": "temci-0.7.12.tar.gz", "has_sig": false, "md5_digest": "8869626799703f7ef14990f86e76f1f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 238737, "upload_time": "2019-05-24T15:28:38", "url": "https://files.pythonhosted.org/packages/1a/64/15700ec5e6566b60a99e2c5f1c617cdfefbd958d96403db3a9c77c650d80/temci-0.7.12.tar.gz" } ], "0.7.13": [ { "comment_text": "", "digests": { "md5": "3596ff1404df44486a32b929de2bba40", "sha256": "ecbafda23284c8b652417bc66e92c65b0b29bf831b20d531ed088970db25ecc9" }, "downloads": -1, "filename": "temci-0.7.13.tar.gz", "has_sig": false, "md5_digest": "3596ff1404df44486a32b929de2bba40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 241132, "upload_time": "2019-05-29T09:01:35", "url": "https://files.pythonhosted.org/packages/59/a0/a41532219ff064e828af5e508336b8ef23750b82a813d375eabe24e9d51d/temci-0.7.13.tar.gz" } ], "0.7.14": [ { "comment_text": "", "digests": { "md5": "96c46286bfeb885561e6a089decdad16", "sha256": "e7db46ae1c68200e6434957f29feeabc80b5ece62a2d94444f3fea99f43f50d1" }, "downloads": -1, "filename": "temci-0.7.14.tar.gz", "has_sig": false, "md5_digest": "96c46286bfeb885561e6a089decdad16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 249302, "upload_time": "2019-07-04T15:48:02", "url": "https://files.pythonhosted.org/packages/1b/af/eb46c9c163bceb35a0de8272d22931b7a6fc82e1cdba48fe9b20004ed540/temci-0.7.14.tar.gz" } ], "0.7.15": [ { "comment_text": "", "digests": { "md5": "c028abad7f31a4c7e962f5433ef2bf80", "sha256": "cf8176e408102dc5922077753b04fb0d261b7ad32f57d06ecc5044cbdcdc681e" }, "downloads": -1, "filename": "temci-0.7.15.tar.gz", "has_sig": false, "md5_digest": "c028abad7f31a4c7e962f5433ef2bf80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233692, "upload_time": "2019-07-10T14:30:58", "url": "https://files.pythonhosted.org/packages/ef/3b/d4eda1caa0ec130faaa69797509b94d1acb096f4e60b86a3941302c29ec6/temci-0.7.15.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "6b98d889190266bc2466b0140f7d805a", "sha256": "772e5b806960f01bf79aee06990a077784777c07790997a6cee018235405a93b" }, "downloads": -1, "filename": "temci-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6b98d889190266bc2466b0140f7d805a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 250955, "upload_time": "2016-05-08T09:56:12", "url": "https://files.pythonhosted.org/packages/c3/84/b38d296ebf98ccde9fdee6d6657b020d88a5420c20555480c7411bd18ae0/temci-0.7.2-py3-none-any.whl" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "7ec55a48d08887501c037f0159642e6d", "sha256": "3cc9b475e3b1c328b568d249cfeb50696cdd82c78013dd918db73428c45021bf" }, "downloads": -1, "filename": "temci-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7ec55a48d08887501c037f0159642e6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252081, "upload_time": "2016-05-10T20:40:50", "url": "https://files.pythonhosted.org/packages/d4/e4/8ee4e9e092046a35bdd2efd26ccf3cf73547ec889a5b45547c0367d6ffe4/temci-0.7.3-py3-none-any.whl" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "c2b75202b2e83f2fda2bf0d2a90163fa", "sha256": "709ce34097dea22ba04e1ce8c34525f92f86b72087652873793bcb0e139ba4d2" }, "downloads": -1, "filename": "temci-0.7.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c2b75202b2e83f2fda2bf0d2a90163fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252082, "upload_time": "2016-05-10T20:45:12", "url": "https://files.pythonhosted.org/packages/61/bb/f60f6a0054ba56d36114bc50c8e292d525849f16dd2994843784a149ad94/temci-0.7.4-py3-none-any.whl" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "0d3ad286340c4ede908cc9c4574c258d", "sha256": "1383642c846dbf653288d5905e1b6f2117cc3e762c14dfa1ddf0cff857c420c4" }, "downloads": -1, "filename": "temci-0.7.5-py3-none-any.whl", "has_sig": false, "md5_digest": "0d3ad286340c4ede908cc9c4574c258d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252426, "upload_time": "2016-05-12T19:55:59", "url": "https://files.pythonhosted.org/packages/3d/e9/ea2108457e91f8c82855b4621698fc8dc4a7250f26fddb63c308553675f7/temci-0.7.5-py3-none-any.whl" } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "967d3b6d59227cb6c4117d31d95b7fcf", "sha256": "4f62d7f508bd8ff06712069acd27553217142bc168d79a5429d9bd5e0477a9a8" }, "downloads": -1, "filename": "temci-0.7.6-py3-none-any.whl", "has_sig": false, "md5_digest": "967d3b6d59227cb6c4117d31d95b7fcf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252741, "upload_time": "2016-05-22T17:09:35", "url": "https://files.pythonhosted.org/packages/a6/d1/ef8fc27bfc958ca8c2783bebb8f90d7d3414247931511e3fa96ea088088f/temci-0.7.6-py3-none-any.whl" } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "a8583d991a7d25ed3367262cb04c2cd9", "sha256": "11a00f7aefd75161d4f26bf481731fcacafd2f9bb3d392293e4a8b1cfebd79f8" }, "downloads": -1, "filename": "temci-0.7.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a8583d991a7d25ed3367262cb04c2cd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254992, "upload_time": "2016-10-04T08:04:23", "url": "https://files.pythonhosted.org/packages/a2/e3/a527b9007e2eef7d2d1269ea14280fe55d3d0dbc4abd617381cd73b6405b/temci-0.7.7-py3-none-any.whl" } ], "0.7.8": [ { "comment_text": "", "digests": { "md5": "4bbbfc6045f9f3881980c9dc44b22ac9", "sha256": "bcf1ecc86ee181a120bd810c2fe2c8da6c4bcf3e94518d2a1226772dba194c5a" }, "downloads": -1, "filename": "temci-0.7.8-py3-none-any.whl", "has_sig": false, "md5_digest": "4bbbfc6045f9f3881980c9dc44b22ac9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254996, "upload_time": "2016-10-04T08:25:57", "url": "https://files.pythonhosted.org/packages/7e/01/701b4c8d933be4ed5f8375f25b305c7a81de5bea00b8d8ef1f872b4ab814/temci-0.7.8-py3-none-any.whl" } ], "0.7.9": [ { "comment_text": "", "digests": { "md5": "a212cd2b24ebae36ee29b2fd7d278204", "sha256": "e4984d3d0c64460556d50c36062eb2533d065753722bf8ff3d903cd4d55e1f36" }, "downloads": -1, "filename": "temci-0.7.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a212cd2b24ebae36ee29b2fd7d278204", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254997, "upload_time": "2016-10-04T09:46:11", "url": "https://files.pythonhosted.org/packages/a2/6e/96a5d9c49d3960164cde993e2e55bc37a18970d8f19d4a8a0586d5e45191/temci-0.7.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c028abad7f31a4c7e962f5433ef2bf80", "sha256": "cf8176e408102dc5922077753b04fb0d261b7ad32f57d06ecc5044cbdcdc681e" }, "downloads": -1, "filename": "temci-0.7.15.tar.gz", "has_sig": false, "md5_digest": "c028abad7f31a4c7e962f5433ef2bf80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233692, "upload_time": "2019-07-10T14:30:58", "url": "https://files.pythonhosted.org/packages/ef/3b/d4eda1caa0ec130faaa69797509b94d1acb096f4e60b86a3941302c29ec6/temci-0.7.15.tar.gz" } ] }