{ "info": { "author": "Timo Lesterhuis", "author_email": "timolesterhuis@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": ".. |logo| image:: https://raw.githubusercontent.com/tim00w/diagnostics/master/docs/images/analysis.svg?sanitize=true\n :scale: 10%\n\nDiagnostics - A toolbox for analyzing diagnostic data\n=====================================================\n\n.. image:: https://travis-ci.org/tim00w/diagnostics.svg?branch=master\n :target: https://travis-ci.org/tim00w/diagnostics\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/github/tim00w/diagnostics/badge.svg?branch=master\n :target: https://coveralls.io/github/tim00w/diagnostics?branch=master\n :alt: Coverage Status\n\n.. image:: https://readthedocs.org/projects/diagnostics/badge/?version=latest\n :target: https://diagnostics.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://mybinder.org/badge_logo.svg\n :target: https://mybinder.org/v2/gh/tim00w/diagnostics/master?filepath=examples/example.ipynb\n :alt: Binder\n\n.. image:: https://img.shields.io/pypi/v/pydiagnostics.svg?color=blue\n :target: https://pypi.org/project/pydiagnostics/\n :alt: PyPi version\n\n.. image:: https://img.shields.io/pypi/l/pydiagnostics.svg?color=purple\n :target: https://github.com/tim00w/diagnostics/blob/master/LICENSE\n :alt: License: MIT\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: Code style: black\n\n|\n\n**Diagnostics** is a Python module designed to make analysis of diagnostic data easier.\nIt comes with a couple of clear data-structures with automatic quality checks, easy\nBoolean logic operators and built-in bookkeeping. To top that off, it's built on `numpy! `_\n\nInstallation\n------------\n\nThe diagnostics library is tested on python 3.7. However, it should run\non python 3.6 and 3.5 as well.\n\nYou can install the library using ``pip``:\n\n.. code:: bash\n\n pip install pydiagnostics\n\nAlternatively, you can clone the repository and use ``setup.py`` to\ninstall:\n\n.. code:: bash\n\n git clone https://github.com/tim00w/diagnostics.git\n cd diagnostics\n python setup.py install\n\nOpen Source\n-----------\n\nThis project strives to abide by generally accepted best practices in open-source software development:\n\n.. image:: https://bestpractices.coreinfrastructure.org/projects/2796/badge\n :target: https://bestpractices.coreinfrastructure.org/projects/2796\n :alt: CII Best Practices\n\nDocumentation\n-------------\n\nThe docs are hosted on `ReadTheDocs `_.\n\n\nQuickstart\n----------\n\nEager to begin and no time to read the documentation? Here is a quickstart!\n\nTimeSeries\n^^^^^^^^^^\n\nDiagnostic events are derived from from real occurances. For instance,\nyour phone will probably generate a message (event) if your battery is\nrunning low (percentage below threshold value). The diagnostics library\nhas a ``TimeSerie`` class that can capture these occurances.\n\nFor example, a ``TimeSerie`` representing your battery life, which\ndrains 0.01% each second:\n\n.. code:: python\n\n import numpy as np\n import diagnostics as ds\n\n battery_life = ds.TimeSerie(np.arange(100, 0, -0.01), fs=1)\n\nthe first argument is consists of a data array (both ``list()`` and\n``numpy.array()`` are supported), and additionally you can provide some\nkeyword parameters. Here we've provided the sample frequency (``fs``)\nwhich is 1 Hz, because we said our battery drains 0.01% each second. In\nthis particular case we could've left ``fs`` out, since the default\nvalue of ``fs`` is also 1.\n\nNow that we've got our data, we can easily visualize this:\n\n.. code:: python\n\n battery_life.plot(show=True)\n\nThere are other keyword parameters that we can use as well, such as t0\n(start time of ``TimeSerie`` in posixtime or a ``datetime`` object), and\na name (default is an empty string).\n\n.. code:: python\n\n from datetime import datetime\n\n battery_life = ds.TimeSerie(np.arange(100, 0, -0.01),\n fs=1,\n t0=datetime(2019,1,1,8,5), # 2019-01-01 08:05\n name='battery life')\n\nNow we've got our battery life set to a specific (start-)datetime, and gave it a\nname. Both will come in handy later.\n\nBooleanTimeSeries\n^^^^^^^^^^^^^^^^^\n\nLet's be honest, the battery percentage of your phone does not really\nmatter to you, unless it goes below a certain threshold. Luckily for us,\nour ``TimeSerie`` can easily be converted to a ``BooleanTimeSerie``,\nwhich only contains boolean values of when the percentage reaches below\n25%:\n\n.. code:: python\n\n battery_below25 = battery_life <= 25\n\n battery_below25.plot(show=True)\n\nNow that's easy! We can see that our battery goes below 25% at HH:MM:SS.\n\nStateChangeArray\n^^^^^^^^^^^^^^^^\n\nYou could argue that our ``BooleanTimeSerie`` contains a lot of data\npoints with the same value. I'd agree with you, and therefore introduce\na class that only keeps track of the changes in data points, the\n``StateChangeArray``:\n\n.. code:: python\n\n battery_low_state = battery_below25.to_statechangearray()\n\nAlternatively, we can create a ``StateChangeArray`` (or\n``BooleanStateChangeArray``, you can probably guess the difference\n:smile:) from scratch:\n\n.. code:: python\n\n\n s = ds.StateChangeArray([1, 4, 8, 13], t=[1,2,4,8], name='my state')\n b = ds.BooleanStateChangeArray([True, False, True, False], t=[1,3,6,9], name='b')\n\nBoth the data array as the values for time (``t``) can be ``list()`` or\n``np.array()``. The time is considered as posixtime. For now it is not\npossible to give a datetimearray or list of datetimes as an input, but\nthis wil be implemented in the near future.\n\nComparing TimeSeries and StateChangeArrays\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThere are more classes besides TimeSeries and StateChangearrays, each\nwith their own advantages and disadvantages. The power of this module\nlies in clear transformations from one class to another (we've already\nshown the ``TimeSerie.to_statechangearray()`` method), and the\ncomparison of multiple classes.\n\nTo start with TimeSeries, if two (or more) have the same array\\_length,\n``t0`` and ``fs``, we can easily do calculations with them!\n\n.. code:: python\n\n # create two TimeSerie objects that we'll combine\n a = ds.TimeSerie(np.sin(np.linspace(0, 2*np.pi, 100)), t0=0, fs=1, name='a')\n b = ds.TimeSerie(np.sin(2* np.linspace(0, 2*np.pi, 100)), t0=0, fs=1, name='b')\n\n # It's this easy!\n c = a + b\n\n # We're interested in the more extreme values, lets create TimeSeries for these:\n d = c <= -1\n e = c >= 1\n\n # we'll name them to keep our bookkeeping up to date\n d.name = 'c <= -1'\n e.name = 'c >= 1'\n\n # and find when one of the above conditions is True!\n f = d | e\n\n # when performing boolean operators ('~', '^', '&', '|'), the library\n # does it's own bookkeeping:\n print(f.name)\n f.plot(show=True)\n\nComparing StateChangeArrays would normally be a bit tricky, since the\ndata is most likely non-linearly spaced. This means that we can't just\nperform vectorized boolean operations, but we'll need to combine both\ndata values as well as their respective points in time.\n\nLuckily for us, the ``StateChangeArray`` has this built in:\n\n.. code:: python\n\n a = StateChangeArray([True, False, True, False], t=[2,4,6,8], name='a')\n b = StateChangeArray([True, False, True, False], t=[3,5,7,9], name='b')\n\n c = a | b\n d = a & b\n e = ~a\n f = a ^ a\n g = a ^ e\n\nThat's pretty great right?\n\nReports & Events\n^^^^^^^^^^^^^^^^\n\nWIP\n\n.. image:: https://img.shields.io/pypi/dm/pydiagnostics.svg\n :target: https://pypi.org/project/pydiagnostics/\n :alt: Downloads\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tim00w/diagnostics/", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "pydiagnostics", "package_url": "https://pypi.org/project/pydiagnostics/", "platform": "", "project_url": "https://pypi.org/project/pydiagnostics/", "project_urls": { "Documentation": "https://diagnostics.readthedocs.io/en/latest/", "Homepage": "https://github.com/tim00w/diagnostics/", "Source": "https://github.com/tim00w/diagnostics" }, "release_url": "https://pypi.org/project/pydiagnostics/0.6.0/", "requires_dist": [ "pytz (>=2018)", "numpy (>=1.16.0)", "matplotlib (>=3.0.0)" ], "requires_python": "", "summary": "A toolbox to analyse diagnostic data!", "version": "0.6.0" }, "last_serial": 5904951, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "5c38ae1f2d26359aba4cb110bf0d6c03", "sha256": "04fc39fd11d813877e842a895e28b5463ec27a3bec12a9469c15d5c686dcf5cf" }, "downloads": -1, "filename": "pydiagnostics-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5c38ae1f2d26359aba4cb110bf0d6c03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11392, "upload_time": "2019-05-06T06:43:01", "url": "https://files.pythonhosted.org/packages/64/a2/d4bf6af337ae82960eab9eca247cc948aefbbb07c037efa523cb8b987636/pydiagnostics-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5365bd4581e9e361f338b4ffed58e1c", "sha256": "468255b3c587390b30566326a6f0f24416bc028bef3e2e87b9e43c1b0d6399df" }, "downloads": -1, "filename": "pydiagnostics-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b5365bd4581e9e361f338b4ffed58e1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13029, "upload_time": "2019-05-06T06:43:03", "url": "https://files.pythonhosted.org/packages/51/ca/d9244d33571a686588d396bc8fbccfec77f81886f1200b90a6b3a49feaa4/pydiagnostics-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "77fa2de23ab7c3bf54da3d9a52425acd", "sha256": "6ca9f1f9c2bcf35f317dd28813759b28a0605ea9b2fd03fd42f2142205eecd20" }, "downloads": -1, "filename": "pydiagnostics-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77fa2de23ab7c3bf54da3d9a52425acd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11420, "upload_time": "2019-05-06T07:21:43", "url": "https://files.pythonhosted.org/packages/99/b6/035e47963698e26315e50d5d6de27a20bf0b2532fa0c50abb7d09762a395/pydiagnostics-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "616ccd509782211229966279d8ff5214", "sha256": "60d220bed352919cbbc1a340229c39bf5cf42cc16279f19e1bf0bf0b20d2078b" }, "downloads": -1, "filename": "pydiagnostics-0.3.1.tar.gz", "has_sig": false, "md5_digest": "616ccd509782211229966279d8ff5214", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13135, "upload_time": "2019-05-06T07:21:45", "url": "https://files.pythonhosted.org/packages/24/70/c30fe1fa2ab0b0be0ddb17920e0e002560ef0dfeddeb5b9d1b558de06360/pydiagnostics-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "70e1c7a056a356069fbafb32e61ea04f", "sha256": "0b25e6c12aa0fcbf6ea75f976231591bbe1f947133a8ea956e5f1f5ca3e0b02b" }, "downloads": -1, "filename": "pydiagnostics-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "70e1c7a056a356069fbafb32e61ea04f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11430, "upload_time": "2019-05-06T07:38:51", "url": "https://files.pythonhosted.org/packages/7a/43/092060ca7a870476ba8acde922bd263175a6af57cbfd295569913955bee9/pydiagnostics-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c55a1e79f15a64ac7ddba5ac7cd3614a", "sha256": "04f408dd8bf231f0fda39f8994288fc244f97d683bfe6d23e1c7a33b5a18ddb7" }, "downloads": -1, "filename": "pydiagnostics-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c55a1e79f15a64ac7ddba5ac7cd3614a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13901, "upload_time": "2019-05-06T07:38:52", "url": "https://files.pythonhosted.org/packages/5c/41/4b40fc9d97d9657c663c54e18ddff8387ebd9801034277d3e1c04f789da4/pydiagnostics-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "05f147ca50845309da99d7deb68425bc", "sha256": "dea5e2e73ba63a6b1cd61013507126245a10400bdd7e1f58f6b35adb06508315" }, "downloads": -1, "filename": "pydiagnostics-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05f147ca50845309da99d7deb68425bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11471, "upload_time": "2019-05-06T08:11:45", "url": "https://files.pythonhosted.org/packages/55/ef/847637d789d754d2bbfe191ae3a70d781e12ae38dfddc6bfb5e69a378dc4/pydiagnostics-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d7e3d0fa4a4bd52b9641efbe194e0c1", "sha256": "e284460bf4e82654a329342fc2e8344810cd7e1d0ae21ef9cd1055d3b09e498b" }, "downloads": -1, "filename": "pydiagnostics-0.3.3.tar.gz", "has_sig": false, "md5_digest": "6d7e3d0fa4a4bd52b9641efbe194e0c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14004, "upload_time": "2019-05-06T08:11:47", "url": "https://files.pythonhosted.org/packages/61/18/546277850ada559b1801122f906a5ab22de2f6bfebfad2b60498264c2d89/pydiagnostics-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "39cea90f727578611aa6279457dd4ad3", "sha256": "bf12972bb475c599abd383fa0d7e6764d86637ea0067ed09e4da30d0966f16ee" }, "downloads": -1, "filename": "pydiagnostics-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "39cea90f727578611aa6279457dd4ad3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11410, "upload_time": "2019-05-06T15:09:53", "url": "https://files.pythonhosted.org/packages/52/4b/322aeedf9c1497be5c30671b7130bb32514eb54ccd2e70eedded355f86c5/pydiagnostics-0.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce7d12f1728e6d472d210d874513062d", "sha256": "dfb20a1c06c25a7ae5d43af5ad6bdc05d7ab6f3921f2ddad51ea46b7ace407a5" }, "downloads": -1, "filename": "pydiagnostics-0.3.4.tar.gz", "has_sig": false, "md5_digest": "ce7d12f1728e6d472d210d874513062d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14063, "upload_time": "2019-05-06T15:09:54", "url": "https://files.pythonhosted.org/packages/c6/69/0382cfd2e8120ebde30ad7daabc3e1e44b5761bfd39015e8d5df33e80031/pydiagnostics-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "94cea02fae065a15db734aba54352e2b", "sha256": "5505d2712f243b5a477645baedf8f93d8b68d5bdbd0bdc50b2a4b9db175db4d7" }, "downloads": -1, "filename": "pydiagnostics-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "94cea02fae065a15db734aba54352e2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11443, "upload_time": "2019-05-06T15:46:32", "url": "https://files.pythonhosted.org/packages/9f/1b/dbca0b855cf84ce39442e8ec07593c4130542e6a898e3618688246ac3cd9/pydiagnostics-0.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a73283322ab737b599cd273a59a535f3", "sha256": "d731960b7d0b64e5921f8d6e563fc0e529e10404a371b5a39c0a60f05875c49f" }, "downloads": -1, "filename": "pydiagnostics-0.3.5.tar.gz", "has_sig": false, "md5_digest": "a73283322ab737b599cd273a59a535f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14106, "upload_time": "2019-05-06T15:46:34", "url": "https://files.pythonhosted.org/packages/0b/84/7e1db8d28a884b0ba11c490c735abca0daa2c65852682f084420ec832dcd/pydiagnostics-0.3.5.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "42ed42bf2023a2fd987c82337c8e792c", "sha256": "cf5633d15b86ebbc68608dcf944879ccb5fc848810277c6138802da0980ce714" }, "downloads": -1, "filename": "pydiagnostics-0.3.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42ed42bf2023a2fd987c82337c8e792c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11441, "upload_time": "2019-05-06T15:56:42", "url": "https://files.pythonhosted.org/packages/55/e4/4e528da3a5ce5ac54446dc9aa37db645ff5c094fb7093397f1f5a845d555/pydiagnostics-0.3.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8a18c4fcf151febdba5de77373513c5", "sha256": "479e5e0752e7b3bee0c19e8601320fa0e25160d336267e5102500de050236fd9" }, "downloads": -1, "filename": "pydiagnostics-0.3.7.tar.gz", "has_sig": false, "md5_digest": "c8a18c4fcf151febdba5de77373513c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14099, "upload_time": "2019-05-06T15:56:44", "url": "https://files.pythonhosted.org/packages/0d/23/a082438a3eae5e914c3c261e82c081f450ba2c7a105b4a9c78badb4600a3/pydiagnostics-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "d00cce6598ec8d026c05f3347a1ff7cf", "sha256": "22cd105bdf15140a86d08b58444c9f40fc450c58c8517e4a15d895824ddcf358" }, "downloads": -1, "filename": "pydiagnostics-0.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d00cce6598ec8d026c05f3347a1ff7cf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11461, "upload_time": "2019-05-07T05:16:26", "url": "https://files.pythonhosted.org/packages/03/6a/2f1ac51252b492f84963f96144b8474b07e03bd6f15b6a2a51384493945c/pydiagnostics-0.3.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f58f6e1b9f5887996eb948b7241a9ef4", "sha256": "c6fbf7cfb37fcf41c58f6578f04412b867d29285111d45143360fd2989a4ebc5" }, "downloads": -1, "filename": "pydiagnostics-0.3.8.tar.gz", "has_sig": false, "md5_digest": "f58f6e1b9f5887996eb948b7241a9ef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14147, "upload_time": "2019-05-07T05:16:28", "url": "https://files.pythonhosted.org/packages/7c/ed/ddbf68192815c87178519b63033fa878705d780b4abb83e5d1317c629b54/pydiagnostics-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "4d9366c47a616420fc97ca570ef77c3e", "sha256": "2f4e250ef3abc28f987eb7b401a0d04154baa9fab7ca6099fb4e010c13d82c7a" }, "downloads": -1, "filename": "pydiagnostics-0.3.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d9366c47a616420fc97ca570ef77c3e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11486, "upload_time": "2019-05-07T05:23:29", "url": "https://files.pythonhosted.org/packages/70/cf/cd9d3a40e2ed3dc8ba8fd0785ba3d71810de3704d3ca846ac713a2bbd18c/pydiagnostics-0.3.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "669d1a0d204eb5f8aff2f4b654b70a4b", "sha256": "f682399cdaf1699612b2ba47f38ccace9d323c572d1033c4064e891d945311d8" }, "downloads": -1, "filename": "pydiagnostics-0.3.9.tar.gz", "has_sig": false, "md5_digest": "669d1a0d204eb5f8aff2f4b654b70a4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14203, "upload_time": "2019-05-07T05:23:31", "url": "https://files.pythonhosted.org/packages/c9/c4/3a54f5436ef8be3ae436faa3473f0546bfe737a3b54e64d15ce9e1ecbb8d/pydiagnostics-0.3.9.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5155d367079763c61606ac7074390f0d", "sha256": "8c593bf0e62d4c6d6cf48d147fa5872f24060c27503fd5a8f365463906a066f6" }, "downloads": -1, "filename": "pydiagnostics-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5155d367079763c61606ac7074390f0d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11534, "upload_time": "2019-05-07T05:43:22", "url": "https://files.pythonhosted.org/packages/0c/a5/f332d89b0d20c862bebcb6278bb5fe35847c09c8d357d5378c337a520181/pydiagnostics-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df579a0352234902052d33d1d6778f00", "sha256": "da520228a20780d66653b9df94458a99e7cb85e36f8576d66c48343d567a7b66" }, "downloads": -1, "filename": "pydiagnostics-0.4.0.tar.gz", "has_sig": false, "md5_digest": "df579a0352234902052d33d1d6778f00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14234, "upload_time": "2019-05-07T05:43:24", "url": "https://files.pythonhosted.org/packages/b6/87/1504bf61be49dc406305a3d11a1873edd1096128323add0c9799e86ac65f/pydiagnostics-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "29f4c19a723442c59697986cbde4c40b", "sha256": "75bc42936fd3a5b9bf7e5ca2c226389af0f7a9c60c39513e67e64b9b6597fecc" }, "downloads": -1, "filename": "pydiagnostics-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29f4c19a723442c59697986cbde4c40b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12345, "upload_time": "2019-05-15T08:07:39", "url": "https://files.pythonhosted.org/packages/bf/2d/c92ef8643dc5d71b49867adb236e00a10f8c9d0fc7c7a7ac7fb5a7ad8662/pydiagnostics-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83d7122a74216f3c445a949bd41e21a7", "sha256": "ffb3fab4893931279652bf1de1d961997615bed8684dfee66c8f60e7b9e7c3c3" }, "downloads": -1, "filename": "pydiagnostics-0.5.0.tar.gz", "has_sig": false, "md5_digest": "83d7122a74216f3c445a949bd41e21a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15336, "upload_time": "2019-05-15T08:07:41", "url": "https://files.pythonhosted.org/packages/88/0c/c6cb2a99e06c41164bb12e2cfe7c28fb4df57591ab26d3494dbf1dfdab79/pydiagnostics-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "2ec145e6bfb16695f95f12a86326d110", "sha256": "1418afa1893b69e57f44fc92ce904358e9980f621fe64c361c23ded39019506d" }, "downloads": -1, "filename": "pydiagnostics-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ec145e6bfb16695f95f12a86326d110", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12617, "upload_time": "2019-07-04T05:54:22", "url": "https://files.pythonhosted.org/packages/c2/91/663ca78ed5baa4f6da72a9cba8b021b00f86b7b7a5570c7d2b0eb93ee294/pydiagnostics-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d5642a6951c9393c3d0f1778f6e394d", "sha256": "8bd0a002cb2b3b75d0d61d7bf52d177bf3446000cc356be17ad5a59654fa5e11" }, "downloads": -1, "filename": "pydiagnostics-0.6.0.tar.gz", "has_sig": false, "md5_digest": "3d5642a6951c9393c3d0f1778f6e394d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15637, "upload_time": "2019-07-04T05:54:24", "url": "https://files.pythonhosted.org/packages/11/7f/b94e031fe3398de3782abdad227544f74af8fb5f2fb994b45f58d617de6f/pydiagnostics-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ec145e6bfb16695f95f12a86326d110", "sha256": "1418afa1893b69e57f44fc92ce904358e9980f621fe64c361c23ded39019506d" }, "downloads": -1, "filename": "pydiagnostics-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ec145e6bfb16695f95f12a86326d110", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12617, "upload_time": "2019-07-04T05:54:22", "url": "https://files.pythonhosted.org/packages/c2/91/663ca78ed5baa4f6da72a9cba8b021b00f86b7b7a5570c7d2b0eb93ee294/pydiagnostics-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d5642a6951c9393c3d0f1778f6e394d", "sha256": "8bd0a002cb2b3b75d0d61d7bf52d177bf3446000cc356be17ad5a59654fa5e11" }, "downloads": -1, "filename": "pydiagnostics-0.6.0.tar.gz", "has_sig": false, "md5_digest": "3d5642a6951c9393c3d0f1778f6e394d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15637, "upload_time": "2019-07-04T05:54:24", "url": "https://files.pythonhosted.org/packages/11/7f/b94e031fe3398de3782abdad227544f74af8fb5f2fb994b45f58d617de6f/pydiagnostics-0.6.0.tar.gz" } ] }