{ "info": { "author": "Dev Aggarwal", "author_email": "devxpy@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n# Oscilloscope\n**An oscilloscope for python that just works\u2122**\n\n## Features\n\n### Simple to use\n\n[*This*](examples/simple_signal.py)\n```python3\nimport random\nfrom time import sleep\n\nfrom oscilloscope import Osc\n\nosc = Osc()\n\n\n@osc.signal\ndef simple_random_signal(state):\n while True:\n state.draw(random.random())\n sleep(0.1)\n\n\nosc.start()\n```\n*Gives you this*\n\n\n\n### Parallel compute\n\nEach `osc.signal` gets it's own process.\n\n[*This*](examples/parallel_signals.py)\n```python3\nimport random\nfrom time import sleep\n\nfrom oscilloscope import Osc\n\n\nosc = Osc(nrows=2, ncols=3)\n\n\n@osc.signal\ndef signal1(state):\n while True:\n state.draw((random.random())\n sleep(0.1)\n\n\n@osc.signal\ndef signal2(state):\n while True:\n state.draw(random.random(), row=1, col=2)\n sleep(0.1)\n\n\nosc.start()\n```\n*Gives you this*\n\n\n\nP.S. Don't worry about race conditions, `state.draw()` is atomic. (See [zproc](https://github.com/pycampers/zproc))\n\n### Dynamic axis scale\n\nThe Y-axis's scale is dynamic, meaning that the graph's y axis scales with your signal.\n\n[*This*](examples/increasing.py)\n```python3\nimport random\nfrom time import sleep\n\nfrom oscilloscope import Osc\n\n\n# adjust window_sec and intensity to improve visibility\nosc = Osc(window_sec=10, intensity=1)\n\n\n@osc.signal\ndef increasing_signal(state):\n delta = 1\n\n while True:\n state.draw(random.randint(-delta, delta))\n delta += 5\n sleep(0.01)\n\n\nosc.start()\n```\n*Gives you this*\n\n\n\n### Automatic normalization\n\n[*This*](examples/normalized.py)\n```python3\nimport random\nfrom time import sleep\n\nfrom oscilloscope import Osc\n\n\n# turn on normalization\nosc = Osc(normalize=True)\n\n\n@osc.signal\ndef increasing_signal(state):\n delta = 1\n\n while True:\n state.draw(random.randint(-delta, delta))\n delta += 5\n sleep(0.01)\n\n\nosc.start()\n```\n*Gives you this*\n\n\n\nThis was the same signal as the [earlier](#Automatic normalization) one, \nbut it looks a lot like the simple example, because we turned on normalization! \n\nThe Y-axis will now show, % max-amplitude encountered at the time, not the raw value.\n\n\n## Install\n\n\n[![PyPI](https://img.shields.io/pypi/v/oscilloscope.svg?style=for-the-badge)](https://pypi.org/project/oscilloscope/)\n\n\n`pip install oscilloscope`\n\nMIT Licence
\nPython 3.6+ only.\n\n---\n\n[\ud83d\udc0d\ud83c\udfd5\ufe0f](http://www.pycampers.com/)\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/devxpy/oscilloscope", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "oscilloscope", "package_url": "https://pypi.org/project/oscilloscope/", "platform": "", "project_url": "https://pypi.org/project/oscilloscope/", "project_urls": { "Homepage": "https://github.com/devxpy/oscilloscope" }, "release_url": "https://pypi.org/project/oscilloscope/0.0.4/", "requires_dist": [ "matplotlib", "zproc (>=0.9.5)" ], "requires_python": ">=3.6.0", "summary": "An oscilloscope for python that just works\u2122", "version": "0.0.4" }, "last_serial": 4941146, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "98d85d16a901a7bc988fe2080400104f", "sha256": "53dfedeefe4e35894ce4885f4dd80fc8763f2be55717e7f90de15e0e2a7f0a55" }, "downloads": -1, "filename": "oscilloscope-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98d85d16a901a7bc988fe2080400104f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 3191, "upload_time": "2018-08-12T06:05:11", "url": "https://files.pythonhosted.org/packages/30/91/9d3eb6a6088015ed79aadc2e3a91ab3df1638cdbf1923f2991bbaffa1b02/oscilloscope-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bfdb569a34e3870e7005f5aacbeaf74d", "sha256": "2dec0a5cd595a322e22f9cd0d6c1e4b1a7c558cbf2f21ea20b04e3562183a1d9" }, "downloads": -1, "filename": "oscilloscope-0.0.1.tar.gz", "has_sig": false, "md5_digest": "bfdb569a34e3870e7005f5aacbeaf74d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 4228, "upload_time": "2018-08-12T06:05:12", "url": "https://files.pythonhosted.org/packages/20/b4/78a6edf88219fcaa0a0d72be3cd8c56bb5a4fa53651d9fcfea7f50736a4b/oscilloscope-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "bc3e7e8bb1dfd288da85d407892f41f1", "sha256": "d04e3620b433b92c2b7ea31dd796bd7969aa27f95588e9c8d57a11e171956162" }, "downloads": -1, "filename": "oscilloscope-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc3e7e8bb1dfd288da85d407892f41f1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 3664, "upload_time": "2018-08-12T12:59:06", "url": "https://files.pythonhosted.org/packages/28/d3/229bba0388c799d0c00d1748368823f6f6177f6f7a815a0ea2236419bbc5/oscilloscope-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9de3456f51a7d7c2a3e8ee04e079b8a", "sha256": "a9932ca14615d377511e2a0a33dce786850e4ba03f2c3d264a0649aaa480fe5c" }, "downloads": -1, "filename": "oscilloscope-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f9de3456f51a7d7c2a3e8ee04e079b8a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 4805, "upload_time": "2018-08-12T12:59:07", "url": "https://files.pythonhosted.org/packages/fa/8b/7c153dd4463966f450aebcce9e65816170885f84f601510131e645e628e8/oscilloscope-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "74251c3de09bc64030defd4a631c1189", "sha256": "8ed16c8098a0f28bb039538a41bea989724e4d223d50e401a56078818c5dba47" }, "downloads": -1, "filename": "oscilloscope-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74251c3de09bc64030defd4a631c1189", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4819, "upload_time": "2018-10-29T07:49:43", "url": "https://files.pythonhosted.org/packages/2c/d1/7cc9c47cc36e55b3c72e85c995257485c738ef8a64e8262c6223ae099207/oscilloscope-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "441e6ed2a9240dd73bd0291dadfb9689", "sha256": "50b269560d11d90c2b6b3ed428f4f88a17f7a9a55cdce9eca473164333c6af1e" }, "downloads": -1, "filename": "oscilloscope-0.0.3.tar.gz", "has_sig": false, "md5_digest": "441e6ed2a9240dd73bd0291dadfb9689", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 5164, "upload_time": "2018-10-29T07:49:45", "url": "https://files.pythonhosted.org/packages/cd/d5/595c821e50887d889cec3711b2cd4c22c3492fdeb20f40dcd9d6ddf70028/oscilloscope-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b7fd83424cee52040c6fbe26d60d88ce", "sha256": "3900208de87ddc09b9b5349c92191da4dc89c917a3b09f0b05727a7720d28a1f" }, "downloads": -1, "filename": "oscilloscope-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7fd83424cee52040c6fbe26d60d88ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4825, "upload_time": "2019-03-14T18:42:03", "url": "https://files.pythonhosted.org/packages/e9/e2/91b975acdb6e864cebf283595eb18b6fa9f6160914b77dba7d5618dfe2d6/oscilloscope-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9725a6e22f317041e51effaeb88b2cda", "sha256": "7bcc9a2394b557b5a08899068ab18792c9fcf4d7356c9511fba9326d329a8173" }, "downloads": -1, "filename": "oscilloscope-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9725a6e22f317041e51effaeb88b2cda", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 5172, "upload_time": "2019-03-14T18:42:05", "url": "https://files.pythonhosted.org/packages/94/82/5b81f23dbf7927e045ba36ba5ce2dc27b19dd7076580b189810c98cd12e6/oscilloscope-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7fd83424cee52040c6fbe26d60d88ce", "sha256": "3900208de87ddc09b9b5349c92191da4dc89c917a3b09f0b05727a7720d28a1f" }, "downloads": -1, "filename": "oscilloscope-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7fd83424cee52040c6fbe26d60d88ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 4825, "upload_time": "2019-03-14T18:42:03", "url": "https://files.pythonhosted.org/packages/e9/e2/91b975acdb6e864cebf283595eb18b6fa9f6160914b77dba7d5618dfe2d6/oscilloscope-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9725a6e22f317041e51effaeb88b2cda", "sha256": "7bcc9a2394b557b5a08899068ab18792c9fcf4d7356c9511fba9326d329a8173" }, "downloads": -1, "filename": "oscilloscope-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9725a6e22f317041e51effaeb88b2cda", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 5172, "upload_time": "2019-03-14T18:42:05", "url": "https://files.pythonhosted.org/packages/94/82/5b81f23dbf7927e045ba36ba5ce2dc27b19dd7076580b189810c98cd12e6/oscilloscope-0.0.4.tar.gz" } ] }